Это вторая статья из четырех, описывающих мой рабочий процесс в конкурсе Driven Data Pump it Up. Нажмите здесь, чтобы прочитать первую статью об EDA.

MCAR, MAR и MNAR

Отсутствующие данные — это то, с чем нам приходится иметь дело практически в любом наборе данных, с которым мы сталкиваемся. Данные могут отсутствовать по множеству причин. Причина этого отсутствия важна, потому что она влияет на ваши варианты вменения. Данные могут отсутствовать полностью случайным образом (MCAR). Это означает, что не существует систематического механизма, который мог бы объяснить, почему отсутствуют определенные точки данных. В случае высоты GPS это будет означать, что отсутствие не может быть объяснено такими факторами, как расположение точки водопоя, лицо, записавшее высоту GPS, время года или любой другой фактор. Он просто отсутствует совершенно случайно.

Теперь учтите, что высота GPS отсутствует совершенно случайно. В случае, если высота GPS с меньшей вероятностью будет записана в сезон дождей, это приведет к случайному отсутствию данных (MAR). Почему это актуально? Что ж, отсутствующие и доступные данные больше не поступают из одного и того же распределения, поэтому вы не можете использовать среднее значение доступных данных для вменения отсутствующих высот GPS.

Хуже того, в случаях, когда высота GPS записывается только для насосов высотой до 1000 метров, данные будут отсутствовать не случайно (MNAR). Если бы это было так, у нас не было бы информации в нашем наборе данных для вменения этих отсутствующих значений.

Наши данные случайно отсутствуют?

Итак, наши данные MCAR или MNAR? Чтобы ответить на этот вопрос, я использую пакет python под названием Missingno. В этой библиотеке есть несколько отличных опций для визуализации отсутствия вашего набора данных и просмотра того, как отсутствие одного объекта коррелирует с отсутствием другого объекта.

Я создал матрицу Missingno, чтобы увидеть, есть ли какие-либо закономерности в моем отсутствии, и ничего себе, некоторые из моих данных, конечно же, не исчезли полностью случайно. Существует довольно сильная корреляция между отсутствием года постройки, населения и высоты GPS.

Какой метод вменения следует выбрать?

Существует множество методов, которые вы можете использовать для вменения отсутствующих данных, и каждый из них имеет свои собственные допущения, преимущества и недостатки. Популярным методом является вменение отсутствующих данных по среднему значению, моде или медиане доступных данных. Его легко выполнить, и он хорошо работает, когда ваши данные отсутствуют полностью случайным образом.

Основным ограничением использования этого метода является то, что он имеет тенденцию уменьшать дисперсию ваших данных, особенно когда отсутствует большой процент данных. Это проблематично, потому что дисперсия — это то, что нужно вашей модели для обнаружения шаблонов, скрытых в ваших данных. Улучшение простого вменения среднего заключается в использовании, например, средней GPS-высоты региона или другого соответствующего признака в вашем наборе данных.

Другой популярной стратегией вменения является MICE, сокращенно от Multiple Imputation by Chained Equations. MICE запускает несколько итераций моделей регрессии в вашем наборе данных и заменяет отсутствующие значения в признаке прогнозом, который он извлек из ваших доступных данных, прежде чем перейти к следующему признаку. MICE может быть немного более вычислительным, но он может дать отличные результаты, когда данные MAR.

Сравнение стратегий вменения

Давайте сравним три стратегии вменения и посмотрим, как они влияют на распределение и дисперсию высоты GPS.

1. Внести общее среднее значение высоты GPS.

2. Рассчитать с помощью высоты GPS по населенным пунктам, лга, округам и регионам (т. е. продвигаться вверх от уровня населенного пункта к уровню региона на основе имеющихся данных о местоположении точки водоснабжения)

3. Вменение с использованием MICE

Какая стратегия вменения данных сработала лучше всего?

MICE сохраняет форму высоты GPS и величину дисперсии лучше, чем две другие стратегии. Вменение среднего оказывает наиболее существенное влияние на распределение высоты GPS, поскольку все отсутствующие данные заменяются одним значением. Таким образом, дисперсия после вменения среднего оказывается наименьшей. Ручное вменение оценок где-то посередине. Он использует больше различных значений для вменения отсутствующих данных, но использует только информацию о местоположении, тогда как MICE использует всю доступную информацию для вменения высоты GPS.

Главный вывод здесь заключается в том, что стоит поиграть с различными стратегиями вменения и посмотреть, какая из них лучше всего подходит для ваших данных.

Весь код, используемый в этой статье, можно найти на Github.

В следующей статье мы обсудим выбор функций и проектирование функций.

Ссылки и дополнительная литература

· Акинфадерин, В. 2017. Загадка недостающих данных: методы исследования и условного исчисления. https://medium.com/@WalePhenomenon/missing-data-conundrum-exploration-and-imputation-techniques-9f40abe0fd87

· Brownlee, 2020. Итеративное вменение пропущенных значений в машинном обучении. https://machinelearningmastery.com/iterative-imputation-for-missing-values-in-machine-learning/

· Хаши, З. 2018. Разница между отсутствующими данными MAR, MCAR и MNAR. https://www.linkedin.com/pulse/difference-between-mar-mcar-mnar-missing-data-zakarie-a-hashi/