Понимание и обработка отсутствующих данных

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

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

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

Типы отсутствующих данных

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

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

Случайное отсутствие данных (MAR): в этом случае факт отсутствия данных можно предсказать на основе других переменных в исследовании, но не на основе самих отсутствующих данных. Например, предположим, что мы знаем, что мужчины реже отвечают на вопросы опроса о депрессии, чем женщины. Если вероятность того, что человек пропустит вопрос о депрессии, связана только с его полом (который мы наблюдаем), но не с уровнем его депрессии (который не наблюдается), мы можем считать данные MAR. В зависимости от используемого метода анализа наборы данных с данными, которые являются MAR, могут быть смещены, и поэтому отсутствующие данные необходимо учитывать на ранней стадии процесса.

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

Отсутствующие решения для данных

Просто игнорируй это

Хотя это может показаться немного глупым, но если вы уверены, что ваши данные являются MCAR, иногда самым простым решением будет просто выбрать алгоритм, который может автоматически обрабатывать пропущенные значения. Например, XGBoost выбирает лучший метод вменения для каждой выборки без каких-либо дополнительных шагов.

Удаление

Одним из возможных способов обработки отсутствующих значений является удаление проблемных наблюдений или переменных. Это можно сделать несколькими способами:

По списку. В этом сценарии наблюдение с отсутствующим значением в любой переменной будет полностью удалено. Часто называемое «полным анализом случаев», удаление по списку является простым решением, если имеется лишь несколько наблюдений со значениями MCAR среди большого размера выборки. Однако, если размер выборки невелик или данные не являются MCAR, удаление по списку может внести систематическую ошибку в анализ.

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

Переменные целиком. Последний вариант — исключить из анализа всю переменную (столбец). Хотя эмпирического правила для того, когда это должно произойти, не существует, в ситуациях, когда отсутствует большой объем данных (скажем, 60%+) и переменная незначительна, при необходимости можно просто исключить ее.

Вменение

Вменение — или заполнение отсутствующих значений в соответствии с каким-либо правилом — обычно является лучшей стратегией обработки отсутствующих данных. Есть много способов приблизиться к этому, начиная от простого и заканчивая сложным. Несколько возможных вариантов обсуждаются ниже:

Среднее/медиана/мода

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

K ближайших соседей (KNN)
KNN вычисляет пропущенные значения, находя k наиболее похожих наблюдений (на основе некоторой меры расстояния) и взяв среднее/медиану /режим этих соседей. Этот метод требует определения необходимого количества соседей, а также того, как лучше всего измерять «расстояние». KNN хорошо работает как с непрерывными, так и с категориальными данными, а его непараметрический характер может быть очень полезен, если данные следуют необычному образцу. Однако ключевым недостатком алгоритма является то, что он довольно затратен в вычислительном отношении и плохо подходит для данных высокой размерности, где разница между ближайшим соседом и самым дальним невелика.

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

Последнее наблюдение перенесено вперед (LOCF)/Следующее наблюдение перенесено назад (NOCB)

Для данных временных рядов прямым вариантом является использование последнего наблюдаемого значения для любых отсутствующих данных. Точно так же мы могли бы использовать первое наблюдение после отсутствующего значения, которое называется следующим наблюдением, перенесенным назад (NOCB). Хотя эти методы просты в общении и понимании, они могут неадекватно учитывать колебания тенденций данных с течением времени.

Линейная интерполяция

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

Множественное вменение с помощью цепных уравнений (MICE)
При множественном вменении учитывается распределение наблюдаемых данных, и создается несколько правдоподобных оценок отсутствующего значения. Несколько наборов данных создаются и анализируются по отдельности для получения набора оценок параметров. Этот метод лучше учитывает неопределенность в пропущенных значениях и способен эффективно обрабатывать как непрерывные, так и категориальные данные.

Это не исчерпывающий список, и существует множество других методов импутации (например, импутация с использованием случайных лесов, GAN и т. д.). Не существует универсального варианта, который всегда лучше подходит для обработки отсутствующих данных, но важно учитывать характер ваших данных и отсутствующих значений, чтобы принять обоснованное решение о том, как лучше всего к ним подойти.

Первоначально опубликовано на https://www.inwt-statistics.com 31 марта 2020 г.