BookmarkSubscribeRSS Feed
Maya1
Fluorite | Level 6

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!

4 REPLIES 4
SteveDenham
Jade | Level 19

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

Maya1
Fluorite | Level 6

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:

  1. rate of ectodermal lesions in female : N11/ N+1
  2. rate of endodermal lesions in male : N22 / N+2
  3. overall rate of mesodermal lesions (i.e in male and female) : N3+ / N++

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

Maya1
Fluorite | Level 6

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!

 

SteveDenham
Jade | Level 19

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

 

 

 

 

sas-innovate-2024.png

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.

 

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
  • 4 replies
  • 1375 views
  • 0 likes
  • 2 in conversation