提前感谢您的帮助!
我有两个带有一些股票价格的列表,例如:
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中定义
a
和b
ro.globalEnv['a']=ro.FloatVector(a)
ro.globalEnv['b']=ro.FloatVector(b)
调用r
cor
(correlation)函数: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