具有时间数据的 GLM

机器算法验证 r 时间序列 广义线性模型 自相关
2022-04-19 02:13:32

这是我在这里的第一篇文章,寻求帮助。我对时间数据集的分析比较陌生。我有 R 和开发线性模型的经验,所以我想弄清楚我尝试的方法是否适合时间数据,或者我是否需要做一些不同的事情。

数据:跨越一年的每月金属浓度测量值,缺少几个月。由于缺少几个月,我很高兴我无法在 R 中建立真正的时间序列分析(对吗?)。我有几个要评估的预测变量(降雨量、温度等)。

方法:为每个预测变量和采样月份构建一个 GLM。我正在考虑在 R 的 nlme 包中使用 gls 函数,以便我可以检查自相关。

目标:确定解释时间水数据模式的因素

问题: - 即使数据可能存在季节性,我是否可以对时间数据使用 glm 方法?- 我如何测试误差项中的时间自相关?我知道我可以在 gls 中设置一些相关结构,但还没有弄清楚如何设置以及哪个最适合测试时间自相关。

示例数据集和方法如下。如果我的建议是否合适,我将不胜感激。如果没有,替代方法的建议将是一个很大的帮助。

dat<-data.frame(month=c("Jan","Jan","Jan","Feb","Feb","Feb","Jun","Jun","Jun"),
wat=c(0.4,0.5,0.6,1,1.5,1.8,0.4,0.3,0.8),
rain = c(100,110,120,200,210,220,300,310,330), 
temp = c(10,11,12,14,12,13,10,12,8))

m0<-gls(wat~month+rain+temp,correlation = corAR1(),data=dat)

谢谢!

1个回答

我还在这方面学到了很多东西,但由于你还没有答案,我的想法是......

您在允许它的各种函数(gls、lme 等)中指定的相关结构用于组内相关,所以我不相信 AR1 是正确的,因为多个测量值在同一时间范围内。

也许你想要(我创建了 dat2,它以你的变量为中心):

gls (wat ~ rain + temp, dat2, correlation=corCompSymm (form = ~1 | month))

在您的示例中,它给出了类似于 GEE 的答案:

library (geepack)
geeglm (wat ~ rain + temp, data = dat2, id = month, corstr = "exchangeable")

不幸的是,我已经阅读了几篇关于 GEE v GLMM 的论文,但仍然没有弄清楚 GEE 是否适用于这种情况。有几个线程,其中之一是:

广义估计方程和 GLMM 有什么区别?

希望有帮助。