时间序列预测模型之一文讲透 AR 模型

ARIMA模型(自回归积分滑动平均模型)是时间序列分析中的一种广泛应用的模型,这个模型在各个领域发挥着巨大的作用,如股票市场的价格预测、经济中GDP增长率预测、供应链中销售量和库存需求预测、气象中气温和降水量的预测等等。为了深入理解ARIMA模型,我们需要先深入理解构成它的三个基本构建模块:

  • AR(自回归)部分:使用时间序列自身的过去值来预测当前值。

  • I(积分)部分:通过对数据进行差分处理,使非平稳时间序列变为平稳序列。

  • MA(移动平均)部分:使用过去的预测误差来修正预测。

本文的目标就是帮助你从零开始学习 AR 模型,为深入掌握 ARIMA 模型打好坚实的基础。所以本文将从 AR 模型基本概念、AR 模型参数计算、AR 模型应用 三个章节来详细讲述 AR 模型。希望你通过阅读此文,能够获得对AR模型的深入理解,并能够在实际问题中正确使用这些模型。毋庸置疑,这将是你掌握ARIMA模型的重要第一步。

1、AR 模型基本概念

2、AR 模型参数计算

3、AR 模型应用

在实际实践中,我们不需要从零开始利用最小二乘法去计算 AR 模型的参数,那还是很花时间的,在社区中有很多比较成熟的封装包了,我们可以拿来开箱即用。在 Python 中,我们可以使用 statsmodels 库来估计 AR 模型。以下是一个使用 AR(1) 模型预测气温的小例子,如下所示,每行都有对应的注释说明,再结合上面的基础原理,相信大家一看就懂,所以就不再重复赘述了。其中 AutoReg 模型有以下参数,可根据实际场景需要进行合适设置:

  • lags:指定自回归模型中使用的滞后阶数,即多少个过去的时间点用于预测当前值,有助于捕捉数据中的时间依赖性。

  • trend:指定是否在模型中包括趋势成分。常见选项有 'n'(无趋势)、'c'(常数趋势)、't'(线性趋势)、'ct'(常数和线性趋势), 包含趋势项可以帮助模型更好地拟合具有趋势的时间序列数据。

  • seasonal:指定是否考虑季节性成分,如果数据具有明显的季节性模式,包含季节性成分可以提高模型的预测能力。

  • period:指定季节性周期长度,在考虑季节性成分时,明确周期长度可以提高模型的准确性。

import pandas as pd
import numpy as np
from statsmodels.tsa.api import AutoReg

# 创建数据框
data = pd.DataFrame({
    'temperature': [20, 22, 21, 23, 22, 21, 20]
})

# 分割数据,留出最后一天用于预测
train_data = data['temperature'][:-1]
test_data = data['temperature'][-1:]

# 创建并拟合 AR(1) 模型
model = AutoReg(train_data, lags=1, trend='c')
results = model.fit()

# 预测第7天的气温
forecast = results.predict(start=len(train_data), end=len(train_data), dynamic=False)
print("第7天气温预测为:", forecast[6])

# ---- 输出 -----
# 第7天气温预测为: 21.9615

4、总结

本文从 AR 模型基本概念、AR 模型参数计算、AR 模型应用 三个章节来详细讲述 AR 模型,帮助大家从零开始学习 AR 模型,为深入掌握 ARIMA 模型打好坚实的基础。接下去我还将会介绍 MA 模型,敬请关注吧!


如果你喜欢本文,欢迎点赞,并且关注我们的微信公众号:Python技术极客,我们会持续更新分享 Python 开发编程、数据分析、数据挖掘、AI 人工智能、网络爬虫等技术文章!让大家在Python 技术领域持续精进提升,成为更好的自己!

添加作者微信(coder_0101),拉你进入行业技术交流群,进行技术交流~

猜你喜欢

转载自blog.csdn.net/fengshi_fengshi/article/details/143030760