No creo que se haya implementado una prueba de cointegración para scipy. Puede estar mejor que using rpy2
para conectar Python con R. R proporciona pruebas de cointegración en el urca
package.
Por ejemplo:
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]
Definir a
y b
en R:
ro.globalEnv['a']=ro.FloatVector(a)
ro.globalEnv['b']=ro.FloatVector(b)
Call el R cor
función (correlación):
print(r('cor(a,b,method="pearson")'))
# [1] 0.2438518
Call el R ca.po
(Phillips & Ouliaris prueba de cointegración)
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
no estoy familiarizado con cointegración, sin embargo, por lo disculpas si mi uso de ca.po
es totalmente inepto.
También tenga en cuenta que R es el lenguaje de programación en sí mismo, con (al menos actualmente) una biblioteca más rica de funciones estadísticas que scipy
. Es posible ejecutar R directamente (sin Python). Las llamadas se vería un poco más simple:
> 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
http://stackoverflow.com/questions/12186994/johansen-cointegration-test-in-python – gliptak