Examinez les relations qualitatives

Nous allons maintenant mettre en pratique les tests statistiques que nous avons précédemment identifiés pour nos données qualitatives. Nous allons utiliser, en particulier, le test de Fisher pour explorer l'association entre le genre et le type de voyage et le test du Chi-2 pour examiner la relation entre la saison et le type de voyage.

Testez les associations avec Fisher

Pour exécuter le test de Fisher, il faut suivre les étapes suivantes.

  1. Chargez les donnĂ©es de “DonnĂ©es clients VertiGo nettoyĂ©es” qui liste le genre des clients et les types de voyages. Dans le cadre de cet exemple, vous devez isoler uniquement les genres “homme” et “femme” et les types de voyage “aventure” et “culturel” pour remplir les conditions du test exact de Fisher.

  2. Créez le tableau de contingence. 

  3. Calculez le test de Fisher en incluant l’odds ratio. 

  4. Calculez la valeur p associée.

Voici le code à exécuter pour obtenir les résultats.

import pandas as pd
from scipy.stats import fisher_exact

# Charger les données
file_path = '/mnt/data/Données+clients+VertiGo+nettoyées.csv'
data = pd.read_csv(file_path)

# Sélectionner les hommes et les femmes uniquement.
data = data[data['genre'] != "Autre"]

# Notre colonne contient des majuscules et des minuscules.
# Nous allons donc tout mettre en minuscule.
data["type de voyage"] = data["type de voyage"].str.lower()

# Créer le tableau de contingence
contingency_table_fm = pd.crosstab(data['genre'], data['type de voyage'])

# Exécuter le test exact de Fisher pour un tableau 2x2 (exemple : Aventure vs Culturel)
contingency_table_2x2_fm = contingency_table_fm[['aventure', 'culturel']]
odds_ratio, p_value = fisher_exact(contingency_table_2x2_fm)

print(f"Tableau de contingence 2x2:\n{contingency_table_2x2_fm}")
print(f"Odds Ratio: {odds_ratio}")
print(f"Valeur p: {p_value}")

Nous obtenons les résultats suivants :

  • Tableau de contingence : 

 

Aventure

Culturel

Femme

61

89

Homme

60

97

  • Odds ratio : 1,119

  • p-valeur : 0,642

Comment interpréter ces résultats ?

L'odds ratio de 1,19 indique que les femmes ont pratiquement les mĂȘmes chances de prĂ©fĂ©rer les voyages d'aventure par rapport aux voyages culturels que les hommes. Cet odds ratio est trĂšs proche de 1, indiquant une quasi-Ă©galitĂ©. MĂȘme si mathĂ©matiquement, il semble y avoir une lĂ©gĂšre probabilitĂ© supĂ©rieure pour les femmes, la valeur p va nous renseigner sur la significativitĂ© de cette diffĂ©rence.

La valeur p de 0,642 est bien supérieure au seuil de 0,05, ce qui signifie que nous n'avons pas suffisamment de preuves pour rejeter l'hypothÚse nulle. Par conséquent, il n'y a pas d'association statistiquement significative entre le genre et le type de voyage préféré pour les catégories "Aventure" et "Culturel".

Voici une vidéo qui récapitule les étapes à suivre pour réaliser un test avec Fisher et visualiser les données avec une heat map.

Testez les relations avec Chi-2

 Pour exĂ©cuter le test de Chi-2, il faut suivre les mĂȘmes Ă©tapes que pour le test de Fisher.

  1. À partir de “DonnĂ©es clients VertiGo nettoyĂ©es”, concentrez-vous sur les saisons de voyage et les types de voyages choisis par les clients de l’agence VertiGo.

  2. CrĂ©ez le tableau de contingence. Dans notre cas, nous l’avons dĂ©jĂ  gĂ©nĂ©rĂ© dans le chapitre “Identifiez les tests qualitatifs pertinents”. Le voici : 

 

Aventure

Culturel

Détente

Printemps

31

52

37

ÉtĂ©

82

132

64

Automne

39

61

42

Hiver

80

120

58

  1. Calculez le test du Chi-2 en prenant en compte les fréquences attendues et les degrés de liberté. 

  2. Calculez la valeur p associée.

Voici le code à exécuter pour obtenir les résultats.

import pandas as pd
from scipy.stats import chi2_contingency

# Charger les données
file_path = '/mnt/data/Données+clients+VertiGo+nettoyées.csv'
data = pd.read_csv(file_path)

# Créer le tableau de contingence
contingency_table = pd.crosstab(data['saison de voyage'], data['type de voyage'])

# Calculer le test du Chi-2
chi2_stat, p_value, dof, expected = chi2_contingency(contingency_table)

print(f"Statistique Chi-2: {chi2_stat}")
print(f"Valeur p: {p_value}")
print(f"Degrés de liberté: {dof}")
print("Fréquences attendues:")
print(expected)

Nous obtenons les résultats suivants :

  • Statistique Chi-2 : 5,392

  • Valeur p : 0,494

  • DegrĂ© de libertĂ© : 6

  • FrĂ©quences attendues : 

 

Aventure

Culturel

Détente

Printemps

34,88

54,89

30,23

ÉtĂ©

80,82

127,16

70,02

Automne

41,28

64,95

35,77

Hiver

75,00

118,00

64,98

Comment interpréter ces résultats ?

Eh bien pour ça, reprenons les choses dans l’ordre.

  • Statistique Chi-2 : La statistique Chi-2 de 5,392 indique la somme des Ă©carts au carrĂ© entre les frĂ©quences observĂ©es et attendues.

  • Valeur p : La valeur p de 0,494 est supĂ©rieure au seuil de 0,05, indiquant que nous n'avons pas suffisamment de preuves pour rejeter l'hypothĂšse nulle H0​. 

Nous pouvons conclure que, selon les données disponibles, la saison de voyage est indépendante du type de voyage préféré.

Voici une vidéo qui récapitule les étapes à suivre pour réaliser un test avec Chi-2 et visualiser les données avec une heat map.

À vous de jouer

Contexte

Vous avez analysĂ© “DonnĂ©es clients VertiGo nettoyĂ©es” dans la partie prĂ©cĂ©dente et vous avez normalement sĂ©lectionnĂ© le test de Chi-2 pour comparer les destinations des clients de VertiGo avec la saison. Il n’y a plus qu’à rĂ©aliser ce test !

Consignes

  1. Formulez les hypothĂšses H0 et H1.

  2. Sélectionnez les colonnes pertinentes. 

  3. Créez le tableau de contingence. 

  4. Visualisez les données avec le graphique adapté.

  5. Calculez le test du Chi-2 en prenant en compte les fréquences attendues et les degrés de liberté.

  6. Calculez la valeur p associée. 

Livrable

Vous devez réaliser le test en Python.

En résumé

  • Le test de Fisher examine l’association entre deux variables qualitatives lorsque les Ă©chantillons sont de petite taille.  

  • Le test de Chi-2 est pertinent pour analyser les relations entre les variables qualitatives lorsque les Ă©chantillons sont suffisamment grands.

  • Un odds ratio proche de 1 indique une absence de diffĂ©rence significative entre les groupes comparĂ©s dans le test de Fisher.

  • Une valeur p supĂ©rieure Ă  0,05 dans les tests de Fisher et de Chi-2 indique que la corrĂ©lation n'est pas statistiquement significative.

Nous avons testĂ© d’un cĂŽtĂ© les donnĂ©es quantitatives et de l’autre les donnĂ©es qualitatives. Mais que se passe-t-il quand on veut comparer des variables de types diffĂ©rents ? Et bien voyons cela ensemble dans la prochaine partie de ce cours !

Ever considered an OpenClassrooms diploma?
  • Up to 100% of your training program funded
  • Flexible start date
  • Career-focused projects
  • Individual mentoring
Find the training program and funding option that suits you best