5

我试图解释 GLMM 中的自相关。我的响应变量是布尔值,它表示一组蜂巢的生命周期中是否存在 en 事件。我试图用一组描述每个巢的状态的数值变量来预测这种事件的概率。因此,我在具有嵌套作为随机效应的广义模型中使用了二项分布(使用 glmer())。然而,这些事件是自相关的,所以我的残差中有一个非常可怕的模式。如果我在没有随机效应的错误中使用高斯分布,我会使用带有 gls() 的相关结构来估计一些相关参数,但这在这种情况下不起作用。我一直在寻找将这种自相关包含在 GLMM 中的方法,但我似乎没有做对。我发现可以使用函数 ts() 和 diff() 转换数据集,以允许模型包含响应的先前值作为预测变量。这适用于线性模型 lm(),使残差更好。

basket.1<-subset(basket,select=c(Nest,day,number_cells,provitioning_cells,closed_cells,
                             reopened_cells,eclosed_cells,pollen))
basket.ts<-ts(as.matrix.data.frame(basket.1),start=1,frequency=9)
m.basket.ts1<-lm(pollen~provitioning_cells+reopened_cells+closed_cells
            +eclosed_cells+day,data=diff(basket.ts,differences=2))`

但是, lmer() 和 glm() 都不接受这些函数的输出。问题似乎是转换使某些值为负数,而 glm() 不接受二项式模型的负值(这是有道理的)。我已经读到可以考虑自相关 glm(),这已经是一种改进,但我无法让它发挥作用。我还读到 glmmPQL() 可以包含相关结构。该模型运行,但它并没有改善我的残差模式。它们似乎仍然是自相关的。

m.basket.glmm1<-glmmPQL(pollen~provitioning_cells+reopened_cells+closed_cells
            +eclosed_cells+day,random=~1|Nest,family=binomial,correlation=corAR1(form=~day),
            data=basket)

我尝试了不同的相关结构,但它们似乎都不起作用。

最后,我尝试了 dyn 包,它应该允许回归函数处理时间序列。但是再一次,该函数不会使用转换产生的值运行。

m.bas.glm.dyn1<-dyn$glm(pollen~provitioning_cells+reopened_cells+closed_cells
                    +eclosed_cells+day,family=poisson,data = diff(basket.ts,differences=3))

总而言之,我需要运行具有时间相关性的 GLMM,但我找不到这样做的方法。我将非常感谢一些帮助。

干杯!!!

4

1 回答 1

1

你能给我们一个可重复的例子吗?原则上,“手动”滞后值不应该太难,例如

basket.1 <- subset(basket,select=c(Nest,day,number_cells,
                             provitioning_cells,closed_cells,
                             reopened_cells,eclosed_cells,pollen))
n <- nrow(basket.1)
basket.2 <- transform(basket.1,pollen.lag1=c(pollen[2:n],NA),
                      pollen.lag2=c(pollen[3:n],rep(NA,2)))

library("lme4")
m.basket.glmm1 <- glmer(pollen~provitioning_cells+
                   reopened_cells+ closed_cells+
                    eclosed_cells+day+pollen.lag1+pollen.lag2+
                    (1|Nest),
                   family=binomial,data=basket.2)

根据您的数据集的大小,如果day是数字而不是您可能想要的因素(day|Nest)而不是(1|Nest)...

于 2015-06-09T17:51:14.273 回答