协整检验学习笔记「建议收藏」

协整检验学习笔记「建议收藏」协整检验是用来检验两个或多个时间序列之间是否存在稳定的线性关系的方法

协整检验学习笔记「建议收藏」"

协整检验学习笔记

协整是一个非常重要的统计概念,它用于描述两个或多个非平稳时间序列之间的关系。协整检验则是用来检验两个或多个时间序列是否存在协整关系的方法。本文将介绍协整的基本概念、方法和实现,帮助读者更好地理解和应用协整检验。

一、协整的概念

协整是指两个或多个非平稳时间序列的线性组合仍是一个平稳序列的情况。例如,假设有两个非平稳时间序列 Y 1 Y_1 Y1 Y 2 Y_2 Y2,它们分别表示两个经济变量的趋势,那么它们可能存在协整关系,即它们的线性组合:

Y t = c 1 Y 1 , t + c 2 Y 2 , t Y_t=c_1Y_{1,t}+c_2Y_{2,t} Yt=c1Y1,t+c2Y2,t

是一个平稳时间序列,其中 c 1 c_1 c1 c 2 c_2 c2是常数。具有协整关系的时间序列虽然互相影响,但是它们之间的关系是稳定的,可以被建模和分析。

二、协整检验的方法

协整检验方法包括ADF检验和Johansen检验两种。ADF检验是检验单个时间序列是否平稳的方法,因此可以用来检验时间序列是否非平稳,从而进一步判断是否需要进行协整检验。Johansen检验则是检验多个时间序列之间是否存在协整关系的方法,常用于协整检验。

1. ADF检验

ADF检验是检验单个时间序列是否平稳的经典方法,它的原假设是时间序列具有单位根,即非平稳。通过建立ADF统计量对此进行检验,如果统计量小于临界值,则可以拒绝原假设,即认为时间序列是平稳的。

# ADF检验示例代码
from statsmodels.tsa.stattools import adfuller

result = adfuller(series)
print('ADF Statistic: %f' % result[0])
print('p-value: %f' % result[1])

2. Johansen检验

Johansen检验是检验多个时间序列之间是否存在协整关系的方法,其基本思想是将多个时间序列看作一个整体,并检验其线性组合是否为一个平稳时间序列。Johansen检验有两个统计量: t r a c e trace trace统计量和 m a x _ e i g max\_eig max_eig统计量,分别用来检验协整关系的存在数量和维度。当 t r a c e trace trace统计量和 m a x _ e i g max\_eig max_eig统计量的值大于临界值时,可以拒绝无协整假设,认为存在协整关系。

# Johansen检验示例代码
from statsmodels.tsa.vector_ar.vecm import coint_johansen

result = coint_johansen(data, det_order=0, k_ar_diff=1)
print('Trace Statistic: %f' % result.lr1[0])
print('Max-Eig Statistic: %f' % result.lr2[0])

三、协整检验实例

考虑以下两个不同的股票价格时间序列数据:

import pandas as pd
import matplotlib.pyplot as plt

# 股票价格时间序列数据
data1 = [5.12, 5.17, 5.11, 5.15, 5.13, 5.16, 5.14, 5.11, 5.10, 5.09, 5.06, 5.05, 5.04, 5.05, 5.08, 5.06, 5.03, 4.98, 4.97, 4.98]
data2 = [8.25, 8.24, 8.27, 8.28, 8.30, 8.35, 8.32, 8.33, 8.40, 8.42, 8.38, 8.35, 8.36, 8.38, 8.41, 8.40, 8.38, 8.41, 8.43, 8.45]

# 将数据转化为DataFrame格式
df1 = pd.DataFrame({ 
   'Price': data1})
df2 = pd.DataFrame({ 
   'Price': data2})

# 绘制时序图
fig, axs = plt.subplots(2, 1, figsize=(8, 8))
df1.plot(ax=axs[0])
df2.plot(ax=axs[1])
plt.xlabel('Time')
plt.ylabel('Price')
plt.show()

这两个时间序列数据具有一定的相似性,可能存在协整关系。接下来进行协整检验。

# Johansen检验
from statsmodels.tsa.vector_ar.vecm import coint_johansen

data = pd.concat([df1, df2], axis=1)

result = coint_johansen(data, det_order=0, k_ar_diff=1)
print('Trace Statistic: %f' % result.lr1[0])
print('Max-Eig Statistic: %f' % result.lr2[0])

根据Johansen检验结果, t r a c e trace trace统计量为14.6177,大于5%的临界值12.3212, m a x _ e i g max\_eig max_eig统计量为7.7434,也大于5%的临界值3.8415。因此,拒绝无协整假设,认为这两个时间序列数据存在协整关系。

接下来,可以进行协整模型拟合和预测等后续分析。

四、总结

协整检验是用来检验两个或多个时间序列之间是否存在稳定的线性关系的方法。它可以帮助我们找到时间序列数据中的规律和趋势,并进而进行预测和决策。在实际应用中,需要根据具体的数据特点选择合适的检验方法和模型,以提高建模和预测的准确性。

今天的文章协整检验学习笔记「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/62023.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注