用温莎化处理异常值
给定一个包含两个变量的 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(____["____"].____())