es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python statsmodels ANOVA de 2 vías problemas de PatsyError y ValueError.

Intentando usar statsmodels en Python para un ANOVA de dos vías y obteniendo un error de Patsy (También intenté usar pingouin y también publiqué acerca de ese problema en otra publicación). Aquí está mi código donde “param” es una variable que defino anteriormente y “data_rostral” es mi marco de datos:

para param en params:
print(param)

modelo = ols ('param ~ C(ShamBlast) + C(RostralCaudal)+C(ShamBlast):C(RostralCaudal)', data=data_rostral).fit()
tabla_anova = sm.stats.anova_lm(modelo, typ=2)
tabla_anova

Aquí está el error que estoy recibiendo:

Error de Patsy: El número de filas entre el argumento de datos y "param" no coincide (23 versus 1)
    param ~ C(ShamBlast) + C(RostralCaudal)+C(ShamBlast):C(RostralCaudal)

Intenté ser menos sofisticado y usar “totalcells” en lugar de “param”, que es una de las variables dependientes definidas por “param”, pensando que calcularía cada ANOVA por separado, pero luego obtuve un ValueError.

    60             raise ValueError("wrong shape for coefs")
     61         if self.coefs.shape[0] == 0:
---> 62             raise ValueError("must have at least one row in constraint matrix")
     63         if self.coefs.shape[0] != self.constants.shape[0]:
     64             raise ValueError("shape mismatch between coefs and constants")

ValueError: Debe haber al menos una fila en la matriz de restricción

Gracias de antemano, sé que hay otras publicaciones similares a esta, pero no pude descifrar cómo aplicaban esas sugerencias a mi código.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que está encontrando dos errores diferentes al intentar realizar un ANOVA de dos vías utilizando statsmodels en Python. En primer lugar, el error de Patsy sugiere que hay una discrepancia entre la cantidad de filas en su argumento de datos y la variable param que definió anteriormente. Específicamente, parece que hay 23 filas en su marco de datos, pero solo 1 fila en su variable param.

    Una posible solución a esto podría ser asegurarse de que la variable param tenga la misma cantidad de filas que su marco de datos. Alternativamente, podría intentar definir la variable dependiente en el ANOVA directamente en lugar de usar la variable param.

    El segundo error que encontró es un ValueError que sugiere que hay una discrepancia de forma entre la matriz de coeficientes y la matriz de constantes. Esto podría surgir potencialmente si no especificó las dimensiones de entrada correctas para el ANOVA.

    Sin más información sobre sus datos y análisis específicos, es difícil proporcionar una solución más específica a sus problemas. Sin embargo, podría ser útil consultar la documentación de statsmodels o buscar ayuda de un estadístico o desarrollador experimentado en Python.

Comments are closed.