Ваша модель:
ans1 <- mmer2(Yield~Env,
random= ~ Name + Env:Name,
rcov= ~ units,
data=example, silent = TRUE)
эквивалентна:
ans1.lmer <- lmer(Yield~Env + (1|Name) + (1|Env:Name),
data=example)
с использованием lme4.Обратите внимание, что lme4 использует нотацию (x | y), чтобы указать, например, существуют ли, например, различные перехваты (термин x) для каждого уровня второго члена (термин y), который является моделью случайной регрессии.Если вы укажете:
ans2.lmer <- lmer(Yield~Env + (Env|Name),
data=example)
, вы получите три компонента дисперсии, по одному для каждого из 3 уровней в термине Env.Эквивалентом в sommer является не случайная регрессия, а гетерогенная модель дисперсии, использующая функциональность diag ():
ans2 <- mmer2(Yield~Env,
random= ~ diag(Env):Name,
rcov= ~ units,
data=example, silent = TRUE)
## or in sommer >=3.7
ans2 <- mmer(Yield~Env,
random= ~ vs(ds(Env),Name),
rcov= ~ units,
data=example, silent = TRUE)
Первые две модели выше эквивалентны, поскольку обе модели предполагают, что нет никаких различных перехватов, тогда как последние двемодели решают одну и ту же проблему, но с двумя разными подходами, которые не совсем одинаковы;модель случайной регрессии и гетерогенной дисперсии.
Короче говоря, в sommer пока не реализована случайная регрессия, поэтому вы не можете использовать случайные перехваты в sommer, как в lme4, а вместо этого использовать гетерогенные модели дисперсии.
Приветствия,