Programming the statistical procedures from SAS

How to set the correct syntax to estimate the correct Multilevel Model

Reply
New Contributor
Posts: 2

How to set the correct syntax to estimate the correct Multilevel Model

I'm now concentrated on profiling hospitals of an italian region (10mln citizens and 2mln discharges peryear) on hospital overall mortality by DRGs using hospitalizationdata ( DRG stands for Diagnosis Related Group: aclassification of 500 illness categories identified in the InternationalClassification of Diseases. Each of the distinct groupings is considered to be"medically meaningful," that is, all patients in the same DRG are expected to display a set of clinical responses which will, on statistical average, result in equal use of hospital resources).

Hospital CEOs would like to have from us the following information:

1) for each hospital and for all DRGs which have been “delivered” by the respective hospital, the estimated mortality with respect to the total (regional) performance (i.e.regional average mortality by DRG). This analysis should allow hospital CEOs to compare mortality rates of his hospital, DRG by DRG with respect to the regional performance of the same DRG

2)  for each hospital and for all DRGs which have been “delivered”  by the hospital, the estimated mortality with respect to within hospital average (hospital average mortality). This analysis should allow hospital CEOs to compare mortality rates of his hospital DRG by DRG with respect to the hospital overall mortality

So in our dataset we have 150 hospitals, about 500 DRGs and 1,200,000 patients, the response variable is overall mortality. Below an example of our dataset:

Hospital

 

drg

 

Patient

 

1

 

1

 

1

 

1

 

5

 

2

 

1

 

3

 

3

 

1

 

10

 

4

 

2

 

5

 

5

 

2

 

5

 

6

 

2

 

7

 

7

 

3

 

1

 

8

 

3

 

1

 

9

 

3

 

2

 

10

 

3

 

11

 

11

 

So each patient is “assigned” to only one DRG and toonly one hospital, while same DRGs can be delivered by different hospitals.

Until now we have performed two separate analysis by applying multilevel model to the above mentioned data in order to provide answer to our CEOs:

2) 500 two level models, one for each DRGs, considering hospitals and patients as respectively second and first level.

3) 150 two level models, one for each hospital, considering DRGs and patients as respectively second and first level.

Since this analysis has to be performed every year we would like to make it easier and to consider for instance only one hierarchical model. We thought of the following solution: a two level models

(patients within hospitals) with DRG taken as random covariate and so as a pseudo-level.

One more issue concern the SAS syntax. We are choosing the correct syntax to estimate our model, between the following examples:

%glimmix(data=namedataset,

   procopt= order=data noclprint covtest ,

   stmts=%str

  (

   class    DRG Hospital;

   model Mortality=DRG             / solution;

   random intercept DRG/ sub=Hospitalsolution;

   ),

   error=binomial,

   link=logit,

   maxit=30);

OR

%glimmix(data=namedataset,

   procopt= order=data noclprint covtest ,

   stmts=%str

  (

   class    DRG Hospital;

   model Mortality=DRG             / solution;

   random intercept / sub=Hospital solution;

   random intercept / sub=DRG solution;

   ),

   error=binomial,

   link=logit,

   maxit=30);

In this way we should obtain both intercept and DRGs residuals with mean equal to zero for each DRG. So for instance, if we consider DRG "001", the mean of  u0jk where j = "001' and  K = 1,...N is zero.

In this way we assume no correlation structure between DRGs and Hospitals. In other way we can write the following syntax, assuming correlation and hierarchical structure between DRGs and hospitals.

%glimmix(data=namedataset,

   procopt= order=data noclprint covtest ,

   stmts=%str

  (

   class    DRG Hospital;

   model Mortality=DRG             / solution;

   random intercept / sub=Hospital solution;

   random intercept / sub=DRG(Hospital)solution;

   ),

   error=binomial,

   link=logit,

   maxit=30);

Thank you for your suggestion.

Paolo

Ask a Question
Discussion stats
  • 0 replies
  • 86 views
  • 0 likes
  • 1 in conversation