笔记说明
在datacamp网站上学习“Time Series with R ”track
“Forecasting Using R”课程 做的对应笔记。
学识有限,错误难免,还请不吝赐教。
学习的课程为“Forecasting Using R”,主要用forecast包。
课程参考教材Forecasting: Principles and Practice
课程中数据可在fpp2包得到
动态回归(Dynamic regression)
之前涉及过的时间序列模型只考虑了因变量自己的历史数据情况,并没有考虑其他可能对因变量有影响的变量。动态回归可以一定程度上弥补这一缺陷。
带有ARIMA误差项的动态回归模型:
- 模型有r个自变量:
- 在一般的线性回归模型中,我们假定为白噪声
- 在动态回归模型中,是一个ARIMA过程
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")
预测结果:
网友评论