最近我们被客户要求撰写关于ARIMA的研究报告,包括一些图形和统计输出。时间序列分析是一种数据分析,用于检查数据在一段时间内的行为。有许多技术可用于预测绘图图上的时间序列对象,但ARIMA 模型是其中使用最广泛的方法。
时间序列预测
时间序列预测是借助对具有历史数据的数据集使用的一些统计工具和方法来预测未来值的过程。时间序列预测的一些应用是:
- 预测价格
- 天气预报
- 预测产品的销量
ARIMA 模型
ARIMA 代表自回归综合移动平均线,由三个参数指定:(p, d, q)。
- AR( p ) 自回归:一种回归模型,利用当前观测值与上一时期观测值之间的依赖关系。自回归 ( AR(p) ) 分量是指在时间序列的回归方程中使用过去值.
- I( d ) 差分:使用观察差异(从前一个时间步的观察中减去观察)以使时间序列平稳。
- MA( q ) 移动平均:一种模型,它使用观测值与应用于滞后观测值的移动平均模型的残差之间的依赖关系。移动平均分量将模型的误差描述为先前误差项的组合。阶数q表示要包含在模型中的项数。
ARIMA 模型的类型
- ARIMA:非季节性自回归综合移动平均线
- SARIMA:季节性 ARIMA
- SARIMAX:具有外生变量的季节性 ARIMA
R中ARIMA模型的实现
在 R 编程中,arima()
函数用于执行此技术。ARIMA 模型用于拟合单变量数据。auto.arima()
函数通过搜索多个模型返回最佳 ARIMA 模型。
语法:
auto.arima(x)参数:
x:表示单变量时间序列对象要了解更多可选参数,请在控制台中使用以下命令:help(“auto.arima”)
示例:在此示例中,让我们使用R 包中存在的BJsales 数据集来预测接下来的 10 个销售值。这个数据集已经是一个时间序列对象
#R程序来说明
# 时间序列分析
# 在 R 中使用 ARIMA 模型
# 安装预测库()
install.packages("forecast")
# 预测所需的库library(forecast)
# 绘制图表而不进行预测
plot(BJsales, main = "Graph without forecasting",
col.main = "darkgreen")
# 使用 arima 模型拟合模型
fit <- auto.arima(BJsales)
# 接下来 10 个预测值
forecastedValues <- forecast(fit, 10)
# 输出预测值
print(forecastedValues)
plot(forecastedValues, main = "Graph with forecasting",
col.main = "darkgreen")
说明:
通过执行上述代码产生以下输出。forecast()
使用基于 BJsales 数据集的 ARIMA 模型的函数预测 10 个下一个值。
第一张图显示了没有预测的 BJsales 的视觉效果,第二张图显示了具有预测值的 BJsales 的视觉效果。