ARMA 时间序列模型

article/2025/10/5 19:52:36

更好的理解协方差以及相关系数

###X因素和Y因素协方差公式:

自相关系数ACF

直观上来说,ACF 描述了一个观测值和另一个观测值之间的自相关,包括直接和间接的相关性信息。

其实自相关系数可以这么理解:把一列数据按照滞后数拆成两列数据,在对这两列数据做类似相关系数的操作。

这组数据是求滞后数为2的自相关系数,则变成求{x1,x2,…,x8}和{x3,x4,…,x10}两者的“相关系数”,相关系数打引号是因为这个相关系数的公式和以往的有点不一样。下面看一下公式的对比:

所以,我们可以这么理解自相关系数, 她就是用来表达一组数据前后数据 (自己和自己) 的相关性的。

PACF 是部分自相关函数或者偏自相关函数。基本上,它不是找到像ACF这样的滞后与当前的相关性,而是找到残差(在去除了之前的滞后已经解释的影响之后仍然存在)与下一个滞后值的相关性。因此,如果残差中有任何可以由下一个滞后建模的隐藏信息,我们可能会获得良好的相关性,并且在建模时我们会将下一个滞后作为特征。请记住,在建模时,我们不想保留太多相互关联的特征,因为这会产生多重共线性问题。因此,我们只需要保留相关功能。

直观上来说,PACF 只描述观测值 y t y_{t} yt​ 和其滞后项 y t − k y_{t-k} yt−k​ 之间的直接关系,调整了其他较短滞后项( y t − 1 y_{t-1} yt−1​ , y t − 2 y_{t-2} yt−2​ …… y t − k − 1 y_{t-k-1} yt−k−1​ )的影响。

###截尾与拖尾
####拖尾是指序列以指数率单调递减或震荡衰减,而截尾指序列从某个时间点变得非常小。

出现以下情况,通常视为(偏)自相关系数d阶截尾:

在最初的d阶明显大于2倍标准差范围
之后几乎95%的(偏)自相关系数都落在2倍标准差范围以内
且由非零自相关系数衰减为在零附近小值波动的过程非常突然
出现以下情况,通常视为(偏)自相关系数拖尾:
如果有超过5%的样本(偏)自相关系数都落在两倍标准差范围之外
或者是由显著非0的(偏)自相关系数衰减为小值波动的过程比较缓慢或非常连续

截尾是指时间序列的自相关函数(ACF)或偏自相关函数(PACF)在某阶后均为0的性质(比如AR的PACF);拖尾是ACF或PACF并不在某阶后均为0的性质(比如AR的ACF)。
P 阶AR 过程可以写成下面的式子:

yt​=c+ϕ1​yt−1​+ϕ2​yt−2​+……+ϕp​/yt−p​+εt​

其中 ε t \varepsilon_{t} εt​ 是白噪声, y t − 1 y_{t-1} yt−1​, y t − 2 y_{t-2} yt−2​ 是滞后项。阶数P 是滞后值,PACF 曲线在该滞后值首次穿过上限置信区间。这些P 延迟将作为我们预测AR 时间序列的特征。

我们不能在这里使用ACF图,因为即使对于过去很久远的滞后项,它也会显示出良好的相关性。如果我们考虑了这么多特征,我们将遇到多重共线性问题。这对于PACF图来说不是问题,因为它删除了之前滞后已经解释的成分,因此我们只得到了与残差相关的滞后,比如未被较早的滞后项所解释的成分。

###时间序列模型

1.时间序列模型的作用

对未来的资产价格预测模拟序列探索金融时间序列的趋势和周期性时间序列与其他变量的内在关系,为策略提供辅助和增强不同时间序列之间的关系,发现新的策略波动率建模,期权相关的策略

白噪声

白噪声是由一组0均值,不变方差,相互独立的元素构成,当然可以对该元素的分布进行假设(如高斯分布)。白噪声如同他的名字听起来一样是杂乱无章的,各元素之间没有任何联系。由白噪声组成的序列是随机游走,随机游走序列的自相关特点是其自相关函数几乎为1并且衰减很慢,这种特征我们称为长记忆性(分形中我们会具体讨论)。

自回归模型(AR模型)

其中,yt是当前值;μ是常数项;p是阶数;γi是自相关系数,ϵt是误差值。

自回归模型是描述当前值与历史值之间的关系的模型,是一种用变量自身的历史事件数据对自身进行预测的方法。

自回归模型的使用有以下四项限制:

该模型用自身的数据进行预测,即建模使用的数据与预测使用的数据是同一组数据;
使用的数据必须具有平稳性;
使用的数据必须有自相关性,如果自相关系数小于0.5,则不宜采用自回归模型;
自回国模型只适用于预测与自身前期相关的现象。

移动平均模型(MA模型)

其中各个字母的意义与AR公式相同,θi为MA公式的相关系数。

移动平均模型关注的是自回归模型中的误差项的累加。它能够有效地消除预测中的随机波动。

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

在这个公式中,p与q分别为自回归模型与移动平均模型的阶数,是需要人为定义的。γi与θi分别是两个模型的相关系数,是需要求解的。如果原始数据不满足平稳性要求而进行了差分,则为差分自相关移动平均模型(ARIMA),将差分后所得的新数据带入ARMA公式中即可。

###如何用PACF图和ACF图来确定p、q值?

举例

可以看到ACF是一个逐渐趋于0的拖尾,而PACF在7阶过后系数为0,所以模型是AR(7)或AR(8),即ARMA(7,0)或ARMA(8,0)。备选模型ARMA(7,1)。

这样的图,可以看到PACF是拖尾,ACF自1阶过后都落在2倍标准差范围内,所以是MA(1)模型。

最后看一个ARMA模型的例子:

ACF和PACF都呈现拖尾,在1阶位置就开始基本落在2倍标准差范围,所以是ARMA(1,1)模型。

ARIMA模型的建模过程:

完全代码:解析版

# statsmodels.tsa.arima_model import ARIMA 导入时序模块from statsmodels.tsa.arima_model import ARIMA
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
import statsmodels.api as sm
from statsmodels.graphics.api import qqplot# 将list形式转换为矩阵形式
data = [5922, 5308, 5546, 5975, 2704, 1767, 4111, 5542, 4726, 5866, 6183, 3199, 1471, 1325, 6618, 6644, 5337, 7064,2912, 1456, 4705, 4579, 4990, 4331, 4481, 1813, 1258, 4383, 5451, 5169, 5362, 6259, 3743, 2268, 5397, 5821,6115, 6631, 6474, 4134, 2728, 5753, 7130, 7860, 6991, 7499, 5301, 2808, 6755, 6658, 7644, 6472, 8680, 6366,5252, 8223, 8181, 10548, 11823, 14640, 9873, 6613, 14415, 13204, 14982, 9690, 10693, 8276, 4519, 7865, 8137,10022, 7646, 8749, 5246, 4736, 9705, 7501, 9587, 10078, 9732, 6986, 4385, 8451, 9815, 10894, 10287, 9666, 6072,5418]
data=pd.Series(data)# 设置索引
data.index=pd.Index(sm.tsa.datetools.dates_from_range('1901', '1990'))#进行一阶差分
data1=data.diff(1)
data1.dropna(inplace=True)# 画图部分省略(根据自相关系数图确定适合的模型)
arma_mod1 = sm.tsa.ARMA(data1, (7, 0)).fit()
print(arma_mod1.aic, arma_mod1.bic, arma_mod1.hqic)
arma_mod2 = sm.tsa.ARMA(data1, (7, 1)).fit()
print(arma_mod2.aic, arma_mod2.bic, arma_mod2.hqic)
arma_mod3 = sm.tsa.ARMA(data1, (8, 0)).fit()
print(arma_mod3.aic, arma_mod3.bic, arma_mod3.hqic)# 找出最适合的模型
# 由上面可以看出ARMA(7,0)模型最佳
# 第四步:进行模型检验
# 首先对ARMA(7,0)模型所产生的残差做自相关图
resid = arma_mod1.resid
# 一定要加上这个变量赋值语句,不然会报错resid is not defined
ax5 = plt.subplot(2, 2, 1)
sm.graphics.tsa.plot_acf(resid.values.squeeze(), lags=40, ax=ax5)
ax6 = plt.subplot(2, 2, 2)
sm.graphics.tsa.plot_pacf(resid, lags=40, ax=ax6)# 对适合的模型进行自相关(也就是D-W检验)
print(sm.stats.durbin_watson(arma_mod1.resid.values))
# 并观察是否为正态分布
fig = qqplot(resid, line='q', ax=ax7, fit=True)# 最后用Ljung-Box检验:检验的结果就是看最后一列前十二行的检验概率(一般观察滞后1~12阶),
# 如果检验概率小于给定的显著性水平,比如0.05、0.10等就拒绝原假设,其原假设是相关系数为零。
# 就结果来看,前12阶的P值都是大于0.05,所以在0.05的显著性水平下,不拒绝原假设,即残差为白噪声序列。
r, q, p = sm.tsa.acf(resid.values.squeeze(), qstat=True)
data2 = np.c_[range(1, 41), r[1:], q, p]
table = pd.DataFrame(data2, columns=['lag', 'AC', 'Q', 'Prob(>Q)'])# 第五步:平稳模型预测,对未来十年进行预测
predict_y = arma_mod1.predict('1990', '2000', dynamic=True)
# print(predict_y)
ax8 = plt.subplot(2, 2, 4)
ax9 = data1.loc['1901':].plot(ax=ax8)
predict_y.plot(ax=ax8)
plt.show()# 还原到原始序列
ts_restored = pd.Series([data[0]], index=[data.index[0]]).append(data1).cumsum()# 第六步:使用ARIMA模型进行预测
model = ARIMA(ts_restored, order=(7, 1, 0))  # 导入ARIMA模型
result = model.fit(disp=-1)
# print(result.summary())
result.conf_int()  # 模型诊断,可以发现所有的系数置信区间都不为0;即在5%的置信水平下,所有的系数都是显著的,即模型通过检验。# 最后画出时序图
ax10 = plt.subplot(2, 2, 1)
ax10 = ts_restored.loc['1901':].plot(ax=ax10)  # 注意起点是从1901开始
result.plot_predict(5, 100, ax=ax10)  # 因为前面是90个数,所以加上预测的10个就是100
plt.show()  # 数据预测并画图

效果展示

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


http://chatgpt.dhexx.cn/article/T7f1EKX5.shtml

相关文章

时间序列模型简介

时间序列模型简介 尽管此前我们已经用到了time series这个专业名词,但我们对时序特征进行的处理,并不是time series这个专业名词所代表的真正含义,既时间序列。尽管本阶段我们并不会讲解时间序列模型,但既然讨论了时序特征&#x…

时间序列的7种预测模型

背景 时间序列问题比较常见,比如股市,工业生产指标等。 导入必要的Python包: from statsmodels.tsa.api import ExponentialSmoothing, \ SimpleExpSmoothing, Holtimport statsmodels.api as sm1. 朴素估计 y ^ t 1 y t \hat{y}_{\math…

算法模型---时间序列模型

文章来源 时间序列 时间序列是时间间隔不变的情况下收集的不同时间点数据集合,这些集合被分析用来了解长期发展趋势及为了预测未来。 时间序列与常见的回归问题的不同点在于: 1、时间序列是跟时间有关的;而线性回归模型的假设:观察结果是独立的在这种情…

ADF单位根检验三种形式_[STATA] 时间序列模型 ARIMA检验

___ ____ ____ ____ ____ (R) /__ / ____/ / ____/___/ / /___/ / /___/ 13.1 Statistics/Data Analysis 此次系列文章的主题是通过Stata软件来分析时间序列的平稳和非平稳关系,以及如何通过Stata软件来进行不同时间序列模型的预测性分析。…

机器学习——时间序列模型

文章目录 1. 基本概念1.1 自相关函数ACF(autocorrelation function)1.2 偏自相关函数PACF(partial autocorrelation function) 2. 常见模型2.1 自回归模型(AR)2.2 移动平均模型(MA)2…

时间序列模型算法 - ARIMA (一)

时间序列模型 1.时间序列模型概述1.1 时间序列的不同分类1.2 确定性时间序列分析方法概述1.3 三种时间序列模型 2.指标平滑ES2.1 一次指数平滑法 3.ACF与PACF4.AR5.MA6.ARMA7.ARIMA7.1 差分 8. ARIMA实践8.1 读取数据8.2 画图,观察数据是否非平稳8.3 差分&#xff0…

Office 2016 定制安装工具 v1.0 | Office 2016 自定义安装组件

软件简介 以往Office的安装包都采用的是MSI安装器,允许用户在安装时选择安装的组件,但是微软发布的Office2016安装包只提供了C2R(ClickToRun)方式,因此默认情况下用户无法选择安装组件,默认会安装所有。大…

office2016激活后还显示激活页面的解决办法

win10系统的office16通过Office激活工具激活之后,但是打开之后还会出现提示“让我们开始吧”的激活的页面, 1.office2016激活后还显示激活页面的解决办法 以后激活之后,每次试用Word或者Excel的时候,都会出现上图的激活提示页面…

运维 office2016自定义安装

office2016自定义安装组件简明教程 引言 以往Office的安装包都采用的是MSI安装器,允许用户在安装时选择安装的组件, 但是微软发布的Office 2016安装包只提供了C2R(ClickToRun)方式,因此默认情况下用户无法选择安装组…

安装Office的一些工具

1.可以下载各个版本的office:https://msdn.itellyou.cn/ 这个站点经常装系统的朋友应该都知道,一个老站了。 2.部署工具Office Tool Plus:https://otp.landian.vip/zh-cn/ 这个工具挺强大的,可以下载,可以部署&…

office2016 使用KMS破解无法连接服务器

最后发现是wmi服务异常。 修复完成后就正常 注册了

使用office tool plus清除office激活状态

如何清除office激活状态 大多数问题直接更改许可证就行,只有更改许可证无反应才需要使用,本文只是使软件变成未激活,但是激活仍需你已购买许可证 1下载office tool plus 2解压下载好的压缩包 3运行office too lplus.exe 4关闭所有office软件…

OFFICE激活报错0X80080005

点击工具箱->修复Office无法正常激活->修复,看到修复成功,再用Office Tool Plus激活就可以了

Office2016软件安装教程

关注公众号,免费获取资料 ​ 解压压缩文件 点击office 2013 专业增强版 64位文件夹(根据自身系统选择位数),右击setup - >以管理员的身份运行 3.勾选接收,继续 4.选择自定义安装, 5.点击浏览,选在office 安装位置&…

office2016专业增强版

链接: https://pan.baidu.com/s/1XBEwwkdwhfSDVpIrBm0cFg 密码: nkv2 Microsoft office 2016官方版是针对Windows 10环境从零全新开发的通用应用(Universal App)。office2016正式版中的Word将会增加“Insights for Office”、“Read Mode”等新功能,powerpoint增加了“Prese…

office2016 + visio2016

在电脑已经安装好了office20016增强版后,如果安装visio2016软件来画图,会弹出了如下提示框: cn_office_professional_plus_2016_x86_x64_dvd_6969182.iso和cn_visio_professional_2016_x86_x64_dvd_6970929.iso虽然镜像名称不同,但…

安装office2016专业增强版

安利2个工具 1.Office 2013-2019 C2R Install Main Window Install Office 为安装,这里无需提前下好镜像文件或安装包但要保持有网的状态,如果显示有别的版本则使用强力卸载,卸载干净之后再安装。右边界面为自定义安装选项,选择版…

激活office2016遇:The Software Licensing Service reported that the product SKU is not found.

今天把办公电脑系统重装了,之前的已经用了3年多了,win10还是不错了!!哈哈 打开巨硬的下载地址:https://www.microsoft.com/zh-cn/software-download/windows10 上面的立即更新,可以更新当前win10系统到最…

windows安装office2016

注意 多个不同版本的Microsoft Office不能共存在一个Windows系统中。 电脑上安装的可能有买电脑时候安装的office,是正版的office。 有可能安装的就是office2016 如果安装office时候提示 需要先卸载电脑上其他版本的office, 微软卸载教程&工具 …

office 2016下载安装

office 2016 下载安装 好几天啦我的office2010一直提示我激活(可能是之前网上找的激活码不管用啦),对于强迫症的我来说实在受不了,所以就索性卸载2010. 下面是获取office2016以及安装步骤 1. 步骤1 : 百度:mdsn 点击第一个:在应用程序中获取你需要的…