Pyrite | Level 9

## Puzzled: Hazard ratio is 0 when both arms have events

I recently encountered a problem that the HR = 0 when both arms have events. One arm has 7 subjects with 2 events, and the other arm has 8 subjects with 3 events. How come HR is 0 from Proc PHREG?

I have posted my data and code below. Can anyone give me some clue how this happens?

Thank you!

``````data test;
input ID \$ cnsr arm aval;
datalines;
01 0 2 2.9
01 1 1 0
03 0 1 14
04 1 2 0
05 0 1 9.6
06 1 2 5.6
07 0 2 1.1
08 1 1 0
09 0 2 2.8
10 1 2 3
11 1 2 0
12 1 1 0
13 1 1 8.5
14 1 2 0
15 1 1 0
;
run;
ods output ParameterEstimates = hazard;
proc phreg data = test;
class arm (ref="2");
model aval * cnsr(1) = arm / ties=breslow risklimits alpha=0.05 ;
Run;

ods output quartiles=quartiles homtests=homtests_unstrat;
proc lifetest data=test plots=survival method=km;
time aval*cnsr(1);
strata arm;
run;``````

1 ACCEPTED SOLUTION

Accepted Solutions

## Re: Puzzled: Hazard ratio is 0 when both arms have events

Hello @fengyuwuzu,

Thank you for posting complete code including usable sample data.

Note that the hazard ratio is not exactly zero. If you print your ODS output dataset HAZARD with more decimals,

``````proc print data=hazard;
format _numeric_ best16.;
run;``````

you'll see that both ChiSq and HazardRatio are small, but positive. The natural logarithm of the hazard ratio is the Estimate, which is -17.991..., and exp(-17.991...)=1.536...E-8. Without having checked more details I'd say that a very small hazard ratio of arm 1 vs. arm 2 is plausible, given that all uncensored patients in arm 1 were still "alive" after* all patients in arm 2 had "died" or had been censored -- a quite extreme situation. As soon as there is some overlap, e.g., change AVAL=14 of ID '03' to 5, the hazard ratio steps up (to 0.283).

* (of course not necessarily "after" in calendar time)

2 REPLIES 2

## Re: Puzzled: Hazard ratio is 0 when both arms have events

Hello @fengyuwuzu,

Thank you for posting complete code including usable sample data.

Note that the hazard ratio is not exactly zero. If you print your ODS output dataset HAZARD with more decimals,

``````proc print data=hazard;
format _numeric_ best16.;
run;``````

you'll see that both ChiSq and HazardRatio are small, but positive. The natural logarithm of the hazard ratio is the Estimate, which is -17.991..., and exp(-17.991...)=1.536...E-8. Without having checked more details I'd say that a very small hazard ratio of arm 1 vs. arm 2 is plausible, given that all uncensored patients in arm 1 were still "alive" after* all patients in arm 2 had "died" or had been censored -- a quite extreme situation. As soon as there is some overlap, e.g., change AVAL=14 of ID '03' to 5, the hazard ratio steps up (to 0.283).

* (of course not necessarily "after" in calendar time)

Pyrite | Level 9

## Re: Puzzled: Hazard ratio is 0 when both arms have events

Thank you so much for the explanation. It makes sense.

Discussion stats
• 2 replies
• 212 views
• 0 likes
• 2 in conversation