我有一个包含 2 列的时间序列数据集:x 是“每小时”连续温度数据,y 是几周内定期采样的响应数据(每天早上 5 点、下午 2 点、晚上 8 点定期采样)。
我想做两种滞后方法来分析数据
1) 绘制我所有的 y 数据(常数)与越来越滞后的 x 数据(以 1 小时的步长将 x 数据移动 0-24 小时),即下午 6 点的 x 和下午 6 点的 y;x 下午 5 点 vs y 下午 6 点 ...... x(前一天下午 5 点) vs y(下午 6 点)
2) 与 1) 相同,但累积偏移,即 0:24 的“时间倒退”累积滞后窗口,x 数据的步长为 1,并针对 y 数据进行测试,即下午 6 点的 x 与下午 6 点的 y;x(平均下午 5 点和 6 点)vs y 下午 6 点...... x(平均下午 6 点 - 前一天下午 5 点)vs y(下午 6 点)
我想为每个滞后场景(0 - 24)绘制“y”与“移位 x”的线性模型(lm),并制作一个表格,其中包含滞后数列、lm 的 p 值;和调整。R2 of lm) 所以我可以看到“x”中的哪个滞后和累积平均滞后最能解释 y 数据。
本质上它与“cummean”或“rollapply”函数相同,但在向后方向工作,但我在 R 中找不到任何这样做的东西。翻转 X 数据不起作用,因为需要维护数据的顺序,因为我需要在 x 中延迟几个 y
我猜想它需要一个“for”循环来遍历每个滞后的所有数据,其中“i”是滞后
0 滞后的单次运行将是这样的:
#Creating dummy data
x<- zoo(c(10,10.5,10.5,11,11.5,12,12.5,12,12,12.5,13,12.5,12,12,11.5,10.5), as.Date(1:16))
y<- zoo(c(rep("NA",3),40,rep("NA",3),45,rep("NA",3),50,rep("NA",3),40), as.Date(1:16))
z<-merge(x, y, all = FALSE)
z
reslt<-lm(z$y~z$x)
a<-summary(reslt)$coefficients[2,4]
b<-summary(reslt)$adj.r.squared
ResltTable<-c(a,b)
colnames(ResltTable)<-c("p-value","Adj. R^2")
谢谢 !