Gestire gli outlier con la winsorizzazione
Ti viene fornita una basetable con due variabili: "sum\_donations" e "donor\_id". "sum_donations può contenere outlier quando alcuni donatori hanno versato importi eccezionali. Per questo motivo vuoi applicare la winsorizzazione a questa variabile in modo che il 5% degli importi più alti venga sostituito con il valore del percentile superiore al 5%.
Questo esercizio fa parte del corso
Analisi predittiva intermedia in Python
Istruzioni dell'esercizio
- Stampa il valore minimo di
sum_donationse verifica che sia almeno 0. Poi stampa il valore massimo disum_donations. - Compila il percentile corretto per il limite inferiore. Poiché tutti i valori maggiori di 0 sono realistici e ricorrono spesso, non è necessario sostituire i valori inferiori al valore del percentile del limite inferiore.
- Crea una nuova variabile "sum_donations_winsorized" che sia la versione winsorizzata della variabile "sum_donations".
- Stampa il valore massimo di
sum_donations_winsorized.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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(____["____"].____())