Test G sous python
L'essentiel de cette page
Le test G est beaucoup plus robuste que le test de Khi2 puisqu'il fonctionne mieux et aussi bien avec les petits effectifs que les grands.
Pour le faire, la démarche est simple : 1) Faire un contingent avec crosstab et2) lui appliquer le test avec scipy.
- Charger un jeu de données (exemple)
import seaborn as sns
titanic = sns.load_dataset('titanic')
print(titanic.head(6))
2. Faire un contingent entre 2 variables d'intérêt (qualitatives)
Remarque : on peut aussi faire une boucle pour croiser toutes les colonnes.
import pandas as pd
matrice= pd.crosstab(titanic.pclass, titanic.sex,rownames=["Class"],colnames=["Sexe"])
3. Faire le test G avec scipy
from scipy.stats import *
g, p, dof, expctd = chi2_contingency(matrice, lambda_="log-likelihood")
print("G={}; df={}; P={}".format(g, dof, p)) # p : p-value
Ici, la valeur p est inférieure à 0,05, on va en déduire qu'il y a une répartition inégale des sexes des passagers en fonction de la classe sur le Titanic.