gpt4 book ai didi

python - 如何计算两个列表的协整?

转载 作者:太空狗 更新时间:2023-10-29 21:41:13 24 4
gpt4 key购买 nike

预先感谢您的帮助!

我有两个包含一些股票价格的列表,例如:

a = [10.23, 11.65, 12.36, 12.96]

b = [5.23, 6.10, 8.3, 4.98]

我可以计算这两个列表的相关性,方法是:

import scipy.stats

scipy.stats.pearsonr(a, b)[0]

但是,我没有找到计算两个列表的协整的方法。

你能给我一些建议吗?

非常感谢!

最佳答案

我不认为已经为 scipy 实现了协整检验。你可能会过得更好using rpy2将 Python 与 R 连接起来。R 在 urca package 中提供协整测试.

例如:

import rpy2.robjects as ro
r=ro.r

a = [10.23, 11.65, 12.36, 12.96]
b = [5.23, 6.10, 8.3, 4.98]

在R中定义ab:

ro.globalEnv['a']=ro.FloatVector(a)
ro.globalEnv['b']=ro.FloatVector(b)

调用 R cor(相关)函数:

print(r('cor(a,b,method="pearson")'))
# [1] 0.2438518

调用 R ca.po(Phillips & Ouliaris 协整检验)

r('library(urca)')
print(r('ca.po(cbind(a,b))'))
# ########################################################
# # Phillips and Ouliaris Unit Root / Cointegration Test #
# ########################################################

# The value of the test statistic is: 0

不过,我对协整并不熟悉,如果我对 ca.po 的使用完全无能,我深表歉意。

另请注意,R 本身就是编程语言,具有(至少目前)比 scipy 更丰富的统计函数库。可以直接运行 R(无需 Python)。这些调用看起来会更简单一些:

> a = c(10.23, 11.65, 12.36, 12.96)
> b = c(5.23, 6.10, 8.3, 4.98)
> z = cbind(a,b)
> z
a b
[1,] 10.23 5.23
[2,] 11.65 6.10
[3,] 12.36 8.30
[4,] 12.96 4.98
> ca.po(z)

########################################################
# Phillips and Ouliaris Unit Root / Cointegration Test #
########################################################

The value of the test statistic is: 0

关于python - 如何计算两个列表的协整?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2895992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com