R中具有滞后时间序列数据的回归 [英] Regression with lagged time time series data in R
本文介绍了R中具有滞后时间序列数据的回归的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个时间序列数据A和B。我想在R中执行以下线性回归
A~LAGS(A,1:2)+LAGS(B,1:2)
您能帮我弄一下R码吗?
推荐答案
使用Dyn和内置的BOD数据框(包含时间和需求两列),我们可以指定指示的滞后。
请注意,dplyr包存取器延迟,因此仅在加载它的情况下恢复基本延迟。请注意LAG所需的符号。使用dyn$lm和Zoo(Bod)将导致自动对齐。
如果BOD不只包括数字数据,则有必要删除所有未首先使用的列;但是,这里的BOD完全是数字。
library(dyn) # also loads zoo
lag <- stats::lag
fm <- dyn$lm(demand ~ lag(demand, -(1:2)) + lag(Time, -(1:2)), zoo(BOD))
fm
给予:
Call:
lm(formula = dyn(demand ~ lag(demand, -(1:2)) + lag(Time, -(1:2))),
data = zoo(BOD))
Coefficients:
(Intercept) lag(demand, -(1:2))1 lag(demand, -(1:2))2
23.5410 -0.5126 -0.5071
lag(Time, -(1:2))1 lag(Time, -(1:2))2
2.4737 NA
这显示了BOD和使用的模型.框架和模型.矩阵。
> BOD
Time demand
1 1 8.3
2 2 10.3
3 3 19.0
4 4 16.0
5 5 15.6
6 7 19.8
> model.frame(fm)
demand lag(demand, -(1:2)).1 lag(demand, -(1:2)).2 lag(Time, -(1:2)).1 lag(Time, -(1:2)).2
3 19.0 10.3 8.3 2 1
4 16.0 19.0 10.3 3 2
5 15.6 16.0 19.0 4 3
6 19.8 15.6 16.0 5 4
> model.matrix(fm)
(Intercept) lag(demand, -(1:2))1 lag(demand, -(1:2))2 lag(Time, -(1:2))1 lag(Time, -(1:2))2
3 1 10.3 8.3 2 1
4 1 19.0 10.3 3 2
5 1 16.0 19.0 4 3
6 1 15.6 16.0 5 4
attr(,"assign")
[1] 0 1 1 2 2
这篇关于R中具有滞后时间序列数据的回归的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文