时间序列学习(4):平稳性检验(单位根检验、ADF检验) 您所在的位置:网站首页 DF检验是什么 时间序列学习(4):平稳性检验(单位根检验、ADF检验)

时间序列学习(4):平稳性检验(单位根检验、ADF检验)

2024-02-23 07:25| 来源: 网络整理| 查看: 265

时间序列学习(4):平稳性检验(单位根检验、ADF检验) 1、单位根检验2、ADF检验3、指数走势的检验4、对数收益率序列检验

相关图可以大致判断序列是否平稳。但是,这毕竟不是严格的。

这篇笔记来就谈一谈平稳性的检验。

到目前为止,我们有了以下的时间序列模型:

白噪声;随机游走;AR模型;MA模型;ARMA模型。

我们知道白噪声、MA模型一定是平稳的(这里的平稳都是弱平稳);随机游走一定是不平稳的;ARMA模型取决于其AR部分。

所以唯一需要做平稳性检验的就是AR模型。

1、单位根检验

先来看一阶AR模型,即AR(1)的情况,其模型如下:

r t = α 1 r t − 1 + w t r_t=\alpha_1r_{t-1}+w_t rt​=α1​rt−1​+wt​

如果 α 1 = 1 \alpha_1=1 α1​=1,该模型就是随机游走,我们知道它是不平稳的。换个思路想象一下,当 α 1 = 1 \alpha_1=1 α1​=1,那么前一时刻的收益率对当下时刻的影响是100%的,不会减弱;那么就算是很远的某个时刻,当下对它的影响还是不会消除,所以方差(表现在波动)是受前面所有时刻的影响,是和 t t t相关的,因此不平稳;

如果 α 1 > 1 \alpha_1\gt1 α1​>1,那么当前时刻的波动不仅受前面时刻的影响,还被放大了,所以肯定不平稳;

只有当 α 1 < 1 \alpha_1\lt1 α1​}} for i in range(len(prices)): current_price = prices.iloc[i,0] if i == 0: current_return = 0 else: last_price = prices.iloc[i-1,0] current_return = math.log(current_price)-math.log(last_price) date = list(prices.index)[i] returns['return'][date] = current_return return_df = pd.DataFrame(returns, columns=['return'], index=list(prices.index)) fig = plt.figure(figsize=(10, 6)) ax = fig.add_axes([0.2, 0.2, 1.2, 1.2]) ax.plot(return_df, color="blue", linewidth=1.5, linestyle="-", label=r'hs300-daily-log-returns') plt.legend(loc='upper right', frameon=False)

在这里插入图片描述

检验结果如下:

unitroot_adf(return_df.loc[:,'return']) (-6.9332827227876, 1.070439257686785e-09, 8, 466, {'1%': -3.4444609168389615, '5%': -2.8677622536920317, '10%': -2.5700842229549266}, -2646.8267439593874)

这个结果里,t-检验值远小于1%的临界值,P-Value也远小于1%。所以,序列没有显著的不平稳性。因而我们可以认为该序列是平稳的。

这里要注意的一点是:当我们采用ADF进行检验的时候,我们实际上已经假设用AR模型对序列进行建模了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有