簡體   English   中英

R 中滯后時間序列數據的回歸

[英]Regression with lagged time time series data in R

我有兩個時間序列數據A和B。我想在R中執行以下線性回歸

A ~ 滯后(A, 1:2) + 滯后(B, 1:2)

你能幫我 R 代碼嗎?

使用 dyn 和內置的 BOD 數據框(包含兩列,時間和需求),我們可以指定指示的滯后。

請注意 dplyr package clobbers 滯后所以以防萬一它被加載我們恢復基本滯后。 注意滯后所需的標志。

使用 dyn$lm 和 zoo(BOD) 將導致自動 alignment。

如果 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 和使用的 model.frame 和 model.matrix。

> 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM