NONMEM vs. R for linear mixed-effects

2 messages 2 people Latest: Feb 28, 2018

NONMEM vs. R for linear mixed-effects

From: Dennis Fisher Date: February 28, 2018 technical
Colleagues I am implementing a linear mixed-effects model in R. Out of curiosity (and to confirm that I was doing the right thing), I wrote the code initially in NONMEM, then tried to replicate the results in R. The dataset is four (identical) treatments for one subject and the data are reasonably linear. For most subjects, the results from the NONMEM analysis are nearly identical to those from R. But, for one subject, the SLOPE/INTERCEPT are sufficiently different to concern me that I am implementing one of these (or possibly both) incorrectly. The critical code is: NONMEM: $PRED INTERCEPT = THETA(1) + ETA(1) SLOPE = THETA(2) + ETA(2) Y = INTERCEPT + SLOPE * TIME + EPS(1) R: LMER package: lmer(DV ~ TIME + (1|PERIOD), data=DATA, REML=FALSE) where: DV is the dependent variable PERIOD distinguishes the treatments (and is a factor) R: NLME package: lme(DV ~ TIME, random = ~ 1|PERIOD, data=DATA, method="ML") The two R packages yield identical results. Graphics from NONMEM and R differ slightly but there is no obvious preference between these approaches. Any thoughts as to a possible explanation? Dennis Dennis Fisher MD P < (The "P Less Than" Company) Phone / Fax: 1-866-PLessThan (1-866-753-7784) www.PLessThan.com http://www.plessthan.com/

RE: NONMEM vs. R for linear mixed-effects

From: Paul Hutson Date: February 28, 2018 technical
Thanks for the thought exercise, gentlemen. Paul Hutson, PharmD, BCOP Professor UWisc School of Pharmacy T: 608.263.2496 F: 608.265.5421
Quoted reply history
From: [email protected] [mailto:[email protected]] On Behalf Of Dennis Fisher Sent: Wednesday, February 28, 2018 12:44 PM To: Leonid Gibiansky <[email protected]> Cc: [email protected] Subject: Re: [NMusers] NONMEM vs. R for linear mixed-effects Leonid With your assistance, I realized the difference between the NONMEM and R approaches — the R approach allows only between-period differences in intercept (not slope) whereas the NONMEM approach that I implemented allowed for between-period differences in both. I removed the ETA for slope from the NONMEM code — the NONMEM results matches R exactly. Conceptually, a common slope makes sense for this particular analysis. Problem solved — thanks for your thoughts. Dennis Dennis Fisher MD P < (The "P Less Than" Company) Phone / Fax: 1-866-PLessThan (1-866-753-7784) http://www.plessthan.com/ On Feb 28, 2018, at 9:59 AM, Leonid Gibiansky <[email protected]<mailto:[email protected]>> wrote: see "Random slopes" here: https://web.stanford.edu/class/psych252/section/Mixed_models_tutorial.html lmer(pitch ~condition+gender+(1 + condition | subject)) On 2/28/2018 12:27 PM, Dennis Fisher wrote: Leonid I omitted one critical piece of information: $INPUT PERIOD=ID I think that your approach implies an order to the data from different periods — whereas making PERIOD=ID allows NONMEM to see each treatment as a separate subject (i.e., the random effect) Dennis Dennis Fisher MD P < (The "P Less Than" Company) Phone / Fax: 1-866-PLessThan (1-866-753-7784) http://www.PLessThan.com http://www.plessthan.com/ On Feb 28, 2018, at 9:23 AM, Leonid Gibiansky <[email protected] <mailto:[email protected]<mailto:[email protected]%20%3cmailto:[email protected]>>> wrote: Just checking: you have treatment effect in R but no effect in Nonmem, am I correct? (I have not used R nlme for a long time, may be I am interpreting it incorrectly) Should you code nonmem as $PRED INTERCEPT= THETA(1) + THETA(3)*PERIOD + ETA(1) SLOPE= THETA(2) + THETA(4)*PERIOD + ETA(2) Y= INTERCEPT + SLOPE * TIME + EPS(1) Leonid On 2/28/2018 11:16 AM, Dennis Fisher wrote: Colleagues I am implementing a linear mixed-effects model in R. Out of curiosity (and to confirm that I was doing the right thing), I wrote the code initially in NONMEM, then tried to replicate the results in R. The dataset is four (identical) treatments for one subject and the data are reasonably linear. For most subjects, the results from the NONMEM analysis are nearly identical to those from R. But, for one subject, the SLOPE/INTERCEPT are sufficiently different to concern me that I am implementing one of these (or possibly both) incorrectly. The critical code is: *NONMEM:* $PREDINTERCEPT= THETA(1) + ETA(1) SLOPE= THETA(2) + ETA(2) Y= INTERCEPT + SLOPE * TIME + EPS(1) *R: LMER package:* lmer(DV ~ TIME + (1|PERIOD), data=DATA, REML=FALSE) where: DV is the dependent variable PERIOD distinguishes the treatments (and is a factor) *R: NLME package:* lme(DV ~ TIME, random = ~ 1|PERIOD, data=DATA, method="ML") The two R packages yield identical results. Graphics from NONMEM and R differ slightly but there is no obvious preference between these approaches. Any thoughts as to a possible explanation? Dennis Dennis Fisher MD P < (The "P Less Than" Company) Phone / Fax: 1-866-PLessThan (1-866-753-7784) http://www.PLessThan.com http://www.plessthan.com/ http://www.plessthan.com/