栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python自回归移动平均和自回归综合移动平均及快速预测每月飞机乘客

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python自回归移动平均和自回归综合移动平均及快速预测每月飞机乘客

理解并在 Python 中实现 ARMA 和 ARIMA 模型以进行时间序列预测。

ARMA(自回归移动平均)模型

回想一下, p p p阶的自回归过程定义为:

y t = c + ϕ 1 y t − 1 + ϕ 2 y t − 2 + … + ϕ p y t − p + ϵ t y_{t}=c+phi_{1} y_{t-1}+phi_{2} y_{t-2}+ldots+phi_{p} y_{t-p}+epsilon_{t} yt​=c+ϕ1​yt−1​+ϕ2​yt−2​+…+ϕp​yt−p​+ϵt​

其中, p p p是阶数, c c c是常数, ϵ epsilon ϵ是噪音

还记得移动平均过程 q q q 定义为:

y t = c + ϵ t + θ 1 ϵ t − 1 + θ 2 ϵ t − 2 + . . θ q ϵ t − q y_{t}=c+epsilon_{t}+theta_{1} epsilon_{t-1}+theta_{2} epsilon_{t-2}+. . theta_{q} epsilon_{t-q} yt​=c+ϵt​+θ1​ϵt−1​+θ2​ϵt−2​+..θq​ϵt−q​

其中, q q q是阶数, c c c是常数, ϵ epsilon ϵ是噪音

ARMA(p,q) 只是将两个模型组合成一个方程:

y t = c + ϵ t + θ 1 ϵ t − 1 + θ 2 ϵ t − 2 + … θ q ϵ t − q + ϕ 1 y t − 1 + ϕ 2 y t − 2 + … + ϕ p y t − p y_{t}=c+epsilon_{t}+theta_{1} epsilon_{t-1}+theta_{2} epsilon_{t-2}+ldots theta_{q} epsilon_{t-q}+phi_{1} y_{t-1}+phi_{2} y_{t-2}+ldots+phi_{p} y_{t-p} yt​=c+ϵt​+θ1​ϵt−1​+θ2​ϵt−2​+…θq​ϵt−q​+ϕ1​yt−1​+ϕ2​yt−2​+…+ϕp​yt−p​

因此,该模型可以解释时间序列与随机噪声(移动平均部分)和前一步(自回归部分)本身的关系。

模拟此过程

让我们从移动平均和自回归部分的 1 阶 ARMA 过程的简单示例开始。

from statsmodels.graphics.tsaplots import plot_pacf
from statsmodels.graphics.tsaplots import plot_acf
from statsmodels.tsa.arima_process import ArmaProcess
from statsmodels.stats.diagnostic import acorr_ljungbox
from statsmodels.tsa.statespace.sarimax import SARIMAX
from statsmodels.tsa.stattools import adfuller
from statsmodels.tsa.stattools import pacf
from statsmodels.tsa.stattools import acf
from tqdm import tqdm_notebook
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings('ignore')
%matplotlib inline

然后,我们将模拟以下 ARMA 流程:

y t = 1 + 0.9 ϵ t − 1 + 1 + 0.33 y t − 1 y_{t}=1+0.9 epsilon_{t-1}+1+0.33 y_{t-1} yt​=1+0.9ϵt−1​+1+0.33yt−1​

我们现在可以绘制前 200 个点,可视化生成的时间序列:

plt.figure(figsize=[15, 7.5]); # Set dimensions for figure
plt.plot(simulated_ARMA_data)
plt.title("Simulated ARMA(1,1) Process")
plt.xlim([0, 200])
plt.show()

然后,我们可以看一下 ACF 和 PACF 图:

模拟 ARMA(2,2) 过程 ARIMA(自回归综合移动平均)模型 项目1:每季收益额建模 预测误差估计量
ps = range(0, 8, 1)
d = 1
qs = range(0, 8, 1)
# Create a list with all possible combination of parameters
parameters = product(ps, qs)
parameters_list = list(parameters)
order_list = []
for each in parameters_list:
    each = list(each)
    each.insert(1, 1)
    each = tuple(each)
    order_list.append(each)
    
result_df = optimize_ARIMA(order_list, exog=data['data'])
result_df
项目2:快速预测每月飞机乘客 源代码

详阅 - 亚图跨际

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/934537.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号