我有一个数据集,其中包含来自数千个人的数据,其中测量了过去 9 年每年测量的参数 X。
基本上它们在数据帧 df 中
id,year,x,feature
A,2016,376,female
A,2015,391,female
A,2014,376,female
A,2013,373,female
A,2012,347,female
A,2011,330,female
B,2016,398,male
B,2015,391,male
B,2014,410,male
B,2013,393,male
B,2012,408,male
B,2011,288,male
C,2016,2464,male
C,2015,2465,male
C,2014,2500,male
C,2013,2215,male
C,2012,2228,male
C,2011,1839,male
等等。
我想在这些时间序列上估计不同的模型
像 predict(x(t)) = f(x(t-1),x(t-2),...,x(t-n),feature, id(作为随机因子))
我可以看到如何使用 ts 进行自回归建模,但它会计算大量的单个模型,我想要基于时间历史和特征的全局预测(及其固有问题)。
lm 不是一个好主意,因为数据是高度自相关的。有什么好主意吗?
最佳答案
有许多可能的模型,但这里有一个具有 AR1 结构的混合效应模型,您可以尝试一下。
library(nlme)
fm <- lme(x ~ year + feature, random = ~ year | id, DF,
correlation = corAR1(form = ~ year | id))
summary(fm)
这是数据图:
library(ggplot2)
ggplot(DF, aes(year, x, group = id, col = feature)) + geom_line() + geom_point()
注:我们假设了这个输入数据:
Lines <- "
id,year,x,feature
A,2016,376,female
A,2015,391,female
A,2014,376,female
A,2013,373,female
A,2012,347,female
A,2011,330,female
B,2016,398,male
B,2015,391,male
B,2014,410,male
B,2013,393,male
B,2012,408,male
B,2011,288,male
C,2016,2464,male
C,2015,2465,male
C,2014,2500,male
C,2013,2215,male
C,2012,2228,male
C,2011,1839,male"
library(zoo)
DF <- read.csv(text = Lines, strip.white = TRUE)
关于r - 带协变量的时间序列分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46389836/