Python >> Tutoriel Python >  >> Python

PROC MIXED Equivalent en Python pour l'ANOVA des moindres carrés moyens

Lorsque vous travaillez avec des données en tant que science des données ou analyste de données, l'ANOVA est très courante et utilisée par de nombreuses industries et entreprises pour comparer les moyennes de deux populations distinctes.

De nombreuses grandes entreprises et industries utilisent SAS (banque, assurance, etc.), mais avec l'essor de l'open source et la popularité de langages tels que Python et R, ces entreprises envisagent de convertir leur code en Python.

Une procédure couramment utilisée pour effectuer une ANOVA aux moindres carrés moyens dans SAS est la procédure PROC MIXED. Dans cet article, vous apprendrez l'équivalent Python de PROC MIXED pour l'ANOVA aux moindres carrés.

PROC MIXED Equivalent en Python pour l'ANOVA des moindres carrés moyens

Faire les moindres carrés signifie que l'ANOVA en Python est très simple. Il suffit de quelques lignes de code et vous pouvez adapter votre modèle ANOVA.

Nous utiliserons le package statsmodels pour ajuster nos modèles de régression et obtenir les résultats de l'ANOVA des moyennes des moindres carrés.

Supposons que nous ayons des données comme celles-ci, composées de données catégorielles et numériques :

Dans SAS, pour faire une ANOVA des moindres carrés moyens, nous ferions quelque chose comme ce qui suit :

Le code ci-dessus produit les résultats suivants :

Pour obtenir les mêmes résultats en Python, vous pouvez effectuer les opérations suivantes avec le package statsmodels :

import pandas as pd
import numpy as np
import statsmodels.api as sm
from statsmodels.formula.api import ols

model = 'height ~ C(type)'
anova = sm.stats.anova_lm(ols(model,data=data).fit(),type=2)
print(anova)

#output:
#            df      sum_sq     mean_sq         F    PR(>F)
#C(type)    1.0  266.944444  266.944444  5.540133  0.034981
#Residual  13.0  626.388889   48.183761       NaN       NaN

print(ex.groupby("type")["height"].describe())
#output: 
#      count       mean       std   min    25%   50%    75%   max
#type
#Cat     9.0  23.888889  4.859127  15.0  20.00  25.0  25.00  30.0
#Dog     6.0  32.500000  9.354143  20.0  26.25  32.5  38.75  45.0

Nous pouvons voir ici que les résultats sont les mêmes que SAS.

J'espère que cet article vous a été utile pour essayer d'obtenir l'équivalent Python de PROC MIXED.