Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Home
- /
- Analytics
- /
- Stat Procs
- /
- Obtain Correct Marginal Predictions for Mixed Model with Categorical O...

Options

- RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Posted 09-01-2023 04:35 PM
(754 views)

I think it is relatively well known that simply scoring a mixed effects model over fixed effects produces biased marginal prediction when the outcome is binary. See Pavlou (2015) for an excellent summary of the problem and solutions: https://bmcmedresmethodol.biomedcentral.com/articles/10.1186/s12874-015-0046-6

SAS does not currently have a way to remove the bias outside of settling for GEE in place of random effects model. GEE has drawbacks. Feature request is in with SAS.

Can anyone direct me to existing SAS code or give pointers on what to use and how to develop an efficient integration solution. I am working with large datasets and thousands of random effects levels.

I've written the code to apply Zeger approximation (sharing below) but want to be exact.

To whom it may concern, in a sample with event rate in low single digits, as expected, Observed/Expected ratios based on native SAS PredProbs for full sample were substantially biased upwards (OE>1.00) due to under-predicted risk. Bias was in excess of 10%. After applying Zeger correction, the O/E ratios were much closer to 1.00 but the correction slightly over-estimates risk (OE<1.00 with bias around ~2%) . I am hoping that integration approch proposed in Pavlou (2015) will get me closer to ideal OE = 1.00.

%macro ZegerC(mPredProb, S2); * &mPredProb = variable with biased marginal predicted probabilities from mixed model with binary outcome *

* &S2 = variance of random intercepts ;

data Zeger; set DataHave; CAF = sqrt(.345843*&S2 + 1); XB = log( &mPredProb./(1-&mPredProb.) ); XBc = XB / CAF ; &mPredProb.C = ( exp(-XBc) + 1 )**-1;

drop CAF XB XBc;

run;

%mend ZegerC;

2 REPLIES 2

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Have you looked at Stroup & Claassen's 2020 paper? <PAYWALL> Stroup, W., Claassen, E. Pseudo-Likelihood or Quadrature? What We Thought We Knew, What We Think We Know, and What We Are Still Trying to Figure Out. *JABES* **25**, 639–656 (2020). https://doi.org/10.1007/s13253-020-00402-6.

There is a tremendous amount of simulation involved and much discussion of bias and how it might be overcome. I may be misinterpreting your aims, but if you haven't read this paper you are missing out.

SteveDenham

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Thank you Steve. I was not looking to deliberate between PL and Quadrature approaches but this is certainly a relevant topic. Thanks for sharing!

**SAS Innovate 2025** is scheduled for May 6-9 in Orlando, FL. Sign up to be **first to learn** about the agenda and registration!

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.