提前感谢您的帮助!
我有两个带有一些股票价格的列表,例如:

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]

但是,我没有找到一种方法来计算两个列表的联合集成。
你能给我一些建议吗?
非常感谢你!

最佳答案

我不相信有一个协整测试已经实施为科学。您最好将python与r接口using rpy2。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)

调用rcor(correlation)函数:
print(r('cor(a,b,method="pearson")'))
# [1] 0.2438518

调用rca.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

10-04 12:01