Этот пост логично бы смотрелся в цикле про АБ перед проверками, но я чёт упустил 🙂 поэтому пусть будет не номерной, а просто как памятка.
Для любого анализа, включая анализ экспериментов, данные нужно сначала почистить и подготовить.
Этот процесс включает в себя несколько шагов:
1️⃣ Трансформируй типы данных. В первую очередь проверь все ли данные соответствуют своим типам: целочисленные — интеджерам, с плавающей точкой — флоатам, категориальные — факторам, даты — датам.
2️⃣ Преобразуй потери и пропуски. Все NA’s стоит обработать. Тут есть несколько подходов. Если в масштабах датасета их не много, возможно проще их будет удалить. Если удалять не хочется, замени NA’s средними или медианными значениями столбца (этот процесс называется импутацией). С NULL'ами по ситуации, иногда их не надо трогать, иногда можно импутировать.
3️⃣ Почисти выбросы. Чистить выбросы или нет — зависит от данных. Чаще всего чистить придётся, но ориентируйся на цели анализа. Если ты анализируешь деньги, то дважды подумай можешь ли выкидывать экстремально высокие чеки, или это сломает тебе картину. Возможно, лучше будет их импутировать.
Если решишь срезать, то тут есть несколько популярных методов. Я чаще всего срезаю выбросы по порогу 1.5*IQR, но можно использовать и ±2 или ±3 SD, а R вообще умеет идентифицировать выбросы напрямую из боксплота
boxplot.stats(df$metric)$out (в Python такого аналога не завезли).Для подготовки данных к ML список действий намного шире, но для базового анализа хватает и этих шагов.
