Hantera extremvärden med winsorisering
Du har en basetable med två variabler: "sum\_donations" och "donor\_id". "sum_donations" kan innehålla extremvärden när givare har donerat ovanligt stora belopp. Därför vill du winsorisera den här variabeln så att de 5 % högsta beloppen ersätts med värdet vid den övre 5-procentiga percentilen.
Den här övningen är en del av kursen
Prediktiv analys på mellannivå i Python
Övningsinstruktioner
- Skriv ut minimivärdet för
sum_donationsoch kontrollera att det är minst 0. Skriv sedan ut maximivärdet försum_donations. - Fyll i lämpligt nedre gränsvärde för percentilen. Eftersom alla värden över 0 är realistiska och förekommer ofta behöver du inte ersätta värden under den nedre percentilgränsen.
- Skapa en ny variabel "sum_donations_winsorized" som är en winsoriserad version av variabeln "sum_donations".
- Skriv ut maximivärdet för
sum_donations_winsorized.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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(____["____"].____())