BookmarkSubscribeRSS Feed
adcc5465
Fluorite | Level 6

I am modeling a YES/NO decision making at the individual level. One person would choose one out of around 2,000 options. There were 25,000 persons. The Cartesian product gave a 40,000,000 sample size (at different time, some options may not be available).

 

For all options, there were two interested main effects and one of their interaction: A and B. Both are three-level ordinal variables (Per my understanding, because the options were sampled from a population, therefore, possible random effects for A and B).

 

For some persons (10%), they have two chances (at different time, count variable with levels of 1 and 2) to make their decision (repeated measure, therefore, needs R side effects).

 

The program was:

 

proc sort data= test; by chance Person_ID;

proc glimmix data=test singular=1e-10 maxopt=100 noclprint;

class A B Options_ID;

model decision(event="1") = A|B Chance

/ dist=binary link=logit ddfm=BW;

random intercept/subject = A|B type =VS;

random chance/subject = Person_ID residual type =AR(1);

nloptions maxiter=150 technique= NRRIDG;

run;

 

When I tried to run this, SAS kept running like forever.

 

After many tries, the only converge result I got was from this program:

proc glimmix data=test singular=1e-10 maxopt=100 method = Laplace noclprint;

class A B Options_ID;

model decision(event="1") = A|B Chance

/ dist=binary link=logit ddfm=BW;

random A /subject = Options_ID type =ANTE(1);

nloptions maxiter=150 GCONV=0;

run;

 

From the previous discussion, @sld at https://communities.sas.com/t5/Statistical-Procedures/Glimmix-did-not-converge/td-p/387883

would the comment apply to my situation?

And how should I adjust my model?

3 REPLIES 3
jiltao
SAS Super FREQ

Your program below --

 

proc glimmix data=test singular=1e-10 maxopt=100 noclprint;

class A B Options_ID;

model decision(event="1") = A|B Chance

/ dist=binary link=logit ddfm=BW;

random intercept/subject = A|B type =VS;

random chance/subject = Person_ID residual type =AR(1);

nloptions maxiter=150 technique= NRRIDG;

run;

has two issues:

1. the first random statement does not seem to have a correct syntax

2. The current syntax treats A|B as both fixed and random effects -- this is not correct.

 

I would suggest you take out your first RANDOM statement. And for the second RANDOM statement, I am not sure AR(1) makes sense to your data. But this might be because I am not clear on your data structure at this point....

Thanks,

Jill

adcc5465
Fluorite | Level 6

Thank you so much!

In that case, could I switch to PROC GENMOD rather than stick with PROC GLIMMIX?

jiltao
SAS Super FREQ

Yes I think PROC GENMOD should work too.

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

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
  • 3 replies
  • 1145 views
  • 3 likes
  • 2 in conversation