Me gustaría conocer una forma de realizar ANCOVA (análisis de covarianza) usando Python con scipy. Básicamente es una comparación estadística de líneas de regresión. Sé que Python puede hacer ANOVA y también puede ajustar la línea de regresión con Scipy.stats. Sin embargo, no estoy seguro de cómo armarlos para obtener un ANCOVA efectivo, si es posible.ANCOVA en Python con estadísticas de Scipy/Numpy
Respuesta
ANCOVA se puede hacer con regresión y utilizando variables ficticias en la matriz de diseño para los efectos que dependen de la variable categórica.
Un ejemplo sencillo es en http://groups.google.com/group/pystatsmodels/browse_thread/thread/aaa31b08f3df1a69?hl=en Utilización de la clase OLS de scikits.statsmodels
parte pertinente de la construcción de matriz de diseño xg incluye números de grupo/etiquetas, x1 es continua variable explicativa
>>> dummy = (xg[:,None] == np.unique(xg)).astype(float)
>>> X = np.c_[x1, dummy[:,1:], np.ones(nsample)]
Estimar el modelo
>>> res2 = sm.OLS(y, X).fit()
>>> print res2.params
[ 1.00901524 3.08466166 -2.84716135 9.94655423]
>>> print res2.bse
[ 0.07499873 0.71217506 1.16037215 0.38826843]
>>> prstd, iv_l, iv_u = wls_prediction_std(res2)
"hipótesis de prueba que todos los grupos tienen la misma interceptar"
>>> R = [[0, 1, 0, 0],
... [0, 0, 1, 0]]
>>> print res2.f_test(R)
<F test: F=array([[ 91.69986847]]), p=[[ 8.90826383e-17]],
df_denom=46, df_num=2>
fuertemente rechazado por las diferencias en la intercepción son muy grandes
Update (dos años y medio más tarde):
scikits.statsmodels
tiene ha cambiado el nombre a statsmodels
ya la pregunta:
Con la última versión de modelos de estadísticas, es más conveniente usar las fórmulas para especificar los efectos categóricos y los efectos de interacción. statsmodels
usa patsy para manejar las fórmulas y crea las matrices de diseño.
Más información está disponible en los enlaces a la documentación de statsmodels en https://stackoverflow.com/a/19495920/333700
- 1. Python: estadísticas de código
- 2. estadísticas de matemáticas con Linq
- 3. Paquete de estadísticas de Java para estadísticas robustas
- 4. Estadísticas de SQL Server
- 5. Cómo obtener estadísticas del sistema con node.js
- 6. Aprendizaje de estadísticas aplicadas con un enfoque en R
- 7. ¿Es posible obtener estadísticas con TortoiseSVN?
- 8. cmake: estadísticas de compilación
- 9. Sistema de seguimiento y análisis de estadísticas en tiempo real en Python
- 10. Cómo calcular las estadísticas "t-test" con numpy
- 11. estadísticas de código de cupón
- 12. ¿Fingir las estadísticas de Oracle?
- 13. Por subproceso Estadísticas de CPU en Linux
- 14. Estadísticas del proceso de medición en Linux
- 15. ¿Cómo generar estadísticas de apalancamiento?
- 16. Herramientas estadísticas para programadores
- 17. Ehcache Estadísticas por clave
- 18. Estadísticas zonales QGIS
- 19. Hibernate: Generar estadísticas
- 20. Visual Studio Estadísticas de compilación
- 21. PHP versión adopción estadísticas?
- 22. ¿Por qué LASSO en sklearn (python) y el paquete de estadísticas matlab son diferentes?
- 23. Estadísticas Pregunta: Kernel Smoothing en R
- 24. Python: estadísticas de uso de memoria por tipos de objeto (o línea de código fuente)
- 25. ¿Número de estadísticas de instalaciones para paquetes PyPI?
- 26. Estadísticas/Monitor/Inspector para beanstalkd
- 27. Estadísticas de Detección/Navegador de JavaScript
- 28. ¿La mejor biblioteca para estadísticas en C++?
- 29. Estadísticas del fútbol americano en vivo API
- 30. Grafito: sumar todas las estadísticas que coinciden con un patrón?