天天看點

拓端tecdat|R語言ARIMA、ARIMAX、 動态回歸和OLS 回歸預測多元時間序列

當ARIMA模型包括其它​​時間序列​​作為輸入變量時,被稱為傳遞函數模型(transfer function model)、多變量時間序列模型(multivariate time series model)、ARIMAX模型或Box-Tiao模型。傳遞函數模型是ARIMA模型的自然推廣,Pankratz統稱這種包含其它時間序列作為輸入變量的ARIMA模型為動态回歸。

用于預測的 Arima

加載相關包和資料

1.  bata<-read.csv
2.  colnames(bata)
3.  bata<-bata[order(as.Date,]
4.  bata<-bata[order(as.Date,]
5.  bata$workda<-as.factor
6.  head(bata)      
拓端tecdat|R語言ARIMA、ARIMAX、 動态回歸和OLS 回歸預測多元時間序列

将資料劃分為訓練集和測試集

1.  #ARIMA 程式設計開始
2.  ## 75% 的樣本量
3.  smsize <- floor(0.95 * nrow)
4.  print(smze)      
拓端tecdat|R語言ARIMA、ARIMAX、 動态回歸和OLS 回歸預測多元時間序列
1.  ## 設定種子可重制
2.  set.seed(123)
3.  traid <- sample
4.  trn <- bata[1:smize, ]
5.  tet <- baata[smp_size+1:nrow, ]
6.  tet<-na.omit      

建立預測矩陣

1.  xreg <- cbind(as_workday=model.matrix, 
2.                Temp,
3.                Humid,
4.                Winds
5.                )
6.   
7.  # 删除截距
8.  xg <- xg[,-1]
9.   
10.  # 重命名列
11.  colnames<- c("Aldays","Tep","Humty","Wined")
12.   
13.  #為測試資料建立相同的
14.   
15.  xrg1 <- cbind
16.  # 删除截距
17.  xreg1 <- xre1[,-1]
18.   
19.  # 重命名列
20.  colnames <- c("Aays","Te","uiiy","Wnsed")      

為 arima 預測的訓練資料建立時間序列變量

Cont <- ts      

推論:由于資料是每天的,頻率為 365,開始日期為 2016-7-7

用季節性拟合 ARIMA 模型

拓端tecdat|R語言ARIMA、ARIMAX、 動态回歸和OLS 回歸預測多元時間序列
Fo_aes<-forecast      
拓端tecdat|R語言ARIMA、ARIMAX、 動态回歸和OLS 回歸預測多元時間序列

計算測試資料集 MSE

mean((tt - Finlues)^2)      
拓端tecdat|R語言ARIMA、ARIMAX、 動态回歸和OLS 回歸預測多元時間序列

在去除季節性之前繪制預測值

  1.  library(ggplot2)
拓端tecdat|R語言ARIMA、ARIMAX、 動态回歸和OLS 回歸預測多元時間序列

無季節性拟合 ARIMA

去除季節性資料集和繪圖

decata = decompos      
拓端tecdat|R語言ARIMA、ARIMAX、 動态回歸和OLS 回歸預測多元時間序列

 ### 查找去季節資料的 ARIMAX 模型

moesea      
拓端tecdat|R語言ARIMA、ARIMAX、 動态回歸和OLS 回歸預測多元時間序列
Foecs<-forecast      

去除季節性後繪制預測值

  1.  library(ggplot2)
  2.  plot(Co, series="Data") +
  3.  autolayer+
  4.  autolayer
拓端tecdat|R語言ARIMA、ARIMAX、 動态回歸和OLS 回歸預測多元時間序列

均方誤差分量

mean((tount - Fis_des)^2)      
拓端tecdat|R語言ARIMA、ARIMAX、 動态回歸和OLS 回歸預測多元時間序列

通過采用滞後變量的輸出以及滞後 1,2 的輸入進行動态回歸

1.  x<-train[order,]
2.   
3.  ti_ag <- x %>%
4.  mutate
5.  x1<-test
6.  testg <- x1 %>%
7.  mutate      

使用動态滞後變量的 OLS 回歸

mlm <- lm      
拓端tecdat|R語言ARIMA、ARIMAX、 動态回歸和OLS 回歸預測多元時間序列

推論:僅保留 P 值 <0.05 的重要變量并删除其他變量

僅保留重要變量的情況下重新建立 OLS 回歸

  1.  Myal <-lm
  2.  summary(Myal )
拓端tecdat|R語言ARIMA、ARIMAX、 動态回歸和OLS 回歸預測多元時間序列

在測試資料上預測相同以計算 MSE

1.  prynm<-predict
2.   
3.   
4.  # 動态回歸的均方誤差
5.  mean((teunt - tPrecd)^2)      
拓端tecdat|R語言ARIMA、ARIMAX、 動态回歸和OLS 回歸預測多元時間序列

繪制預測與實際

  1.  plot
  2.  abline
拓端tecdat|R語言ARIMA、ARIMAX、 動态回歸和OLS 回歸預測多元時間序列
拓端tecdat|R語言ARIMA、ARIMAX、 動态回歸和OLS 回歸預測多元時間序列

繼續閱讀