Traiter les valeurs aberrantes par winsorisation
On vous fournit une basetable avec deux variables : "sum\_donations" et "donor\_id". "sum_donations peut contenir des valeurs aberrantes lorsque des donateurs ont donné des montants exceptionnels. Vous souhaitez donc winsoriser cette variable de façon à ce que les 5 % des montants les plus élevés soient remplacés par la valeur du 95e percentile.
Cette activité fait partie du cours
Analytique prédictive intermédiaire en Python
Instructions de l’exercice
- Affichez la valeur minimale de
sum_donationset vérifiez qu'elle est d'au moins 0. Ensuite, affichez la valeur maximale desum_donations. - Indiquez le percentile approprié pour la limite inférieure. Comme toutes les valeurs supérieures à 0 sont réalistes et fréquentes, il n'est pas nécessaire de remplacer les valeurs inférieures à la valeur du percentile de la limite inférieure.
- Créez une nouvelle variable « sum_donations_winsorized » qui est une version winsorisée de la variable « sum_donations ».
- Affichez la valeur maximale de
sum_donations_winsorized.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
from scipy.stats.mstats import winsorize
# Check minimum sum of donations
print(____["____"].____())
print(____["____"].____())
# Fill out the lower limit
lower_limit = ____
# Winsorize the variable sum_donations
basetable["sum_donations_winsorized"] = ____(____["____"], limits=[lower_limit, 0.05])
# Check maximum sum of donations after winsorization
print(____["____"].____())