1

Has anyone operationalized Liddell's exact SMR from his '84 paper? Liddell FD. Simple exact analysis of the standardised mortality ratio. Journal of Epidemiology and Community Health 1984;38:85-88.

I need to operationalize his formula for confidence limits when observed events are < 15 (p.86), which uses values from a chi-sq table he mentions as Biometrika Tables for Statisticians. I don't have this can't replicate his p values in SAS. I have already found the CLs for obs events > 15, but not for the <15 group:

From Liddell's paper (ex. 1)

%let alpha = 1.645 ; 
%let obs = 8; 
%let exp = 3.59; 
data x; 
OBS = &obs ; 
EXP = &exp ; 
SMR = obs/exp ; 
if &obs > 15 then do; 
SMR_L = (obs/exp)     * (1 - (1/(9*obs))     - (&alpha/(sqrt(9*obs))) 
)**3; 
SMR_U = ((obs+1)/exp) * (1 - (1/(9*(obs+1))) + 
(&alpha/(sqrt(9*(obs+1)))) )**3; 
else do; 
? 
p = ?; 
run;
flag

1 Answer

1

options pageno=1 pagesize=50 linesize=90;                                                

title1 "Standardized mortality ratio exact confidence limits";

data test;          
  infile cards;                               
  input observed expected alpha;             
  if ((expected gt 0) and (0 < alpha < 1)) then do;
     smr=observed/expected;
     if (observed eq 0) then do;
        smrlowcl=0;
        smrupcl=(0.5*cinv(1-alpha,2*(observed+1)))/expected;
     end;
     else do; 
        smrlowcl=(0.5*cinv(0.5*alpha, 2*observed))/expected;
        smrupcl=(0.5*cinv(1-0.5*alpha,2*(observed+1)))/expected;
     end;
  end;                                       
  else do;
     smr=.;
     smrlowcl=.;
     smrupcl=.;
  end;
  output test;                                
  label alpha="Statistical significance level"; 
  label smr="Standardized mortality ratio (SMR)"; 
  label smrlowcl="SMR lower confidence limit at level, alpha";
  label smrupcl="SMR upper confidence limit at level, alpha";                       
cards; 
  8   3.59 0.10                              
 23  17.83 0.05                           
210 180    0.05                                
  0  10    0.05                              
;                       
run;

proc print data=test uniform label;          
  var observed expected smr smrlowcl smrupcl; 
  id alpha;                                   
run;      
link|flag

Your Answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.