How to use the ccf() method in the statsmodels library?(如何使用statsModels库中的CCF()方法?)
本文介绍了如何使用statsModels库中的CCF()方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在(Python)statsmodels
库中的ccf()
方法遇到了一些问题。等效操作在R中运行良好
ccf
在我的示例中产生两个变量A
和B
之间的互相关函数。我有兴趣了解A
在多大程度上是B
的领先指标。
我正在使用以下内容:
import pandas as pd
import numpy as np
import statsmodels.tsa.stattools as smt
我可以模拟A
和B
如下:
np.random.seed(123)
test = pd.DataFrame(np.random.randint(0,25,size=(79, 2)), columns=list('AB'))
当我运行ccf
时,我得到以下信息:
ccf_output = smt.ccf(test['A'],test['B'], unbiased=False)
ccf_output
array([ 0.09447372, -0.12810284, 0.15581492, -0.05123683, 0.23403344,
0.0771812 , 0.01434263, 0.00986775, -0.23812752, -0.03996113,
-0.14383829, 0.0178347 , 0.23224969, 0.0829421 , 0.14981321,
-0.07094772, -0.17713121, 0.15377192, -0.19161986, 0.08006699,
-0.01044449, -0.04913098, 0.06682942, -0.02087582, 0.06453489,
0.01995989, -0.08961562, 0.02076603, 0.01085041, -0.01357792,
0.17009109, -0.07586774, -0.0183845 , -0.0327533 , -0.19266634,
-0.00433252, -0.00915397, 0.11568826, -0.02069836, -0.03110162,
0.08500599, 0.01171839, -0.04837527, 0.10352341, -0.14512205,
-0.00203772, 0.13876788, -0.20846099, 0.30174408, -0.05674962,
-0.03824093, 0.04494932, -0.21788683, 0.00113469, 0.07381456,
-0.04039815, 0.06661601, -0.04302084, 0.01624429, -0.00399155,
-0.0359768 , 0.10264208, -0.09216649, 0.06391548, 0.04904064,
-0.05930197, 0.11127125, -0.06346119, -0.08973581, 0.06459495,
-0.09600202, 0.02720553, 0.05152299, -0.0220437 , 0.04818264,
-0.02235086, -0.05485135, -0.01077366, 0.02566737])
以下是我试图得到的结果(以R表示):
问题是:ccf_output
只给出了滞后0和滞后0右侧的相关值。理想情况下,我希望获得全套滞后值(LAG-60到LAG 60),这样我就可以生成类似上图的内容。
有办法做到这一点吗?
推荐答案
statsModelsccf
函数只产生前向滞后,即当k>;=0时,corr(x_[t+k],y_[t])。但计算反向滞后的一种方法是颠倒输入序列和输出序列的顺序。
backwards = smt.ccf(test['A'][::-1], test['B'][::-1], adjusted=False)[::-1]
forwards = smt.ccf(test['A'], test['B'], adjusted=False)
ccf_output = np.r_[backwards[:-1], forwards]
请注意,backwards
和forwards
都包含LAG 0,因此在组合它们时必须将其删除。
编辑另一种方法是颠倒参数和输出的顺序:
backwards = sm.tsa.ccf(test['B'], test['A'], adjusted=False)[::-1]
这篇关于如何使用statsModels库中的CCF()方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何使用statsModels库中的CCF()方法?
基础教程推荐
猜你喜欢
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- 筛选NumPy数组 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01