Programming the statistical procedures from SAS

Three-level GLIMMIX and shrinkage

Frequent Contributor
Posts: 102

Three-level GLIMMIX and shrinkage

I need to understand how SAS GLIMMIX model does shrinkage in the three-level model.  The model has (1) Patients nested in (2) Hospitals, nested in (3) States.  Mortality is the binomial outcome.  PROC GLIMMIX goes like this:


proc glimmix;
     class Hospitals States;
     model Mortality = &Covariates / dist=binomial link=logit ddfm=bw s cl;
     random Intercept / subject=States solution cl;
     random Intercept / subject=Hospitals solution cl;


In a two-level model—Patients(Hospitals)—shrinkage is clear: hospital-level random estimates are shrunk toward the overall average.  How does it work in a three-level model—Patients(Hospitals)(States)?  Do hospital-level random intercepts get shrunk toward the overall Sample average or toward their respective State averages?


In the case of states with multiple hospitals, random Hospital intercepts appear to move in the direction of the State estimate.  However, in states with a single hospital where I expected to find that State and Hospital estimates are the same, I find that the State estimates are severely shrunken towards the overall sample average!  With my data, I find an estimate for an individual hospital equal to 0.5 while the State estimate is 10 times smaller at 0.05.  On the Odds Ratios scale, the center effect is OR=1.65 relative to the state estimate obtained on an identical set of observations.  How is this possible?


I found that explicitly specifying nesting in the last line of the code—random Intercept / subject=Hospitals(States) solution cl—changes only the format of the output but not the estimates or model fit statistics.


Does the order of random statements have any bearing on the order of estimation or the direction of shrinkage?

Ask a Question
Discussion stats
  • 0 replies
  • 1 in conversation