时间序列预测系列之AR模型

1.模型介绍及适用性

1.1 模型介绍及原理

AR(Autoregression)模型:自回归模型,是一种线性模型 ,AR 模型的基本思想是当前时间点的观测值与之前时间点的观测值之间存在一定的自相关关系。AR 模型通常用参数 p 来表示自回归的阶数,表示当前时间点的观测值与前 p 个时间点的观测值相关。

A R ( p ) AR(p) AR(p)模型的数学表达式如下:
X t = c + ϕ 1 X t − 1 + ϕ 2 X t − 2 + … + ϕ p X t − p + ε t X_t=c+ϕ1X_{t−1}+ϕ2X_{t−2}+…+ϕpX_{t−p}+ε_t Xt=c+ϕ1Xt1+ϕ2Xt2++ϕpXtp+εt
其中:

  • Xt 是时间点 t 的观测值。
  • c 是常数项。
  • ϕ1,ϕ2,…,ϕp 是模型的参数,表示各自回归阶数的系数。
  • Xt−1,Xt−2,…,Xt−p 是时间点 t 之前的观测值。
  • εt 是白噪声误差项,表示时间点 t 的随机噪声

1.2 模型步骤

AR 模型的拟合和预测通常涉及以下步骤:

  1. 数据准备:收集和整理时间序列数据,确保数据满足平稳性(stationarity)的要求。
  2. 模型阶数 p 的选择:通过观察自相关函数(ACF)和偏自相关函数(PACF)的图来选择合适的 p 值。
  3. 参数估计:使用最大似然估计或其他估计方法来估计模型中的参数 ϕ1,ϕ2,…,ϕp 和可能的常数项 c。
  4. 模型拟合:使用估计的参数拟合 AR 模型。
  5. 模型诊断:检查模型的残差序列是否符合白噪声假设,以确保模型的质量。

2.实现案例

import numpy as np

# 生成模拟的时间序列数据
np.random.seed(0)
n = 100
t = np.arange(n)
epsilon = np.random.normal(0, 1, n)
X = 0.5 * t + epsilon

# 绘制时间序列图
plt.figure(figsize=(12, 6))
plt.plot(t, X, label='Time Series Data')
plt.xlabel('Time')
plt.ylabel('Value')
plt.legend()
plt.title('Simulated Time Series Data')
plt.show()

在这里插入图片描述

import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt

# Create a DataFrame with a time index
data = pd.DataFrame({'value': X}, index=pd.date_range(start='2023-01-01', periods=n, freq='D'))

# Fit an autoregressive model using AutoReg
lags = 2  # Number of lags for autoregressive model (AR(2) in this case)
model = sm.tsa.AutoReg(data['value'], lags=lags)
results = model.fit()

# Print model summary
print(results.summary())

# Plot the original data and the predicted values
plt.figure(figsize=(12, 6))
plt.plot(data.index, data['value'], label='Original Data')
plt.plot(data.index[lags:], results.fittedvalues, label='Fitted Values', linestyle='--')
plt.xlabel('Time')
plt.ylabel('Value')
plt.title('Autoregressive Model Fit')
plt.legend()
plt.grid(True)
plt.show()

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学海一叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值