glmmTMB 中的时间自回归:为啥它需要时间作为一个因素?

Posted

技术标签:

【中文标题】glmmTMB 中的时间自回归:为啥它需要时间作为一个因素?【英文标题】:Temporal autoregression in glmmTMB: why does it require time as a factor?glmmTMB 中的时间自回归:为什么它需要时间作为一个因素? 【发布时间】:2021-07-09 18:52:11 【问题描述】:

关于自相关,如果必须将时间序列作为因素提供给ar1()glmmTMB 如何判断时间步长之间的距离?

glmmTMB 中,ar1 要求时间步长均匀分布并编码为因子(请参阅此vignette)。给定一个数字时间序列time.steps,是否足以将其重新编码为as.factor(time.steps) 以使模型正确运行?如果必须提供时间序列作为一个因素,glmmTMB 如何判断时间点之间的距离?

【问题讨论】:

这是一个相当大的问题......理想情况下,每个 Stack Overflow 帖子都应该包含 一个 问题......你能把它分成多个更集中的问题吗?你读过cran.r-project.org/web/packages/glmmTMB/vignettes/… 吗?如果您有间隔不均匀的样本,您应该使用ou()协方差结构而不是ar1 @BenBolker 我确实看过小插图,但显然不够好。我忽略了需要坐标的方法,认为它们是特定于空间自相关的,但当然时间也是一个坐标系。我的失误。我提出了这个问题,具体说明了为什么 ar1() 需要时间作为一个因素。关于替代 ar(1) 语法形式的部分现在在这里:stats.stackexchange.com/questions/519799/… 相关性:***.com/questions/52918655/… 【参考方案1】:

将其重新编码为 as.factor(time.steps) 是否足以让模型正确运行?

是的。

如果必须提供时间序列作为一个因素,glmmTMB 如何判断时间点之间的距离?

假设因子的连续水平相隔一个时间步长(ar1() 协方差结构不允许不均匀间隔的时间步长:为此,您需要 ou() 协方差结构,您需要使用numFactor() 对时间值进行编码)。

更详细一点:AR1 结构随机效应的相关结构是

1     rho   rho^2  rho^3 ...
rho   1     rho    rho^2 ...
rho^2 rho   1      rho   ...
rho^3 rho^2 rho    1     ...
...   ...   ...    ...   ...

其中行/列位置对应于因子的时间步长/级别。所以除了时间步的order,我们真的不需要知道更多的东西,它是由因子的水平顺序指定的。

【讨论】:

以上是关于glmmTMB 中的时间自回归:为啥它需要时间作为一个因素?的主要内容,如果未能解决你的问题,请参考以下文章

为啥逻辑回归中更高的学习率会产生 NaN 成本?

为啥R中的回归会删除因子变量的索引1? [复制]

在 sklearn 逻辑回归中使用分类数据作为特征

为啥岭回归和套索回归分类器需要 random_state? [关闭]

Keras 自定义损失(chi2)线性回归

简单来说,为啥二元结果回归模型没有 VIF?