2014-09-16 2 views
3

Я пытаюсь указать как случайный перехват, так и случайный уклон в модели GAMM с одним фиксированным эффектом.Как добавить случайный перехват и случайный уклон к модели GAMM в R

Я успешно установлена ​​модель со случайным перехватом, используя приведенный ниже код в mgcv библиотеке, но теперь может не определить, что синтаксис для случайного наклона в пределах gamm() функции:

M1 = gamm(dur ~ s(dep, bs="ts", k = 4), random= list(fInd = ~1), data= df) 

If I использовал как случайный перехват и наклон в пределах линейной модели смешанных эффектов я бы написать это следующим образом:

M2 = lme(dur ~ dep, random=~1 + dep|fInd, data=df) 

gamm() сопроводительной документации говорится, что ра Термины ndom необходимо указывать в форме list, как и в lme(), но я не могу найти ни одного интерпретируемого примера, который включает в себя как наклон, так и точки перехвата. Любые советы/решения будут высоко оценены.

+0

Вы имеете в виду случайный наклон или случайный перехват? Если случайный уклон, я уверен, что вам нужно указать, к какой переменной (-ам) применяется случайный уклон. – MrFlick

+0

Оба. Я хочу использовать как случайный наклон, так и случайный перехват для переменной-фактора 'fInd' (как показано в примере lme()), я просто не могу понять синтаксис. – jjulip

ответ

1

Функция gamm4 в пакете gamm4 содержит способ сделать это. Вы указываете случайный перехват и наклон так же, как и в стиле lmer. В вашем случае:

M1 = gamm4(dur~s(dep,bs="ts",k=4), random = ~(1+dep|fInd), data=df) 

Вот gamm4 документация: https://cran.r-project.org/web/packages/gamm4/gamm4.pdf

0

Вот gamm() синтаксиса для входа коррелируют случайный перехват и откосы эффектов, используя sleepstudy набор данных.

library(nlme) 
library(mgcv) 
data(sleepstudy,package='lme4') 

# Model via lme() 
fm1 <- lme(Reaction ~ Days, random= ~1+Days|Subject, data=sleepstudy, method='REML') 
# Model via gamm() 
fm1.gamm <- gamm(Reaction ~ Days, random= list(Subject=~1+Days), data=sleepstudy, method='REML') 

VarCorr(fm1) 
VarCorr(fm1.gamm$lme) 
# Both are identical 
# Subject = pdLogChol(1 + Days) 
#    Variance StdDev Corr 
# (Intercept) 612.0795 24.740241 (Intr) 
# Days   35.0713 5.922103 0.066 
# Residual 654.9424 25.591843 

Синтаксис для ввода некоррелированных случайного перехвата и наклона эффектов является одинаковым для lme() и gamm().

# Model via lme() 
fm2 <- lme(Reaction ~ Days, random= list(Subject=~1, Subject=~0+Days), data=sleepstudy, method='REML') 
# Model via gamm() 
fm2.gamm <- gamm(Reaction ~ Days, random= list(Subject=~1, Subject=~0+Days), data=sleepstudy, method='REML') 

VarCorr(fm2) 
VarCorr(fm2.gamm$lme) 
# Both are identical 
#    Variance   StdDev 
# Subject = pdLogChol(1)     
# (Intercept) 627.5690   25.051328 
# Subject = pdLogChol(0 + Days)   
# Days   35.8582    5.988172 
# Residual 653.5838   25.565285 

Это answer также показывает, как ввести несколько случайных эффектов в lme().