用溫莎化處理離群值
給定一個包含兩個變數的 basetable:"sum\_donations" 與 "donor\_id"。當捐款人有異常高額捐款時,"sum_donations" 可能出現離群值。因此,你想將此變數做溫莎化,將最高的 5% 金額以上位 5% 的百分位數值取代。
本練習屬於課程
Python 中級預測分析
練習說明
- 印出
sum_donations的最小值,並確認其至少為 0。接著印出sum_donations的最大值。 - 填入合適的下界百分位數。因為所有大於 0 的數值都合理且常見,因此不需要將低於下界百分位數的數值替換。
- 建立新變數「sum_donations_winsorized」,其為「sum_donations」的溫莎化版本。
- 印出
sum_donations_winsorized的最大值。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
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(____["____"].____())