Hello,
I try model an intercept-only random effects model for 3 correlated outcomes. All outcomes are event-rates from a multinomial distribution (with 3 unordered categories), given by center.
For the multivariate analysis, I have restructured the data as follows: I transposed the data set so that I get 3 rows (one for each dependent variable = response) per center and added an indicator variable (resp_indic) as predictor to indicate which of the 3 outcomes is meant.
In general, if I suppress the intercept and add the indicator resp_indic as random effect, I can model the correlation among the outcomes as multivariate analysis.
This works perfectly well in case of event-rates that result from a binomial distribution.
PROC GLIMMIX data=ds method=quad;
class resp_indic center;
model event/trial = resp_indic / noint s cl corrb covb ddfm=bw;
random resp_indic / subject=center S type=UN G;
run;
However, this event/trial notation does not work for multinomial distribution (i.e. the code above with option dist=multinomial link=glogit)
Thus, I tried to model the events on patientlevel, so that the outcomes are not rates any more, but rather the results from the multinomial distribution.
proc glimmix data= ds method= quad;
class resp_indic center patient;
model response(ref= first)= resp_indic/ noint dist=multinomial link=glogit s;
random resp_indic /sub= patient (center) group=response G;
run;
Unfortunately, now the intercept cannot be suppressed any more since it is required for the generalized logit.
Any hint is highly appreciated!
Thank you in advance!
I assume that the model converges and you get some sort of solution vector. If not, then indeed you will have to remove the noint option.
Also, I believe that the correct random statement will have subject=center, and not subject=patient(center). This is because the counts are totaled over patients within a center when you analyze. (At least that is what I think you are trying to do). In this case, patient is actually a subsample.
Steve Denham
Dear Mr Denham,
thank you for your reply, but it was not exactly what I was looking for.
Probably I should concretise my model: My target population are patients (male or female) with a certain lesion. The location of the lesion is either ectodermal, endodermal or mesodermal (exactly one of the categoried applies).Thus I have following table given per center:
Location \ Gender | female | male | all |
Ectodermal | N11 | N12 | N1+ |
Endodermal | N21 | N22 | N2+ |
Mesodermal | N31 | N32 | N3+ |
N+1 | N+2 | N++ |
I’m interested in following 3 eventrates, thereby taking the clustered data [center] into account:
Additionally to these eventrates, I want to estimate the correlation among them across different centers. Therefore, I need the multivariate analysis. I tried following code with sub=patient(center) in order to tell SAS that patients are repeated in the dataset for gender=all for the estimation of the event meso in both genders.
proc glimmix data= ds method= quad;
class gender center patient;
model location (ref= first)= gender/ noint dist=multinomial link=glogit s;
random gender /sub= patient (center) group=location G type=UN;
run;
I wanted to suppress the intercept and add type= UN in order to get the correlation between all 3 eventrates, but with dist=multinomial and link=glogit this is not possible.
Do you have any idea how I can estimate the 3 eventrates as well as the correlation between them in a random effects model?
Thanks in advance and kind regards,
Maya
One addendum:
The actual problem is that I'd like to allow that observations within centers are correlated, therefore I wanted to specify type=UN. However, this does not work with proc glimmix and dist=mult.
Thanks again!
I would try the following:
proc glimmix data= ds method= quad;
class gender center location patient;
model location (ref= first)= gender/ noint dist=multinomial link=glogit s;
random intercept /sub= center group=location G type=UNR;
random intercept/sub= patient(center) group=location G;
run;
By using type=UNR, you should get correlations, although the correlations in my code would be between centers. The patient(center) should only be a single variance component.
I still am not completely clear as to the correlations you can get from your data, or if that is actually what you should be looking at. Perhaps odds ratios would be more easily interpreted.
Steve Denham.
Steve Denham
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.