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

当ARIMA模型包括其它时间序列作为输入变量时,被称为传递函数模型(transfer function model)、多变量时间序列模型(multivariate time series model)、ARIMAX模型或Box-Tiao模型。

由Kaizong Ye,Liao Bao撰写

传递函数模型是ARIMA模型的自然推广,Pankratz统称这种包含其它时间序列作为输入变量的ARIMA模型为动态回归。

用于预测的 Arima

加载相关包和数据

bata<-read.csv
colnames(bata)
bata<-bata\[order(as.Date,\]
bata<-bata\[order(as.Date,\]
bata$workda<-as.factor
head(bata)

将数据划分为训练集和测试集

#ARIMA 编程开始
## 75% 的样本量
smsize <- floor(0.95 * nrow)
print(smze)
## 设置种子可重现
set.seed(123)
traid <- sample
trn <- bata\[1:smize, \]
tet <- baata\[smp_size+1:nrow, \]
tet<-na.omit

创建预测矩阵

xreg <- cbind(as_workday=model.matrix, 
              Temp,
              Humid,
              Winds
              )

# 删除截距
xg <- xg\[,-1\]

# 重命名列
colnames<- c("Aldays","Tep","Humty","Wined")

#为测试数据创建相同的

xrg1 <- cbind
# 删除截距
xreg1 <- xre1\[,-1\]

# 重命名列
colnames <- c("Aays","Te","uiiy","Wnsed")

为 arima 预测的训练数据创建时间序列变量

Cont <- ts

推论:由于数据是每天的,频率为 365,开始日期为 2016-7-7

用季节性拟合 ARIMA 模型

Fo_aes<-forecast

计算测试数据集 MSE

mean((tt - Finlues)^2)

Python 用ARIMA、GARCH模型预测分析股票市场收益率时间序列

阅读文章


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

library(ggplot2)


随时关注您喜欢的主题


无季节性拟合 ARIMA

去季节性数据集和绘图

decata = decompos

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

moesea
Foecs<-forecast

去除季节性后绘制预测值

library(ggplot2)
plot(Co, series="Data") + 
autolayer+ 
autolayer

均方误差分量

mean((tount - Fis_des)^2)

通过采用滞后变量的输出以及滞后 1,2 的输入进行动态回归

x<-train\[order,\]

ti_ag <- x %>%
  mutate
x1<-test
testg <- x1 %>%
  mutate

使用动态滞后变量的 OLS 回归

mlm <- lm

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

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

Myal <-lm
summary(Myal )

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

prynm<-predict


# 动态回归的均方误差
mean((teunt - tPrecd)^2)

绘制预测与实际

plot
abline

可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds