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+ϕ1Xt−1+ϕ2Xt−2+…+ϕpXt−p+εt
其中:
- Xt 是时间点 t 的观测值。
- c 是常数项。
- ϕ1,ϕ2,…,ϕp 是模型的参数,表示各自回归阶数的系数。
- Xt−1,Xt−2,…,Xt−p 是时间点 t 之前的观测值。
- εt 是白噪声误差项,表示时间点 t 的随机噪声
1.2 模型步骤
AR 模型的拟合和预测通常涉及以下步骤:
- 数据准备:收集和整理时间序列数据,确保数据满足平稳性(stationarity)的要求。
- 模型阶数 p 的选择:通过观察自相关函数(ACF)和偏自相关函数(PACF)的图来选择合适的 p 值。
- 参数估计:使用最大似然估计或其他估计方法来估计模型中的参数 ϕ1,ϕ2,…,ϕp 和可能的常数项 c。
- 模型拟合:使用估计的参数拟合 AR 模型。
- 模型诊断:检查模型的残差序列是否符合白噪声假设,以确保模型的质量。
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()
文章来源:https://www.toymoban.com/news/detail-708410.html
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()
文章来源地址https://www.toymoban.com/news/detail-708410.html
到了这里,关于时间序列预测系列之AR模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!