BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
MegB
Calcite | Level 5

I am running a multilevel ordinal logistic regression model using PROC GLIMMIX. The outcome variable is number of school suspensions (none, 1, 2 or more), with children (level 1) nested in schools (level 2). There are multiple categorical predictor variables in the model as well. 

 

The code I have used is as follows:

 

proc glimmix data=have method=quad ;
class suspension_cat school_ID child_sex child_esl child_atsi mh_dx different_school siblings patage_cat matage_cat mat_maritalstat parent_highestED seifa_quintile school_aria;
model suspension_cat = child_sex child_esl child_atsi mh_dx different_school siblings patage_cat matage_cat mat_maritalstat parent_highestED
seifa_quintile school_aria / CL DIST= multi LINK= clogit SOLUTION ODDSRATIO (DIFF=last label);
random intercept / subject=school_ID type=vc ;
run;

 

 

The odds ratio estimates I obtain from the above code look like this:

Odds Ratio Estimates
ComparisonEstimateDF95% Confidence Limits
male vs female9.07142566.4812.69
ESL vs non-ESL0.99142560.631.57
ATSI vs non ATSI2.27142561.643.14
mh_dx vs no_mh_dx10.73142567.1816.03
different school vs same school1.41142561.101.79
siblings 4 or more vs 13.15142562.154.61
siblings 3 vs 12.04142561.422.92
siblings 2 vs 11.14142560.831.59
siblings none vs 11.84142561.242.72
patage_cat under 20 vs 30 to 391.38142560.772.48
patage_cat 20 to 29 vs 30 to 391.41142561.041.92
patage_cat 40 and over vs 30 to 391.01142560.611.65
matage_cat under 20 vs 30 to 391.64142560.992.71
matage_cat 20 to 29 vs 30 to 391.31142560.941.82
matage_cat 40 and over vs 30 to 391.39142560.633.09
mat_maritalstat unmarried vs married1.62142561.182.21
mat_maritalstat divorced/widowed vs married1.63142560.783.42
parent_highestED high school vs university1.47142561.002.15
parent_highestED vocational vs university1.46142561.012.11
ses_quintile 1 vs 52.65142561.584.45
ses_quintile 2 vs 52.07142561.223.50
ses_quintile 3 vs 51.50142560.872.58
ses_quintile 4 vs 51.02142560.561.83
school_aria remote vs metro1.59142560.992.55
school_aria regional vs metro1.29142560.871.91

 

What I need is to have separate odds ratios for '1 suspension' and '2 or more suspensions' (i.e. all categories of suspension other than the reference category). I know that when running a multinomial logistic regression you can use the 'group= ' option to obtain odds ratios for each level of the DV, and this is what I'm needing for the ordinal logistic regression.

 

I believe I need to write an 'estimate' statement with the /exp option, but I haven't been able to work out exactly how to write this. Can someone please provide me with some sample syntax?

1 ACCEPTED SOLUTION

Accepted Solutions
StatDave
SAS Super FREQ

An odds ratio from a cumulative logistic model evaluates the effect of a predictor on all possible dichotomizations of the response levels formed by splitting the ordered levels into two groups. The model assumes that the effect is the same no matter where the split occurs, which is why you only get a single odds ratio estimate for a continuous predictor. The odds ratios that you want contrast only two distinct response levels instead of all of them split into two groups and are not natural odds ratios obtained from the ordinal model. The odds ratios you want naturally arise from the nominal logistic model using generalized, rather than cumulative, logits.

So, the easiest way to get the odds ratios you want is to change the model to use generalized logits. While it is not impossible to estimate the odds ratios you want from the ordinal model, it would require some work. If you just need the point estimates, you could compute them from the predicted mean values (which are cumulative probabilities) from the OUTPUT statement. But if you also want standard errors for them (and possibly confidence intervals), then you would need to use the NLEstimate macro by writing each odds ratio as a function of the model parameters.

View solution in original post

1 REPLY 1
StatDave
SAS Super FREQ

An odds ratio from a cumulative logistic model evaluates the effect of a predictor on all possible dichotomizations of the response levels formed by splitting the ordered levels into two groups. The model assumes that the effect is the same no matter where the split occurs, which is why you only get a single odds ratio estimate for a continuous predictor. The odds ratios that you want contrast only two distinct response levels instead of all of them split into two groups and are not natural odds ratios obtained from the ordinal model. The odds ratios you want naturally arise from the nominal logistic model using generalized, rather than cumulative, logits.

So, the easiest way to get the odds ratios you want is to change the model to use generalized logits. While it is not impossible to estimate the odds ratios you want from the ordinal model, it would require some work. If you just need the point estimates, you could compute them from the predicted mean values (which are cumulative probabilities) from the OUTPUT statement. But if you also want standard errors for them (and possibly confidence intervals), then you would need to use the NLEstimate macro by writing each odds ratio as a function of the model parameters.

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 1 reply
  • 1025 views
  • 2 likes
  • 2 in conversation