自回归模型 java_ARMR模型简单实践(1)(示例代码)

本文介绍了如何使用Python的statsmodels库进行自回归模型的单位根检验(ADF检验),探讨了差分对序列平稳性的影响,并通过示例代码解释了如何判断序列是否平稳以及检验结果的解读。
摘要由CSDN通过智能技术生成

def teststationayity(ts):

dftest = adfuller(ts) # 实例化检验得到数值源

# print(dftest)

dfoutput = pd.Series(dftest[0:4], index=[‘Test Statistic‘, ‘p_value‘, ‘#Lags Used‘,

‘Number of Observation Uesd‘])

# print(dfoutput)

#n阶差分

# _data=pd.Series(ts)

# data=_data.diff(1)[1:]

# # print(data)

# data.plot()

# plt.show()

# plt.savefig(‘./diff_1.svg‘)

for key, value in dftest[4].items():

dfoutput[‘Critical Value({})‘.format(key)] = value

return dfoutput

20200524192316359703.png

一阶差分后很明显是不平稳的波动

(差分:差分的目的主要是消除一些波动 使数据趋于平稳

你说的没错 一阶差分后的确就是增量 这还比较好解释  而有时候一阶差分都未必能达到平稳,此时还要做二阶差分 这个就很难解释意义了

所以对于多变量的时序 一般如果不平稳 我们会选择检验他们是否同阶单整然后在同阶单整的情况下做协整分析  只要有协整关系 就可以用原始数据来建模  我的理解就是放宽了平稳的要求 毕竟经济数据要平稳很多时候是难以达到的)

3.光看图没底儿,故而再瞅瞅单位根检验(adf):

(1)概念简述:

ADF检验

在使用很多时间序列模型的时候,如 ARMA、ARIMA,都会要求时间序列是平稳的,所以一般在研究一段时间序列的时候,第一步都需要进行平稳性检验,除了用肉眼检测的方法,另外比较常用的严格的统计检验方法就是ADF检验,也叫做单位根检验。

ADF检验全称是 Augmented Dickey-Fuller test,顾名思义,ADF是 Dickey-Fuller检验的增广形式。DF检验只能应用于一阶情况,当序列存在高阶的滞后相关时,可以使用ADF检验,所以说ADF是对DF检验的扩展。

单位根(unit root)

在做ADF检验,也就是单位根检验时,需要先明白一个概念,也就是要检验的对象——单位根。

当一个自回归过程中: ,如果滞后项系数b为1,就称为单位根。当单位根存在时,自变量和因变量之间的关系具有欺骗性,因为残差序列的任何误差都不会随着样本量(即时期数)增大而衰减,也就是说模型中的残差的影响是永久的。这种回归又称作伪回归。如果单位根存在,这个过程就是一个随机漫步(random walk)。

ADF检验的原理

ADF检验就是判断序列是否存在单位根:如果序列平稳,就不存在单位根;否则,就会存在单位根。

所以,ADF检验的 H0 假设就是存在单位根,如果得到的显著性检验统计量小于三个置信度(10%,5%,1%),则对应有(90%,95,99%)的把握来拒绝原假设。

ADF检验的python实现

ADF检验可以通过python中的 statsmodels 模块,这个模块提供了很多统计模型。

使用方法如下:

导入adfuller函数

from statsmodels.tsa.stattools import adfuller

adfuller函数的参数意义分别是:

x:一维的数据序列。

maxlag:最大滞后数目。

regression:回归中的包含项(c:只有常数项,默认;ct:常数项和趋势项;ctt:常数项,线性二次项;nc:没有常数项和趋势项)

autolag:自动选择滞后数目(AIC:赤池信息准则,默认;BIC:贝叶斯信息准则;t-stat:基于maxlag,从maxlag开始并删除一个滞后直到最后一个滞后长度基于 t-statistic 显著性小于5%为止;None:使用maxlag指定的滞后)

store:True  False,默认。

regresults:True 完整的回归结果将返回。False,默认。

返回值意义为:

adf:Test statistic,T检验,假设检验值。

pvalue:假设检验结果。

usedlag:使用的滞后阶数。

nobs:用于ADF回归和计算临界值用到的观测值数目。

icbest:如果autolag不是None的话,返回最大的信息准则值。

resstore:将结果合并为一个dummy。

adf概念    refer    原文链接:https://blog.csdn.net/FrankieHello/java/article/details/86766625

(2)判断

adfuller(dta)后我得到的return;

Test Statistic 0.815369

p_value 0.991880

#Lags Used 13.000000

Number of Observation Uesd 130.000000

Critical Value(1%) -3.481682

Critical Value(5%) -2.884042

Critical Value(10%) -2.578770

dtype: float64

如何确定该序列能否平稳呢?主要看:

1%、%5、%10不同程度拒绝原假设的统计值和ADF Test result的比较,ADF Test result同时小于1%、5%、10%即说明非常好地拒绝该假设,本数据中,adf结果(Test Statistic)为0.8, 大于三个level的统计值。

看P-value是否非常接近0.  本数据中,P-value 为 0.99,不够接近0.

ADF检验的原假设是存在单位根,只要这个统计值是小于1%水平下的数字就可以极显著的拒绝原假设,认为数据平稳。注意,ADF值一般是负的,也有正的,但是它只有小于1%水平下的才能认为是及其显著的拒绝原假设。

对于ADF结果在1% 以上 5%以下的结果,也不能说不平稳,关键看检验要求是什么样子的。

但是对于本例,,数据是显然不平稳的了。

2020-05-24

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值