BookmarkSubscribeRSS Feed
Mehdi_R
Fluorite | Level 6

Hello everyone,

I have a longitudinal data with 4 outcomes (knowledge, skill, encounter, attribute) which are correlated and two covariates (prepost and year). outcomes are ordinal variables and I would like to use generalized or cumulative logit. "prepost" is an id for pre and post treatment on individuals. outcome_id is created to distinguish the outcomes. However, to take care of multiple outcomes, I have used "dist = byobs"; the variable "outcome_dist" contains the character "MULT" since all outcomes follow multinomial distributions. To take care of the two kinds of correlation, correlation between outcomes and correlation between pre and post measurments I have used the following codes:

proc glimmix data = link_combined3 method = laplace;

class prepost outcome_id id;

model outcome = year prepost / s dist = byobs(outcome_dist);

random int / subject = id group = outcome;

random int / subject = outcome_id group = outcome;

run;

LOG window gives this:

ERROR: The Multinomial distribution is currently not supported in a multivariate setting.

I really appreciate any help regarding how to take care of correlation due to multiple outcomes and repeated measurements on individuals when all outcomes follow multinomial distribution.

7 REPLIES 7
SteveDenham
Jade | Level 19

My first hack at this would involve getting rid of the dist=byobs, and replacing it with dist=mult. since you say all outcomes follow multinomial distributions.  Then I believe you would have to include outcome_id as a fixed effect, along with interactions with the covariates already included in the model. Hopefully, you have enough data to be able to adequately fit that many parameters.

Steve Denham

Mehdi_R
Fluorite | Level 6

Hello Steve and thanks for your reply.

The reason I was using BYOBS is that SAS will give different regression parameters for different outcomes. But you are absolutely right! BYOBS can't help in my situation. But by considering outcome_id as fixed effect, I will get regression parameters whose interpretations are comparing different levels of outcome_id with each other. This is not what answers my research question! I need to have different regression parameters which are associate with different outcomes. For example, if X is the only independent covariate, I want to have parameters that: "beta1 gives amount of change in logit of the first outcome for one unit increase in X, beta2 gives amount of change in logit of the second outcome for one unit increase in X and so forth". Is it possible to do such analysis in SAS?

SteveDenham
Jade | Level 19

Try these two lines, and see if it fits what you are aiming for:

model outcome = year*outcome_id prepost*outcome_id / s dist = byobs(outcome_dist) noint;

random int / subject = id group = outcome;

This should give the betas for each outcome_id for year and each level of prepost.

Steve Denham

:


Mehdi_R
Fluorite | Level 6

Thanks Steve.

It gives the same error:

ERROR: The Multinomial distribution is currently not supported in a multivariate setting.

SteveDenham
Jade | Level 19

It has been a bad day for me and code...

Try this:

model outcome = year*outcome_id prepost*outcome_id / s dist = multinomial noint;

random int / subject = id group = outcome;

Steve Denham

Mehdi_R
Fluorite | Level 6

Thanks Steve.

SAS is still running on my computer. I think it's not working. However, I think such analysis is not included in SAS. Please see this paper:

"Joint generalized estimating equations for multivariate longitudinal binary outcomes with missing data: An application to AIDS data".

For multivariate longitudinal binary outcome, GEE was developed in 2009. It's probable that GEE and mixed effect modeling for multivariate longitudinal multinomial data have not been developed yet.

SteveDenham
Jade | Level 19

Let it run--you are estimating a lot of parameters and a multinomial model is not easy to fit.

I will bet it comes out "Did not converge" at the 20th iteration (the default number of iterations).  You will likely have to add an NLOPTIONS statement if that is the case.

Steve Denham

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

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
  • 7 replies
  • 2417 views
  • 6 likes
  • 2 in conversation