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

I am doing analysis of a trial testing satisfaction in VA scale from 0 to 100 in a cross over trial. Patients were assigned to two treatment and followed for 12 months. After the 12 month the treatment was changed and followed for another 12 months. 

Measures of satisfaction were perfomed at the first week, then at 3 months , 6 months and 12 months (4 times). 

 

Distribution was not normal very skewed to the right.  I tried some different distributions such as exp and poisson, but residuals are not randomly distributed around zero, specially a the end it positive residuals drasticlly decreases to zero. Independent of the distribution I used , even normal residuals are very similar. 

Q2 is satisfaction. 

This is what I am using. 
proc glimmix plots = all ;
class paciente treat (ref = first) time (ref= first);
model q2 = treat | time /solution link = log s dist = poisson ;
random int /subject = paciente;

covtest 'var(paciente) = 0' 0 .;
run;

 

Would overdispersion be a problem and a beta binomial be recommended? 

 

Thanks so much. 

 

1 ACCEPTED SOLUTION

Accepted Solutions
SteveDenham
Jade | Level 19

Try the following:

 

proc glimmix plots = all ;
class paciente treat (ref = first) time (ref= first);
scaledq2=q2/100;
model scaledq2 = treat | time /solution  s dist = binomial ;
random int /subject = paciente;
covtest 'var(paciente) = 0' 0 .;
run;

You could also try dist=beta, but since you actually have values at 1, it isn't going to like those much.

 

I don't think you need to go to the beta-binomial.  I don't see overdispersion here, but there are heavy tails, so I could be wrong.  If the straight binomial doesn't do well, then you may have to program in the variance function and link function.

 

Steve Denham

 

 

 

View solution in original post

2 REPLIES 2
SteveDenham
Jade | Level 19

Try the following:

 

proc glimmix plots = all ;
class paciente treat (ref = first) time (ref= first);
scaledq2=q2/100;
model scaledq2 = treat | time /solution  s dist = binomial ;
random int /subject = paciente;
covtest 'var(paciente) = 0' 0 .;
run;

You could also try dist=beta, but since you actually have values at 1, it isn't going to like those much.

 

I don't think you need to go to the beta-binomial.  I don't see overdispersion here, but there are heavy tails, so I could be wrong.  If the straight binomial doesn't do well, then you may have to program in the variance function and link function.

 

Steve Denham

 

 

 

mdsaraiv
Fluorite | Level 6

Thanks

I did not worked , so I am trying now a non parametric solution I found in R the (nparld). package. In the original paper authors mention a macro in SAs but I was not able to find it. 

 

Thanks

 

Maria

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

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
  • 2 replies
  • 1807 views
  • 1 like
  • 2 in conversation