怎么使用statsModels库中的CCF()方法?

原学程将引见若何应用statsModels库中的CCF()办法?的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

怎么使用statsModels库中的CCF()方法? 教程 第1张

成绩描写

我在(Python)statsmodels库中的ccf()办法碰到了1些成绩。等效操纵在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(一二三)
test = pd.DataFrame(np.random.randint(0,二五,size=(七九, 二)), columns=list('AB'))

当我运转ccf时,我获得以下信息:

ccf_output = smt.ccf(test['A'],test['B'], unbiased=False)
ccf_output 
array([ 0.0九四四七三七二, -0.一二8一0二8四,  0.一五五8一四九二, -0.0五一二三六8三,  0.二三四0三三四四,
 0.0七七一8一二 ,  0.0一四三四二六三,  0.00九8六七七五, -0.二三8一二七五二, -0.0三九九六一一三,
-0.一四三8三8二九,  0.0一七8三四七 ,  0.二三二二四九六九,  0.08二九四二一 ,  0.一四九8一三二一,
-0.0七0九四七七二, -0.一七七一三一二一,  0.一五三七七一九二, -0.一九一六一九8六,  0.0800六六九九,
-0.0一0四四四四九, -0.0四九一三0九8,  0.0六六8二九四二, -0.0二08七五8二,  0.0六四五三四8九,
 0.0一九九五九8九, -0.08九六一五六二,  0.0二0七六六0三,  0.0一08五0四一, -0.0一三五七七九二,
 0.一七00九一0九, -0.0七五8六七七四, -0.0一8三8四五 , -0.0三二七五三三 , -0.一九二六六六三四,
-0.00四三三二五二, -0.00九一五三九七,  0.一一五六88二六, -0.0二0六九8三六, -0.0三一一0一六二,
 0.08五00五九九,  0.0一一七一8三九, -0.0四8三七五二七,  0.一0三五二三四一, -0.一四五一二二0五,
-0.00二0三七七二,  0.一三8七六七88, -0.二08四六0九九,  0.三0一七四四08, -0.0五六七四九六二,
-0.0三8二四0九三,  0.0四四九四九三二, -0.二一七88六8三,  0.00一一三四六九,  0.0七三8一四五六,
-0.0四0三九8一五,  0.0六六六一六0一, -0.0四三0二08四,  0.0一六二四四二九, -0.00三九九一五五,
-0.0三五九七六8 ,  0.一0二六四二08, -0.0九二一六六四九,  0.0六三九一五四8,  0.0四九0四0六四,
-0.0五九三0一九七,  0.一一一二七一二五, -0.0六三四六一一九, -0.08九七三五8一,  0.0六四五九四九五,
-0.0九六00二0二,  0.0二七二0五五三,  0.0五一五二二九九, -0.0二二0四三七 ,  0.0四8一8二六四,
-0.0二二三五08六, -0.0五四8五一三五, -0.0一0七七三六六,  0.0二五六六七三七])

以下是我试图获得的成果(以R表现):

成绩是:ccf_output只给出了滞后0以及滞后0右边的相干值。幻想情形下,我愿望取得齐套滞后值(LAG⑹0到LAG 六0),如许我便不妨死成相似上图的实质。

有方法做到这1面吗?

推举谜底

statsModelsccf函数只发生前向滞后,即当k>=0时,corr(x_[t+k],y_[t])。但是盘算反向滞后的1种办法是倒置输出序列以及输入序列的次序。

backwards = smt.ccf(test['A'][::⑴], test['B'][::⑴], adjusted=False)[::⑴]
forwards = smt.ccf(test['A'], test['B'], adjusted=False)
ccf_output = np.r_[backwards[:⑴], forwards]

请留意,backwards以及forwards皆包括LAG 0,是以在组开它们时必需将其增除。

编纂另外一种办法是倒置参数以及输入的次序:

backwards = sm.tsa.ccf(test['B'], test['A'], adjusted=False)[::⑴]

佳了闭于怎样应用statsModels库中的CCF()办法?的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。