我想观察线性回归系数随时间的演变。更准确地说,让我们有2年的时间框架,其中线性回归将始终使用1年范围内的数据集。在第一次回归之后,我们进一步移动一周(即我们添加新的一周,但也从开头减去一周)并且只要我们到达最终日期再次进行回归:总共将有52次回归。
我的问题是数据集中有一些假期,我们不能简单地添加7天,因为很容易建议。我希望有一些包装器函数可以为不同包中的许多其他函数提供上述功能,例如来自forecast.lm()
包的forecast
或任何人可以想到的函数:每种情况下的目标都是是逐周找到线性回归参数的演变。
答案 0 :(得分:1)
如果您以明确的方式编辑/细分问题,我想您可能会得到更多答案。 (1)我如何找到假期(不清楚你对假期的定义是什么)? (2)如何相应地切片数据集? (3)如何在每个块中运行线性回归?
(1)找到假期:在这里无法真正帮助,因为我不知道它们是如何在您的数据集中定义/编码的。 library(sos); findFn("holiday")
找到了一些选项
(2)根据假日/周末间隔对数据集进行分区。下面的示例假设假期编码为1,非假日编码为零。
(3)对每个块运行线性回归并提取系数。
d <- data.frame(holiday=c(0,0,0,1,1,0,0,0,0,1,0,0,0,0),
x=runif(14),y=runif(14))
per <- cumsum(c(1,diff(d$holiday)==-1)) ## maybe use rle() instead
dd <- with(d,split(subset(d,!holiday),per[!holiday]))
t(sapply(lapply(dd,lm,formula=y~x),coef))