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
<cours>Fondements de l’inférence en Python</cours>Instructions de l’exercice
- 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 ce code d’exemple.
# 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)