Обработка выбросов с помощью винсоризации
Дана таблица 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(____["____"].____())