BookmarkSubscribeRSS Feed
cgsm233
Calcite | Level 5

Hello,

 

I am investigating the effect of a -0.25 unit decrease of my continuous variable has on survival. My model has the continuous variable (PRALBUM) and other dichotomous variables; no interaction terms.

 

Since the HAZARDRATIO units option can only handle positive increments, I set units = 0.25. Next, I exponentiated the parameter estimate (0.97862) after multiplying by -1.0 to obtain the HR. To obtain the 95% CI, I multiplied the standard error (0.21116) by 1.0 and 1.96, then added/subtracted that value (0.41387) to/from the parameter estimate, and exponentiated those values. Final, result: HR = 2.66 (1.76, 4.02).

I used the HAZARDRATIO statement to calculate the HR (95% CI) for my dichotomous variables.

 

My question is: since I exponentiated the negative product of the parameter estimate of the continuous variable, do I need to do anything to the dichotamous variables to reflect the fact that I did that? Or, am I able to report the HR provided?

I feel like I need to do something to those other estimates as they are only reflecting a 0.25 unit increase in the continuous variable, not the -0.25 unit decrease.

 

Below is my code and Parameter Estimates:

*Adjusted;
proc phreg data=c.nsqip;
class 
ALBUM_NEW (PARAM = REF REF = "Normal")
PRSGOT_new (PARAM = REF REF = "<=40")
race_new (PARAM = REF REF = "White")
BMI_new (PARAM = REF REF = "Normal")
OPTIME_num (PARAM = REF REF = "0")
ASACLAS (PARAM = REF REF ="1-2")
PRHCT_new (PARAM = REF REF = ">=30")
PRPLATE_new (PARAM = REF REF = "<400K")
PRCREAT_new (PARAM = REF REF = "<=1.2")
WNDCLAS (PARAM = REF REF = "1-Clean")
cpt_group (PARAM = REF REF = "MIS")
DYSPNEA_num (PARAM = REF REF= "0");
model survival_time*failure(0) = 
PRALBUM OTHBLEED_num cardiac_event_num Pulmonary_event_num infectious_event_num/ties=efron rl = pl details;
hazardratio PRALBUM/units=0.25 cl = pl;
hazardratio OTHBLEED_num/diff=pairwise cl = pl;
hazardratio cardiac_event_num/diff=pairwise cl = pl;
hazardratio Pulmonary_event_num/diff = pairwise cl = pl;
hazardratio infectious_event_num/diff=pairwise cl = pl;
run;

*Calculate HR and CI;
data albumin;
x = -1.0*(-0.97862);
y=1.96*1*0.21116;
HR = exp(x);
LB = exp(x-y);
UB = exp(x+y);
run;
proc print data= albumin;
run;

cgsm233_0-1650119634933.png

Thank you

1 REPLY 1
svh
Lapis Lazuli | Level 10 svh
Lapis Lazuli | Level 10

Have you considered just using the CONTRAST statement to obtain the hazard ratio for this custom difference (which is a particular decrease in the value of the covariate)? I think this would be simpler than trying to calculate what the HR would be for a 1-point decrease in the covariate. Take this example that uses data from SAS's website. You can specify a negative number for your custom test for a continuous covariate in the CONTRAST statement and the result will be the hazard ratio for that change in the covariate. The CONTRAST statement is handy for occasions like these. https://documentation.sas.com/doc/en/statug/15.2/statug_phreg_syntax09.htm

 

data Myeloma;
   input Time VStatus LogBUN HGB Platelet Age LogWBC Frac
         LogPBM Protein SCalc;
   label Time='Survival Time'
         VStatus='0=Alive 1=Dead';
   datalines;
 1.25  1  2.2175   9.4  1  67  3.6628  1  1.9542  12  10
 1.25  1  1.9395  12.0  1  38  3.9868  1  1.9542  20  18
 2.00  1  1.5185   9.8  1  81  3.8751  1  2.0000   2  15
 2.00  1  1.7482  11.3  0  75  3.8062  1  1.2553   0  12
 2.00  1  1.3010   5.1  0  57  3.7243  1  2.0000   3   9
 3.00  1  1.5441   6.7  1  46  4.4757  0  1.9345  12  10
 5.00  1  2.2355  10.1  1  50  4.9542  1  1.6628   4   9
 5.00  1  1.6812   6.5  1  74  3.7324  0  1.7324   5   9
 6.00  1  1.3617   9.0  1  77  3.5441  0  1.4624   1   8
 6.00  1  2.1139  10.2  0  70  3.5441  1  1.3617   1   8
 6.00  1  1.1139   9.7  1  60  3.5185  1  1.3979   0  10
 6.00  1  1.4150  10.4  1  67  3.9294  1  1.6902   0   8
 7.00  1  1.9777   9.5  1  48  3.3617  1  1.5682   5  10
 7.00  1  1.0414   5.1  0  61  3.7324  1  2.0000   1  10
 7.00  1  1.1761  11.4  1  53  3.7243  1  1.5185   1  13
 9.00  1  1.7243   8.2  1  55  3.7993  1  1.7404   0  12
11.00  1  1.1139  14.0  1  61  3.8808  1  1.2788   0  10
11.00  1  1.2304  12.0  1  43  3.7709  1  1.1761   1   9
11.00  1  1.3010  13.2  1  65  3.7993  1  1.8195   1  10
11.00  1  1.5682   7.5  1  70  3.8865  0  1.6721   0  12
11.00  1  1.0792   9.6  1  51  3.5051  1  1.9031   0   9
13.00  1  0.7782   5.5  0  60  3.5798  1  1.3979   2  10
14.00  1  1.3979  14.6  1  66  3.7243  1  1.2553   2  10
15.00  1  1.6021  10.6  1  70  3.6902  1  1.4314   0  11
16.00  1  1.3424   9.0  1  48  3.9345  1  2.0000   0  10
16.00  1  1.3222   8.8  1  62  3.6990  1  0.6990  17  10
17.00  1  1.2304  10.0  1  53  3.8808  1  1.4472   4   9
17.00  1  1.5911  11.2  1  68  3.4314  0  1.6128   1  10
18.00  1  1.4472   7.5  1  65  3.5682  0  0.9031   7   8
19.00  1  1.0792  14.4  1  51  3.9191  1  2.0000   6  15
19.00  1  1.2553   7.5  0  60  3.7924  1  1.9294   5   9
24.00  1  1.3010  14.6  1  56  4.0899  1  0.4771   0   9
25.00  1  1.0000  12.4  1  67  3.8195  1  1.6435   0  10
26.00  1  1.2304  11.2  1  49  3.6021  1  2.0000  27  11
32.00  1  1.3222  10.6  1  46  3.6990  1  1.6335   1   9
35.00  1  1.1139   7.0  0  48  3.6532  1  1.1761   4  10
37.00  1  1.6021  11.0  1  63  3.9542  0  1.2041   7   9
41.00  1  1.0000  10.2  1  69  3.4771  1  1.4771   6  10
41.00  1  1.1461   5.0  1  70  3.5185  1  1.3424   0   9
51.00  1  1.5682   7.7  0  74  3.4150  1  1.0414   4  13
52.00  1  1.0000  10.1  1  60  3.8573  1  1.6532   4  10
54.00  1  1.2553   9.0  1  49  3.7243  1  1.6990   2  10
58.00  1  1.2041  12.1  1  42  3.6990  1  1.5798  22  10
66.00  1  1.4472   6.6  1  59  3.7853  1  1.8195   0   9
67.00  1  1.3222  12.8  1  52  3.6435  1  1.0414   1  10
88.00  1  1.1761  10.6  1  47  3.5563  0  1.7559  21   9
89.00  1  1.3222  14.0  1  63  3.6532  1  1.6232   1   9
92.00  1  1.4314  11.0  1  58  4.0755  1  1.4150   4  11
 4.00  0  1.9542  10.2  1  59  4.0453  0  0.7782  12  10
 4.00  0  1.9243  10.0  1  49  3.9590  0  1.6232   0  13
 7.00  0  1.1139  12.4  1  48  3.7993  1  1.8573   0  10
 7.00  0  1.5315  10.2  1  81  3.5911  0  1.8808   0  11
 8.00  0  1.0792   9.9  1  57  3.8325  1  1.6532   0   8
12.00  0  1.1461  11.6  1  46  3.6435  0  1.1461   0   7
11.00  0  1.6128  14.0  1  60  3.7324  1  1.8451   3   9
12.00  0  1.3979   8.8  1  66  3.8388  1  1.3617   0   9
13.00  0  1.6628   4.9  0  71  3.6435  0  1.7924   0   9
16.00  0  1.1461  13.0  1  55  3.8573  0  0.9031   0   9
19.00  0  1.3222  13.0  1  59  3.7709  1  2.0000   1  10
19.00  0  1.3222  10.8  1  69  3.8808  1  1.5185   0  10
28.00  0  1.2304   7.3  1  82  3.7482  1  1.6721   0   9
41.00  0  1.7559  12.8  1  72  3.7243  1  1.4472   1   9
53.00  0  1.1139  12.0  1  66  3.6128  1  2.0000   1  11
57.00  0  1.2553  12.5  1  66  3.9685  0  1.9542   0  11
77.00  0  1.0792  14.0  1  60  3.6812  0  0.9542   0  12
;
proc phreg data=Myeloma;
   model Time*VStatus(0)=LogBUN HGB Platelet Age LogWBC
                         Frac LogPBM Protein SCalc  ;
	contrast 'Effect of HGB One Unit Decrease' HGB -1 / estimate=exp ;
		contrast 'Effect of HGB One Unit Increase' HGB 1 / estimate=exp ;
			
	run;


 

 

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 1 reply
  • 1235 views
  • 1 like
  • 2 in conversation