Обработка пропущенных значений
Материал из MachineLearning.
| | Статья написана с использованием LLM ChatGPT, GPT-5.6 Thinking и проверена участником Vadim Iamaletdinov 22:22, 19 июля 2026 (MSD) |
Обработка пропущенных значений — совокупность методов анализа и преобразования данных, в которых часть наблюдений отсутствует. Пропуск может означать, что измерение не проводилось, значение было потеряно, вопрос оказался неприменим, респондент отказался отвечать либо система не смогла зарегистрировать результат.
Пропущенные значения встречаются в медицинских данных, анкетах, журналах информационных систем, показаниях датчиков, экономической статистике и обучающих выборках. Их нельзя рассматривать только как техническую помеху. Сам факт отсутствия значения иногда связан с объектом и содержит информацию. Например, отсутствие медицинского анализа может означать, что врач не счёл его необходимым, а отсутствие ответа в анкете — что вопрос воспринимался как чувствительный.
Некорректная обработка пропусков способна уменьшить объём выборки, внести систематическое смещение, исказить зависимости между признаками и привести к завышенной оценке качества модели. Поэтому выбор метода должен учитывать происхождение пропусков, цель анализа, типы переменных и способ последующей проверки результата.[1]
Обозначение пропусков
Пусть таблица данных содержит объекты и признаки
. Значение признака обозначим
. Для каждого элемента введём индикатор наблюдаемости:
Наблюдаемая часть данных обозначается , а отсутствующая —
. Механизм пропусков описывает вероятностную зависимость индикаторов
от наблюдаемых и ненаблюдаемых значений.
Почему возникают пропуски
Причины пропусков удобно разделять по источнику:
- ошибки сбора — датчик вышел из строя, запрос завершился ошибкой, запись была повреждена;
- особенности процедуры — измерение выполняется только при определённом условии;
- неприменимость — значение не имеет смысла для данного объекта;
- отказ сообщать информацию — типично для дохода, здоровья и других чувствительных признаков;
- ограничение бюджета — дорогое исследование проводится лишь для части объектов;
- объединение источников — разные базы данных содержат разные наборы полей;
- цензурирование и предел обнаружения — известно только, что величина меньше или больше некоторого порога;
- изменение схемы данных — новый признак появился позже и отсутствует в старых записях.
Перед применением математического метода необходимо отличить настоящий пропуск от отдельного содержательного состояния. Например, «гаража нет» не всегда следует кодировать так же, как «площадь гаража неизвестна».
Механизмы пропусков
Классификация механизмов пропусков связана не с внешним видом таблицы, а с вероятностной зависимостью между отсутствием данных и самими значениями.[1]
Полностью случайные пропуски
Механизм MCAR (Missing Completely At Random) означает, что вероятность пропуска не зависит ни от наблюдаемых, ни от отсутствующих значений:
При MCAR анализ только полных объектов может оставаться несмещённым, но всё равно теряет информацию и увеличивает дисперсию оценок. В реальных данных предположение MCAR часто слишком сильное.
Случайные пропуски при известных данных
Механизм MAR (Missing At Random) допускает зависимость пропуска от наблюдаемых переменных, но после их учёта не допускает дополнительной зависимости от отсутствующего значения:
Термин «случайный» здесь не означает, что пропуски распределены равномерно. Они могут систематически зависеть от известных признаков.
Неслучайные пропуски
При механизме MNAR (Missing Not At Random) вероятность пропуска зависит от отсутствующего значения даже после учёта наблюдаемых данных. По одной наблюдаемой таблице обычно невозможно надёжно доказать MAR или MNAR. Это предположения о процессе возникновения данных, и их следует обосновывать знаниями предметной области.
Первая диагностика
Для признака доля отсутствующих значений равна
Общая доля пропусков не показывает всей структуры. Полезно исследовать:
- какие признаки пропущены одновременно;
- связаны ли пропуски с целевой переменной;
- различаются ли наблюдаемые признаки у объектов с пропуском и без него;
- возникают ли пропуски в определённый период или у конкретного источника;
- являются ли некоторые наборы полей взаимоисключающими по смыслу.
Индикатор пропуска для признака можно определить как
Пропуски могут быть закодированы значениями -999, 0, пустой строкой или строкой unknown. Перед анализом их следует привести к единому представлению, не смешивая с допустимыми значениями.
Удаление объектов и признаков
Удаление объектов
Анализ только полных наблюдений называют complete-case analysis или listwise deletion. Он прост и не создаёт искусственных значений.
Удаление может быть допустимо, если пропусков мало, объекты с пропусками не отличаются систематически и оставшейся выборки достаточно. Основные риски — потеря информации и смещение при нарушении MCAR.
Удаление признаков
Признак с очень большой долей пропусков иногда исключают. Однако универсального порога не существует. Редко наблюдаемый медицинский анализ может быть чрезвычайно информативен, а полностью заполненный технический идентификатор — бесполезен.
Простая импутация
Импутацией называют замену пропущенных элементов оценёнными значениями.
Константа
Пропуски можно заменить фиксированным значением, например нулём или отдельным кодом. Такой метод безопасен только тогда, когда константа не смешивается с обычными значениями либо модель способна отличить её с помощью индикатора пропуска.
Для категориального признака часто создаётся отдельная категория «неизвестно». Она может отражать реальное состояние процесса, но не восстанавливает первоначальное значение.
Среднее, медиана и мода
Для числового признака распространена замена средним:
Медиана устойчивее к выбросам. Для категориального признака применяется наиболее частая категория.
Такая импутация проста и быстра, но уменьшает дисперсию признака, ослабляет корреляции и не отражает неопределённость восстановления. Среднее, медиана или мода должны вычисляться только по обучающей части данных.
Импутация по группам
Значение можно восстанавливать по статистике группы: например, медиане внутри возрастной категории или типа оборудования. Такой метод использует больше структуры, но небольшие группы дают нестабильные оценки и повышают риск переобучения.
Индикаторы пропусков
К восстановленному признаку можно добавить бинарный индикатор
Индикатор позволяет модели использовать сам факт отсутствия значения. После замены отсутствующего анализа медианой модель без индикатора не отличает реальное медианное значение от заполненного.
Индикаторы не устраняют смещение автоматически. Они лишь добавляют модели информацию о процессе наблюдения.
Импутация ближайшими соседями
Метод ближайших соседей восстанавливает значение по объектам, похожим по наблюдаемым признакам. Для числового признака применяется среднее или взвешенное среднее соседей, для категориального — голосование.
Преимущества метода:
- использование локальной структуры данных;
- возможность учитывать нелинейные зависимости;
- отсутствие единой глобальной параметрической модели.
Ограничения:
- чувствительность к масштабу признаков;
- высокая стоимость поиска соседей;
- ухудшение в пространствах большой размерности;
- сложность определения расстояния при различных шаблонах пропусков.
Исследование методов восстановления значений в микроматричных данных показало полезность KNN-импутации по сравнению с простыми заменами в рассмотренных авторами экспериментах.[1]
Модельная импутация
Для каждого признака с пропусками можно построить модель по остальным признакам. Числовые значения восстанавливаются регрессией, категориальные — классификацией.
Общая схема:
- выбрать признак с пропусками;
- обучить модель по строкам, где этот признак известен;
- предсказать отсутствующие значения;
- при необходимости повторить процедуру для других признаков.
Модель может быть линейной, деревом, случайным лесом или другой подходящей процедурой. Такой подход использует зависимости между переменными, но ошибки модели переносятся в восстановленные данные, а одна заполненная таблица скрывает неопределённость.
Итеративная импутация
Если пропуски имеются в нескольких столбцах, процедуру можно повторять циклически. Сначала выполняется простое начальное заполнение, затем каждый признак по очереди предсказывается по остальным. После нескольких проходов значения могут стабилизироваться.
Метод MICE (Multivariate Imputation by Chained Equations) задаёт отдельную условную модель для каждой переменной и последовательно генерирует заполненные наборы данных.[1]
Условные модели должны соответствовать типам переменных и предметным ограничениям. Например, вероятность должна оставаться между 0 и 1, возраст — быть неотрицательным, а категория — принадлежать допустимому множеству.
Множественная импутация
Одиночная импутация создаёт одно значение и делает его внешне таким же определённым, как наблюдаемое. Множественная импутация формирует правдоподобных заполненных наборов:
Каждый набор анализируется отдельно. Пусть оценка параметра в наборе равна
. Объединённая оценка:
Общая неопределённость учитывает разброс внутри каждой импутации и разброс между импутациями. Такой подход особенно важен для статистического вывода, доверительных интервалов и проверки гипотез.
В прогнозных задачах множественная импутация также возможна, но необходимо заранее определить, как обрабатываются новые объекты и как объединяются предсказания нескольких моделей.
EM-алгоритм и правдоподобие
В вероятностной модели параметры можно оценивать непосредственно по неполным данным. EM-алгоритм чередует два шага:
- E-шаг вычисляет ожидаемое значение полной логарифмической функции правдоподобия при текущих параметрах;
- M-шаг максимизирует это ожидаемое значение по параметрам.
Общая запись:
Следующее приближение параметров:
EM не обязательно создаёт завершённую таблицу. Его цель — оценка параметров вероятностной модели при наличии скрытых или пропущенных величин.[1]
Импутация случайным лесом
Метод missForest итеративно предсказывает пропущенные значения с помощью случайных лесов. Для числовых переменных используется регрессия, для категориальных — классификация. Метод предназначен для смешанных типов данных и может учитывать нелинейные зависимости и взаимодействия.[1]
Высокая гибкость не отменяет требований к валидации. Импутатор должен обучаться только на обучающей части, а процедура применения к новым данным должна быть заранее определена.
Алгоритмы со встроенной обработкой пропусков
Не все модели требуют предварительно заполненной таблицы. Некоторые алгоритмы способны учитывать пропуски внутри обучения и предсказания. Например, дерево может направлять отсутствующее значение в выбранную ветвь или рассматривать специальное направление для пропусков.
Преимущества встроенного подхода:
- отсутствует отдельная искусственная точечная замена;
- модель может использовать связь между пропуском и ответом;
- процедура обучения и предсказания согласована.
Ограничения:
- поведение зависит от конкретной реализации;
- модель может переобучиться на технические особенности источника данных;
- перенос в среду с другим механизмом пропусков может ухудшить качество;
- статистический смысл результата отличается от восстановления исходных значений.
Официальная документация scikit-learn описывает простую, многомерную и KNN-импутацию, индикаторы пропусков и перечень моделей, способных принимать NaN непосредственно.[1]
Пропуски в целевой переменной
Отсутствие признака и отсутствие правильного ответа — разные задачи.
Если целевая переменная неизвестна, объект обычно нельзя напрямую использовать в стандартном обучении с учителем. Возможные подходы:
- исключение объекта из контролируемой части обучения;
- получение дополнительной разметки;
- полууправляемое обучение;
- обучение модели механизма появления меток;
- использование объекта только для обучения представлений.
Простая импутация целевой переменной предсказанием той же модели создаёт риск подтвердить собственные предположения и занизить ошибку.
Утечка данных
Одна из самых частых ошибок — вычисление параметров импутации по всей таблице до разделения на обучающую и тестовую части.
Если среднее, модель соседей или итеративный импутатор использовали тестовые объекты, информация о тестовом распределении попала в обучение. Это утечка данных.
Правильная последовательность:
- разделить данные;
- обучить импутатор только на обучающей части;
- преобразовать обучающую часть;
- тем же обученным импутатором преобразовать проверочную и тестовую части;
- обучить модель на преобразованных обучающих данных;
- оценить на независимых данных.
При скользящем контроле импутатор должен обучаться заново внутри каждого разбиения. Поэтому импутацию и модель удобно объединять в единый программный конвейер.
Пример конвейера в scikit-learn
from sklearn.impute import SimpleImputer
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
model = make_pipeline(
SimpleImputer(
strategy="median",
add_indicator=True
),
LogisticRegression(max_iter=1000)
)
model.fit(X_train, y_train)
prediction = model.predict(X_test)
В этом примере медианы вычисляются при вызове fit только по обучающим данным, а затем применяются к новым объектам. Параметр add_indicator=True добавляет признаки, показывающие наличие пропусков.[1]
Как оценивать качество импутации
Метод импутации следует оценивать в соответствии с целью задачи.
Искусственное удаление известных значений
Часть известных значений временно скрывают, затем сравнивают восстановление с оригиналом. Для числовых признаков применяются средняя абсолютная или квадратичная ошибка, для категориальных — доля совпадений.
Недостаток такого эксперимента состоит в том, что искусственный механизм удаления может не соответствовать настоящему. Случайное маскирование имитирует MCAR, тогда как реальные пропуски могут быть MAR или MNAR.
Качество итогового прогноза
В прогнозной задаче сравнивают полные конвейеры по независимой валидации:
- простую импутацию;
- простую импутацию с индикаторами;
- сложную модельную импутацию;
- алгоритм со встроенной обработкой пропусков;
- удаление признаков или объектов.
Лучший восстановитель отдельных ячеек не обязательно даёт лучшую итоговую модель.
Сохранение статистических свойств
Для научного анализа важно оценивать не только ошибку заполнения, но и сохранение:
- средних и дисперсий;
- корреляций;
- коэффициентов модели;
- стандартных ошибок;
- доверительных интервалов;
- содержательных ограничений.
Одна точечная импутация часто делает интервалы излишне узкими, потому что не учитывает неопределённость восстановленных значений.
Выбор метода
Универсально лучшего метода нет.
| Ситуация | Возможный исходный вариант | Основной риск |
|---|---|---|
| Мало пропусков и большой набор данных | Удаление строк как базовый эксперимент | Смещение, если пропуски не MCAR |
| Числовые признаки и простой конвейер | Медиана и индикаторы | Потеря зависимостей между признаками |
| Категориальные признаки | Отдельная категория или мода | Смешение разных причин пропуска |
| Локальная структура данных | KNN-импутация | Высокая стоимость и чувствительность к масштабу |
| Сложные зависимости и смешанные типы | Итеративная модель или случайный лес | Переобучение и сложность применения к новым данным |
| Статистический вывод | Множественная импутация или модель правдоподобия | Ошибочная спецификация моделей |
| MNAR | Явная модель механизма и анализ чувствительности | Непроверяемые предположения |
| Поддержка пропусков моделью | Встроенная обработка | Зависимость от реализации и среды |
Практически полезно начинать с простого прозрачного базового варианта, а затем проверять, даёт ли усложнение устойчивое улучшение на независимых данных.
Типичные ошибки
Автоматическая замена всех пропусков нулём
Ноль может быть допустимым значением и иметь иной смысл. Искусственная концентрация нулей способна изменить масштаб и зависимости.
Среднее по всей выборке
Это утечка данных. Статистика должна вычисляться только на обучающей части.
Использование ответа при обработке новых объектов
Во время эксплуатации истинная целевая переменная неизвестна. Конвейер должен воспроизводить только ту информацию, которая доступна в момент предсказания.
Игнорирование причины пропуска
Одинаковый код может объединять отказ отвечать, неприменимость вопроса и техническую ошибку. Эти случаи следует по возможности различать.
Проверка качества после общей импутации
Если импутатор обучен на всей таблице до валидации, оценка качества завышена.
Сравнение только по ошибке восстановления
Целью может быть прогноз, оценка эффекта или доверительный интервал. Метрика импутации должна соответствовать конечной задаче.
Слишком сложный метод без базового сравнения
Сложная импутация может быть медленнее и менее устойчивой, не улучшая итоговое качество. Простая медиана с индикаторами часто служит полезной контрольной точкой.
Пропуски во временных рядах
Во временных данных порядок наблюдений важен. Методы включают:
- прямое и обратное заполнение;
- линейную или сплайновую интерполяцию;
- скользящие статистики;
- фильтрацию состояния;
- модели временных рядов;
- модели, учитывающие нерегулярные интервалы.
При прогнозировании запрещено использовать будущие значения для заполнения прошлого, если в реальном времени они недоступны. Обычная двусторонняя интерполяция может создать утечку будущего.
Длинный промежуток без наблюдений отличается от одного случайного пропуска. Вместе с заполненным значением полезно хранить длительность с момента последнего измерения и маску наблюдаемости.
Категориальные и структурные пропуски
Для категориальной переменной отсутствующее значение можно:
- заменить модой;
- выделить в отдельную категорию;
- предсказать классификатором;
- включить в совместную вероятностную модель.
Структурный пропуск означает, что поле неприменимо. Например, информация о возрасте ребёнка отсутствует у человека без детей. Такое значение не следует восстанавливать средним возрастом. Более корректно кодировать структуру анкеты отдельными признаками.
MNAR и анализ чувствительности
При MNAR результат зависит от предположений, которые невозможно полностью проверить по наблюдаемым данным. Один из подходов — анализ чувствительности:
- построить базовую модель;
- задать несколько правдоподобных сценариев для ненаблюдаемых значений;
- повторить анализ;
- проверить, меняется ли содержательный вывод.
Например, после импутации можно систематически сдвигать восстановленные значения и оценивать устойчивость результата. Такой анализ не устраняет неопределённость, но делает её явной.
Документирование процедуры
В отчёте следует указывать:
- долю и структуру пропусков;
- специальные коды отсутствия;
- предположения о механизме;
- метод импутации для каждого типа признаков;
- использование индикаторов;
- место импутации в конвейере;
- способ обработки новых объектов;
- число множественных импутаций;
- результаты анализа чувствительности;
- сравнение альтернатив;
- версию программной реализации.
Без этих сведений эксперимент трудно воспроизвести, а итоговую оценку качества — интерпретировать.
История
Проблема неполных наблюдений давно рассматривается в статистике, но современная классификация механизмов пропусков связана с работой Д. Рубина 1976 года.[1] В 1977 году А. Демпстер, Н. Лэрд и Д. Рубин представили общий EM-алгоритм для оценки максимального правдоподобия по неполным данным.[1]
В дальнейшем развивались множественная импутация, модели совместных распределений и цепочки условных моделей. MICE стало распространённой практической реализацией множественной импутации для многомерных данных.[1]
С развитием машинного обучения появились непараметрические и ансамблевые методы, включая KNN-импутацию и missForest.[1][1] Современные программные библиотеки объединяют импутацию, индикаторы пропусков и модели со встроенной поддержкой отсутствующих значений.
См. также
- Предобработка данных
- Утечка данных
- Скользящий контроль
- Переобучение
- Метод ближайших соседей
- Случайный лес
- EM-алгоритм
- Байесовская статистика
- Выброс
- Машинное обучение
- Временной ряд
Примечания
Литература
- Little R. J. A., Rubin D. B. Statistical Analysis with Missing Data. — 3-е изд.. — Hoboken: Wiley, 2019. — 464 с. — ISBN 978-0-470-52679-8
- van Buuren S. Flexible Imputation of Missing Data. — 2-е изд.. — Boca Raton: CRC Press, 2018. — 444 с.
- Rubin D. B. Inference and Missing Data // Biometrika. — 1976. — Т. 63. — № 3. — С. 581—592.
- Dempster A. P., Laird N. M., Rubin D. B. Maximum Likelihood from Incomplete Data via the EM Algorithm // Journal of the Royal Statistical Society. Series B. — 1977. — Т. 39. — № 1. — С. 1—38.
- van Buuren S., Groothuis-Oudshoorn K. mice: Multivariate Imputation by Chained Equations in R // Journal of Statistical Software. — 2011. — Т. 45. — № 3. — С. 1—67.
- Stekhoven D. J., Bühlmann P. MissForest — Non-parametric Missing Value Imputation for Mixed-type Data // Bioinformatics. — 2012. — Т. 28. — № 1. — С. 112—118.
- Imputation of missing values2026-07-19.

