Tangani pencilan dengan winsorization
Diberikan sebuah basetable dengan dua variabel: "sum\_donations" dan "donor\_id". "sum_donations dapat mengandung pencilan ketika donor menyumbang dalam jumlah yang tidak biasa. Oleh karena itu, Anda ingin melakukan winsorization pada variabel ini sehingga 5% jumlah tertinggi digantikan oleh nilai persentil 5% teratas.
Latihan ini adalah bagian dari kursus
Predictive Analytics Tingkat Menengah dengan Python
Petunjuk latihan
- Cetak nilai minimum
sum_donationsdan pastikan nilainya setidaknya 0. Lalu cetak nilai maksimumsum_donations. - Isilah persentil batas bawah yang sesuai. Karena semua nilai yang lebih besar dari 0 realistis dan sering terjadi, tidak perlu mengganti nilai yang lebih rendah dari nilai persentil batas bawah.
- Buat variabel baru "sum_donations_winsorized" yang merupakan versi winsorized dari variabel "sum_donations".
- Cetak nilai maksimum
sum_donations_winsorized.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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(____["____"].____())