有没有一种方法可以调整pandas滚动相关函数来计算Dataframe的granger因果关系的滚动p值?

krugob8w  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(252)

目前正在运行下面的代码来计算一个成对的格兰杰因果矩阵,但是我需要在滚动窗口上测量它来创建一个时间序列。

maxlag=3

test = 'ssr-chi2test'

def grangers_causality_matrix(data,  test = 'ssr_chi2test', verbose=False):

    dataset = pd.DataFrame(np.zeros((len(data.columns), len(data.columns))), columns=data.columns, index=data.columns)

    for c in dataset.columns:
        for r in dataset.index:
            test_result = grangercausalitytests(data[[r,c]], maxlag=maxlag, verbose=False)
            p_values = [round(test_result[i+1][0][test][1],4) for i in range(maxlag)]
            if verbose: print(f'Y = {r}, X = {c}, P Values = {p_values}')

            min_p_value = np.min(p_values)
            dataset.loc[r,c] = min_p_value

    return dataset

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题