Tratar valores atípicos con winsorización
Se proporciona una basetable con dos variables: "sum\_donations" y "donor\_id". "sum_donations puede contener valores atípicos cuando donantes han aportado cantidades excepcionales. Por ello, quieres aplicar winsorización a esta variable para que el 5% de las cantidades más altas se reemplacen por el valor del percentil superior del 5%.
Este ejercicio forma parte del curso
Análisis predictivo intermedio en Python
Instrucciones del ejercicio
- Imprime el valor mínimo de
sum_donationsy comprueba que es al menos 0. Luego imprime el valor máximo desum_donations. - Indica el percentil adecuado para el límite inferior. Como todos los valores mayores que 0 son realistas y frecuentes, no es necesario reemplazar valores por debajo del percentil del límite inferior.
- Crea una nueva variable "sum_donations_winsorized" que sea una versión con winsorización de la variable "sum_donations".
- Imprime el valor máximo de
sum_donations_winsorized.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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(____["____"].____())