** This code is an example of how to calculate Expected Length of Stay (ELOS) in a PCH ; ** The following code represents the portions of code significant to this study. Complete code can ; ** be requested from MCHP as part of the Monitoring the Winnipeg Hospital System deliverable. ; ** See Roos & Shapiro (1996). ; *** Generate dummy variables for each level of gender (sex) adpcd (level of care on admission), afrmcd (from code), and gender*adpcd interaction terms.; *** _dumvar is a SAS macro developed at MCHP for creating dummy variables (1/0) for every level of a referenced variable.; _dumvar data=pch dvar='gender adpcd afrmcd' prefix='g d f' inter='adpcd*gender'; *** Genate model information on length of stay for individuals admitted to PCH ; proc lifereg data=pch outest=param ; by agegrp ; gender: model yrs*censor(1) = g1 g2 /dist = weibull ; depcode: model yrs*censor(1) = d1 d2 d3 /dist = weibull ; frmcode: model yrs*censor(1) = f1 f2 f3 f6 /dist = weibull ; depsex: model yrs*censor(1) = &inters /dist = weibull ; run; *** Add age group variables back to the parameter data set; data param ; set param ; if _n_ <= 4 then agegrp = 1 ; *_n_ ; else if _n_ <=8 then agegrp = 2 ; *_n_ - 4 ; else if _n_ <=12 then agegrp = 3; * _n_ - 8 ; else if _n_ <= 16 then agegrp = 4; *_n_- 12 ; run; *** Reformat data so every age group and gender*level interaction are on an individual line in the data; *** Note &dvars and &inters are SAS macro variables generated from the _dumvar macro and represent each dummy variable and interaction variable; proc sort data=param ; by agegrp intercep _model_ _scale_ ; run; proc transpose data=param out=temp; by agegrp intercep _model_ _scale_ ; var &dvars &inters ; run; *** Convert the model to actual expected length of stay in years ; data temp ; set temp(where=(yrs ^=.) ) ; mu = intercep+yrs ; sigma=_scale_ ; alpha = exp(-(mu/sigma)) ; ex =exp(mu) *gamma(1.0+sigma) ; vx=(1.0/alpha)**(sigma*2.0)*(gamma(2*sigma+1.0)-gamma(sigma+1.0)**2); stdevx=vx**0.5 ; exyrs=ex/365.25 ; vxyrs=vx/(365.25**2) ; stdevyrs=vxyrs**0.5 ; run;