如何分析纵向计数数据:在GLMM中考虑时间自相关?


16

您好统计大师和R编程向导,

我对将动物捕获建模为环境条件和一年中的一天感兴趣。作为另一项研究的一部分,我统计了三年中约160天的捕获次数。在这几天的每一天,我都会获得温度,降雨,风速,相对湿度等信息。由于是从相同的5个地块重复收集数据,因此我将其用作随机效应。

我的理解是,nlme可以轻松解决残差中的时间自相关,但不能处理lme4这样的非高斯链接函数(无法处理自相关吗?)。目前,我认为在log(count)的R中使用nlme包可能会起作用。所以我现在的解决方案是运行类似的命令:

m1 <- lme(lcount ~ AirT + I(AirT^2) + RainAmt24 + I(RainAmt24^2) + RHpct + windspeed + 
      sin(2*pi/360*DOY) + cos(2*pi/360*DOY), random = ~1|plot, correlation =
      corARMA(p = 1, q = 1, form = ~DOY|plot), data = Data)

DOY =一年中的一天。最终模型中可能会有更多的交互,但这是我的基本想法。我也可能尝试用类似的方法进一步对方差结构建模

weights = v1Pow

我不确定Poisson混合模型回归或其他方法是否有更好的方法?我刚刚在Kedem和Fokianos的“时间序列分析的回归模型”的第4章中找到了数学讨论。目前,这超出了我一点,尤其是在应用程序中(用R编码)。我在Zuur等人中也看到了MCMC解决方案。BUGS语言的混合效果模型书(Chp 23)(使用winBUGS或JAG)。那是我最好的选择吗?R中是否有一个简单的MCMC软件包可以解决这个问题?我不太了解GAMM或GEE技术,但是如果人们认为他们可以提供更好的见解,我将愿意探索这些可能性。我的主要目标是创建一个模型,以在给定环境条件下预测动物的捕获量。其次,我想解释一下动物对它们活动的反应。

任何关于最佳处理方式(从哲学上),如何在R或BUGS中进行编码的想法都将受到赞赏。我是R和BUGS(winBUGS)的新手,但正在学习。这也是我第一次尝试解决时间自相关。

谢谢,丹


1
我通常是GEE的忠实拥护者,但由于您只有5个集群(图),因此我在这里避免使用它。为了渐进地表现良好,GEE通常需要更多(大约40个左右)的簇。
StatsStudent

作为Mac所有者,与STAN相比,与WINBUGS相比,我度过了更轻松的时光。
eric_kernfeld'5

Answers:


3

日志转换您的响应是一个选项,尽管不理想。通常首选GLM框架。如果您不熟悉GLM,请先查看它们,然后再查看混合模型扩展。对于计数数据,泊松或负二项分布假设可能更合适。如果方差高于表示过度分散的平均值,则表示负二项式(https://en.wikipedia.org/wiki/过度分散)。参数估计的解释对于两者是等效的。

在我的经验中,R中存在多个选项,其中lme4最常被引用。

#glmer
library(lme4) 
glmer(count ~ AirT + I(AirT^2) + RainAmt24 + I(RainAmt24^2) + RHpct + windspeed + sin(2*pi/360*DOY) + cos(2*pi/360*DOY) + (1|plot), family=poisson, data = Data) 
# use glmer.nb with identical syntax but no family for negative binomial.

# glmmADMB with negative binomial
install.packages("glmmADMB", repos=c("http://glmmadmb.r-forge.r-project.org/repos", getOption("repos")),type="source") 
require(glmmADMB)
glmmadmb(count ~ AirT + I(AirT^2) + RainAmt24 + I(RainAmt24^2) + RHpct + windspeed + sin(2*pi/360*DOY) + cos(2*pi/360*DOY) + (1|plot), 
           family="nbinom", zeroInflation=FALSE, data=Data)

# glmmPQL, requires an estimate for theta which can be obtained from a 
# glm model in which the correlation structure is ignored.
library(MASS)
glmmPQL(count ~ AirT + I(AirT^2) + RainAmt24 + I(RainAmt24^2) + RHpct + windspeed + sin(2*pi/360*DOY) + cos(2*pi/360*DOY) , random = list(~1 | plot), data = Data,family = negative.binomial(theta = 4.22, link = log))

这些链接也可能有帮助:

https://udrive.oit.umass.edu/xythoswfs/webui/_xy-11096203_1-t_yOxYgf1s http://www.cell.com/trends/ecology-evolution/pdf/S0169-5347(09)00019-6.pdf

两者都是lme4的作者Ben Bolker的作品。

我没有测试过这些示例,但是它们应该使您对从哪里开始有所了解。如果您希望验证其实施,请提供数据。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.