时间序列笔记-动态回归

2019-08-21  本文已影响0人  新云旧雨

笔记说明

在datacamp网站上学习“Time Series with R ”track
“Forecasting Using R”课程 做的对应笔记。
学识有限,错误难免,还请不吝赐教。
学习的课程为“Forecasting Using R”,主要用forecast包。
课程参考教材Forecasting: Principles and Practice
课程中数据可在fpp2包得到

动态回归(Dynamic regression)

之前涉及过的时间序列模型只考虑了因变量自己的历史数据情况,并没有考虑其他可能对因变量有影响的变量。动态回归可以一定程度上弥补这一缺陷。
带有ARIMA误差项的动态回归模型:
y_t=β_0+β_1x_{1,t}+...+β_rx_{r,t}+e_t

R实现

可以用forecast包的auto.arima(y,xreg=)实现误差项为ARIMA过程的动态回归模型。
与之前ARIMA不同的是需要在auto.arima()中增加xreg选项指定自变量数据。
实例数据advert中包含某公司24个月的销售额和广告支出

# Time plot of both variables
autoplot(advert, facets = TRUE)

可以看出来销售额和广告支出之间有较强的相关性
建立动态回归模型:

# Fit ARIMA model
fit <- auto.arima(advert[, "sales"], xreg = advert[, "advert"], stationary = TRUE)

summary(fit)

checkresiduals(fit)

可以看出auto.arima()将误差项拟合为ARIMA(1,0,0)过程。ar1的回归系数的可解释性较差,但xreg项的回归系数的可解释性比较强,它的意义和线性回归中自变量的回归系数意义类似。
残差分析结果:

forecast()进行模型预测时,也需要添加xreg选项,提供想要预测的时间点对应的自变量的值

# Forecast fit as fc
fc <- forecast(fit, xreg = rep(10,6))

# Plot fc with x and y labels
autoplot(fc) + xlab("Month") + ylab("Sales")

预测结果:


上一篇 下一篇

猜你喜欢

热点阅读