R эквивалентный случайный остаток по субъекту в SAS

Я могу закодировать эту проблему в SAS с остаточным значением как случайный эффект (я считаю, что это случайный перехват r-стороны рыбой)

    proc glimmix data=one method=mmpl ;
    class fish;
    model increment =age growth_year age*growth_year;
    random residual / subject=fish ;
    run;

Вот тот же анализ с AR(1) ковариационной структурой.

   proc glimmix data=one method=mmpl ;
    class fish;
    model increment =age growth_year age*growth_year;
    random residual/ subject=fish type = ar(1) ;
    run;

Вот моя попытка в R воспроизвести первую модель, которая не работает.

    model = lmer(increment ~ age + growth_year+ age*growth_year 
    + (resid()|fish), data = SR_data)

Пожалуйста, помогите, используйте lmer или glmer (гамма вместо нормального распространения) или lme или любой другой пакет, о котором я не знаю.

1 ответ

Решение

lme4 Пакет не позволяет R-стороне модели, но nlme делает. Если вы хотите корреляции внутри рыбы без случайных эффектов рыбы (т.е. только с R-побочными эффектами, без каких-либо G-побочных эффектов), то я думаю, что вы хотите использовать glsВот пример использования Orthodont данные из nlme пакет:

library("nlme")
gls(distance~age*Sex, correlation=corAR1(form=~1|Subject), data=Orthodont)

Если вы хотите разрешить изменение базового значения / перехвата по группам (как на стороне G, так и на стороне R), то вы должны использовать:

lme(distance~age*Sex, random = ~1|Subject,
     correlation=corAR1(form=~1|Subject), data=Orthodont)

Если вы хотите вариации базовой линии, но не коррелированные остатки внутри субъекта (только для G-стороны):

lme(distance~age*Sex, random=~1|Subject, data=Orthodont)

или же

library(lme4)
lmer(distance~age*Sex + (1|Subject), data=Orthodont)
Другие вопросы по тегам