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

I am using SAS 9.4 and PROC GLIMMIX to perform a log-binomial regression analysis with random effects on data from a clinic trial. 

 

I have 11527 observations on 1062 patients taken at 6 clinics.  All records with missing data have been removed from the input data file. Outcome variable is cancer recurrence (0= no, 1= yes) and five fixed effects: intervention (0= placebo, 1= experimental drug), prescription nsaid use (0=no, 1=yes), low dose aspirin use (0=no, 1=yes), clinic (site numbers 1 to 6, categorical), and dosage (average intervention pills per day intake between visits to the clinic, continuous).  Pill count data provides strong evidence that some of the patients deviated from the 1 pill per day protocol, with some having zero pill intake between clinic visits and others having up to 8 pills per day intake between clinic visits.  The vast majority of patients appeared to adhere to the treatment protocol.

 

Of course, the 6 clinics used in the trial are a sample from a larger population of clinics. In order for the conclusions from the trial to apply to the population of all clinics (and not to just these 6 clinics), the variable 'clinic' needs to be a random-effect variable; hence the use of PROC GLIMMIX.  Therefore, the clinics are the independent experimental units and the patient data within each clinic are correlated.

 

When I run my code (see below), it seems to work without error and I get results that make sense, but I get this message in the log that I can't figure out:

 

"Note: An R-side variance component is confounded with the profiled variance."

 

Does anyone know what this log message means?  Can I ignore it or must I take some kind of corrective action?

 

Thanks in advance for your time.

 

Here is my code:

 

proc glimmix data=mydata.pillsfile_uv  noclprint  plots= boxplot(fixed); 
class  ptid_  intervention(ref="0")  nsaid(ref="0")  aspirin(ref="0")  clinic;
model  recurrence(event='1') =  intervention  nsaid  aspirin  clinic  pillsperdayintake  /  s  ddfm=kr  dist=binary  link=log  chisq;
random  clinic  /  subject=ptid_(clinic)  type=vc  residual;
nloptions tech=nrridg;
estimate  'Treatment' intervention 1 -1  /  cl  exp;
run;

 

Notes:

- When I remove the "residual" option from the above random statement to force creation of G-side random components, the code fails to converge. 

- When I specify covariance structure type=un (unstructured), the code also fails to converge

 

References used to write this code:

 

1) Kathleen Kiernan. "Insights into Using the GLIMMIX Procedure to Model Categorical Outcomes with Random Effects." Paper SAS2179-2018.
2) Mike Patetta. "Longitudinal Data Analysis with Discrete and Continuous Response Notes". Book code E70979, course code LWLONG42/LONG42. ISBN 978-1-63526-093-9. 21Mar2017.

3) SAS/STAT 9.2 Users Guide. The GLIMMIX Procedure. https://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#glimmix_toc.htm

1 ACCEPTED SOLUTION

Accepted Solutions
wjd3
Obsidian | Level 7

I tried the new random statement.  The code converges but I get new messages:

Note: Estimated G matrix is not positive definite.

Note: The covariance matrix is the zero matrix.

 

I will close this thread and get the book you recommended.  Thanks for the help.

 

 

View solution in original post

3 REPLIES 3
sld
Rhodochrosite | Level 12 sld
Rhodochrosite | Level 12

I would try a revised random statement, perhaps something like

 

random clinic ptid_(clinic);

The concept of "residual" is different for generalized linear models than for general linear models. For the binary distribution, there is no residual variance to estimate: the variance is redundant to the mean. For more details about this concept, see Generalized Linear Mixed Models: Modern Concepts, Methods and Applications.

wjd3
Obsidian | Level 7

I tried the new random statement.  The code converges but I get new messages:

Note: Estimated G matrix is not positive definite.

Note: The covariance matrix is the zero matrix.

 

I will close this thread and get the book you recommended.  Thanks for the help.

 

 

sld
Rhodochrosite | Level 12 sld
Rhodochrosite | Level 12

I overlooked something previously, my apologies. I was thinking of clinic as a random effects factor, and I failed to notice that you included clinic in your MODEL statement. In one part of your original post, you defined clinic as fixed, but subsequently you defined clinic as random. You'll have to pick one or the other.

 

If you want clinic to be a fixed effects factor, then try

 

random intercept / subject=ptid_(clinic);

If you want clinic to be a random effects factor, then you must remove clinic from the model statement. Then you can use

 

model  recurrence(event='1') = intervention nsaid aspirin pillsperdayintake / s ddfm=kr dist=binary link=log chisq;
random clinic ptid_(clinic);

 

or a RANDOM statement alternative

 

random intercept ptid_ / subject=clinic;

 

I would probably try Laplace or quadrature estimation which you can specify using the METHOD option on the PROC statement. Either of these methods places constraints on how you specify your model. See the METHOD option in Proc GLIMMIX statement documentation for details.

 

If that solves your problem, at least to some extent, you could then explore an explicit covariance structure for the repeated measures (visits) on patients, either as a GLMM or as a GEE. This is an appreciably more complex effort, and the Stroup text I referenced in my previous message will provide details about approach and cautions.

 

Good luck!

 

 

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
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
  • 2172 views
  • 0 likes
  • 2 in conversation