Problème des comparaisons multiples
Le problème des comparaisons multiples survient lorsqu’un·e chercheur·se teste à répétition différentes variables/échantillons les uns contre les autres pour en vérifier la significativité. Par simple hasard, on s’attend à trouver occasionnellement un résultat statistiquement significatif.
Dans cet exercice, vous allez travailler sur des données de salaires des employé·e·s de la ville d’Austin (Texas). Vous comparerez leurs salaires à des données générées aléatoirement. Vous verrez à quelle fréquence ces données aléatoires sont « significatives » pour expliquer les salaires des employé·e·s. Une telle « significativité » serait évidemment fallacieuse, car des nombres aléatoires n’aident pas vraiment à expliquer quoi que ce soit !
Un DataFrame des salaires des agents de police (police_salaries_df) a été chargé pour vous, de même que les packages pandas sous pd, NumPy sous np, Matplotlib sous plt, et stats depuis SciPy.
Cet exercice fait partie du cours
Fondements de l’inférence en Python
Instructions
- Stockez le nombre de personnes dans l’ensemble de données dans
n_rows(chaque ligne correspond à une personne), et initialisez le nombre de résultats significatifs,n_significant, à zéro. - Écrivez une boucle
forqui s’exécute 1000 fois et génèren_rowsnombres aléatoires. - Calculez le R de Pearson et la p-valeur associée entre ces nombres générés aléatoirement et les salaires des policiers.
- Si la p-valeur est significative à 5 %, ajoutez 1 à
n_significantavec l’opérateur+=.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Compute number of rows and initialize n_significant
n_rows = ____
n_significant = ____
# For loop which generates n_rows random numbers 1000 times
for i in ____:
random_nums = np.random.uniform(size=____)
# Compute correlation between random_nums and police salaries
r, p_value = stats.____(____, random_nums)
# If the p-value is significant at 5%, increment n_significant
if ____ < ____:
____ += 1
print(n_significant)