Как подходить к выполнению анализа post-ho c на обобщенной модели смешанных эффектов с 3 фиксированными эффектами - PullRequest
0 голосов
/ 11 февраля 2020

В настоящее время я работаю над обобщенной моделью смешанных эффектов с 3 фиксированными эффектами и одним случайным эффектом. Так же, как фон, случайный эффект - это количество пруда (мезокосм), переменная ответа - это количество хлорофилла-а (непрерывные данные), и мои фиксированные эффекты - это две обработки: 1) обогащение питательными веществами и 2) WLF, оба из которых являются двоичные данные типа да / нет. третий фиксированный эффект - это глубина (0,1 метра и 0,8 метра). В любом случае, я создал блеск, в котором все три фиксированных эффекта и случайный эффект имеют полное взаимодействие следующим образом:

GHQ<-glmer(CHa.t ~ Nutrients * WLF * depth * (1|mesocosm), family = gaussian(link = "log"), data = microalgae, nAGQ = 100)

Краткое описание этой модели показывает, что существует значительная взаимосвязь между обогащением питательными веществами, wlf и глубиной на хлорофилле-а.

Мой вопрос заключается в том, как выполнить тест post-ho c, когда есть взаимодействия между тремя фиксированными условиями? Я попытался glht и ls_means, но оба привели к ошибке.

вот соответствующие данные (извините, мне пришлось скопировать все строки, чтобы это работало):

структура (список (мезокосм = структура (c (2 л, 2 л, 10 л, 10 л, 15 л, 15 л, 18 л, 18 л, 22 л, 22 л, 23 л, 23 л, 24 л, 24 л, 5 л, 5 л, 6 л , 6л, 8л, 8л, 9л, 9л, 14л, 14л, 25л, 25л, 26л, 26л, 1л, 1л, 3л, 3л, 7л, 7л, 11л, 11л, 13л, 13л, 16л, 16л, 20л, 20л , 4L, 4L, 12L, 12L, 17L, 17L, 19L, 19L, 21L, 21L, 27L, 27L, 28L, 28L), .Label = c ("1", "2", "3", " 4 "," 5 "," 6 "," 7 "," 8 "," 9 "," 10 "," 11 "," 12 "," 13 "," 14 "," 15 "," 16 " , «17», «18», «19», «20», «21», «22», «23», «24», «25», «26», «27», «28»), класс = "фактор"), питательные вещества = структура (c (1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L , 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L , 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c ("0", "1"), класс = "фактор") , WLF = структура (* 103 7 * (1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L , 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L , 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c ("0", "1"), class = "factor"), глубина = c (0,1, 0,8, 0,1 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8 , 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1, 0,8, 0,1 , 0,8, 0,1, 0,8), Chl.a = c (3,301666667, 4,026666667, 2,54, 3,936666667, 0,933333333, 1,67, 1,841666667, 1,968333333, 1,493333333, 3,321666667, 2,78, 2,078333333, 3,633333333, 2,621666667, 2,641666667, 4,991666667, 1,521666667, 2.118333333, 3.061666667, 6.083333333, 2.343333333, 4.406666667, 2.243333333, 3.03, 5.155, 3.723333333, 2.43, 2.06, 8.943333333, 5.346666667, 6.161666667, 4.730833333, 7.336883333, 7.336883333, 7.336883333, 7.336883333, 7.336883333, 7.336883333, 7.336883333, 7.336833333, 7.336663333, 3.336833333, 7.336663333, 3.336333333, 7.336833333, 7.336663333, 2.38333333, 3.061666667, 6.083333333, 2.343333333, 2.403333333, 4.406666663, 2.243333333 333, 9,978333333, 7,951666667, 10,09333333, 7,516666667, 10,62666667, 3,043333333, 4,621666667, 7,798333333, 2,79, 7,926666667, 4,403333333, 3,85, 5,581666667, 8,18, 2,66, 5,66, 5,666, 5,666, 5,666, 5,666, 5,666, 5,666, 5,666, 5,666, 5,666, 5,666, 5,666, 5,666, 5,666, 5,666, 5,666, 5,666 * (NA, 56L), class = "data.frame")

вот пакеты, которые я использовал:

if(!require(psych)){install.packages("car")}
if(!require(MASS)){install.packages("MASS")}
if(!require(rcompanion)){install.packages("rcompanion")}
if(!require(lme4)){install.packages("lme4")
if(!require(mlmRev)){install.packages("mlmRev")}
if(!require(ggplot2)){install.packages("ggplot2")}
if(!require(nlme)){install.packages("nlme")}
if(!require(agricolae)){install.packages("agricolae")}
if(!require(multcomp)){install.packages("multcomp")}

вот кусок кода, который я использовал для модель:

CHa=microalgae$Chl.a
library("mlmRev")
GHQ<-glmer(CHa ~ Nutrients * WLF * depth * (1|mesocosm), family = gaussian(link = "log"), data = microalgae, nAGQ = 100)
summary(GHQ)
overdisp_fun(GHQ)
plot(GHQ)
qqnorm(resid(GHQ))
qqline(resid(GHQ))

вот мой код для "ls_means" и полученная ошибка:

library(lmerTest)
ls_means(GHQ, pairwise~ depth*Nutrients*WLF, adjust="tukey")

Ошибка в UseMethod ("ls_means"): нет применимого метода для 'ls_means' применяется к объекту класса "c ('glmerMod', 'merMod')"

Теперь я действительно понимаю, что на самом деле не знаю, как использовать glht.

...