預先感謝您的幫助!如何計算兩個列表的協整?
我有兩個名單有些股票的價格,例如:
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]
但是,我沒發現一種計算兩個列表的協整的方法。
你能給我一些建議嗎?
非常感謝!
預先感謝您的幫助!如何計算兩個列表的協整?
我有兩個名單有些股票的價格,例如:
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中的協整測試。
例如:
ro.globalEnv['a']=ro.FloatVector(a)
ro.globalEnv['b']=ro.FloatVector(b)
呼叫將R cor
(相關性)功能:
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
print(r('cor(a,b,method="pearson")'))
# [1] 0.2438518
呼叫將R ca.po
(菲利普斯& 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
請問,你能舉個例子嗎? – Damiano 2010-05-24 11:03:13
請參閱本statsmodels拉入請求http://github.com/statsmodels/statsmodels/pull/453
http://stackoverflow.com/questions一個很好的例子/ 12186994/johansen-cointegration-test-in-python – gliptak 2013-12-12 02:23:15