首页 > 其他分享 >拓端tecdat|R语言ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列

拓端tecdat|R语言ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列

时间:2022-11-09 13:41:51浏览次数:45  
标签:变量 ARIMAX 回归 ARIMA 序列 模型 季节性

当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 回归预测多元时间序列_数据_02


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 回归预测多元时间序列_数据_03

Fo_aes<-forecast

拓端tecdat|R语言ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列_r语言_04

计算测试数据集 MSE

mean((tt - Finlues)^2)

拓端tecdat|R语言ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列_数据_05

在去除季节性之前绘制预测值

  1.  library(ggplot2)
  2.   

拓端tecdat|R语言ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列_r语言_06

无季节性拟合 ARIMA

去除季节性数据集和绘图

decata = decompos

拓端tecdat|R语言ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列_r语言_07

 ### 查找去季节数据的 ARIMAX 模型

moesea

拓端tecdat|R语言ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列_数据_08

Foecs<-forecast

去除季节性后绘制预测值

  1.  library(ggplot2)
  2.  plot(Co, series="Data") +
  3.  autolayer+
  4.  autolayer

拓端tecdat|R语言ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列_数据_09

均方误差分量

mean((tount - Fis_des)^2)

拓端tecdat|R语言ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列_r语言_10

通过采用滞后变量的输出以及滞后 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 回归预测多元时间序列_时间序列_11

推论:仅保留 P 值 <0.05 的重要变量并删除其他变量

仅保留重要变量的情况下重新创建 OLS 回归

  1.  Myal <-lm
  2.  summary(Myal )

拓端tecdat|R语言ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列_时间序列_12

在测试数据上预测相同以计算 MSE

1.  prynm<-predict
2.
3.
4. # 动态回归的均方误差
5. mean((teunt - tPrecd)^2)

拓端tecdat|R语言ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列_时间序列_13

绘制预测与实际

  1.  plot
  2.  abline

拓端tecdat|R语言ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列_时间序列_14


拓端tecdat|R语言ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列_数据_15



标签:变量,ARIMAX,回归,ARIMA,序列,模型,季节性
From: https://blog.51cto.com/u_14293657/5835910

相关文章