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.

  1. 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.