Gérer 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 versé des montants exceptionnels. Vous souhaitez donc winsoriser cette variable de sorte que les 5 % de montants les plus élevés soient remplacés par la valeur du 95e percentile.
Cet exercice fait partie du cours
Analytique prédictive intermédiaire en Python
Instructions
- Affichez la valeur minimale de
sum_donationset vérifiez qu’elle est au moins égale à 0. Puis affichez la valeur maximale desum_donations. - Renseignez le percentile approprié pour la borne 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 au percentile de la borne 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 cet exemple de code.
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(____["____"].____())