ウィンザー化で外れ値を処理する
"sum\_donations" と "donor\_id" の2つの変数を持つ basetable が与えられています。寄付額が極端に大きい寄付者がいると、"sum_donations" には外れ値が含まれる可能性があります。そこで、この変数をウィンザー化し、上位5%の金額を上位5%のパーセンタイル値で置き換えたいとします。
この演習はコースの一部です
Pythonで学ぶ中級予測分析
演習の手順
sum_donationsの最小値を表示し、少なくとも0であることを確認してください。次にsum_donationsの最大値を表示します。- 適切な下側のパーセンタイルの下限を入力してください。0より大きい値は現実的で頻繁に発生するため、下側のパーセンタイル未満の値を置き換える必要はありません。
- 「sum_donations」変数をウィンザー化した新しい変数「sum_donations_winsorized」を作成します。
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(____["____"].____())