Multiple Imputation by Chained Equations (MICE) — это метод множественного заполнения пропусков, также известный как Fully Conditional Specification (FCS) или последовательная регрессионная множественная импутация. Он позволяет не просто заполнить пропуски одним значением, а создать несколько (обычно 5–20) правдоподобных полных версий данных, чтобы учесть неопределённость, связанную с пропусками.

Основная идея

  1. Создаётся (m) заполненных наборов данных.
  2. В каждом наборе пропущенные значения замещаются значениями, сгенерированными из условных распределений на основе остальных переменных.
  3. Каждый набор анализируется отдельно стандартными методами (например, регрессией).
  4. Результаты объединяются по правилам Рубина, которые учитывают разброс как внутри одного набора, так и между наборами.

Как работает MICE

  1. Инициализация. Пропуски временно заполняются простыми способами (средним, медианой или случайными значениями из наблюдаемых).
  2. Цикл по переменным. Для каждой переменной с пропусками:
    • она считается зависимой переменной;
    • остальные переменные (включая уже заполненные) используются как предикторы;
    • строится модель на объектах, где эта переменная наблюдалась;
    • из предсказательного распределения генерируются новые значения для пропусков.
  3. Повторение. Шаг 2 выполняется для всех переменных по очереди. Весь цикл повторяется несколько раз (итераций) до сходимости.
  4. Множественность. Весь процесс повторяется (m) раз с разными случайными seed, получается (m) заполненных наборов.
  5. Анализ и объединение. Каждый набор анализируется отдельно, затем оценки и стандартные ошибки объединяются по правилам Рубина.

Модели для разных типов переменных

  • Непрерывные: линейная регрессия, predictive mean matching (PMM).
  • Бинарные: логистическая регрессия.
  • Категориальные: полиномиальная или пропорциональная логистическая регрессия.
  • Счётные: пуассоновская или отрицательная биномиальная регрессия.

Отличие от обычной итеративной импутации

  • IterativeImputer в scikit-learn обычно делает одиночную импутацию — возвращает один заполненный набор.
  • MICE — это множественная импутация: несколько наборов + объединение результатов, что позволяет корректно оценить неопределённость из-за пропусков.

Преимущества

  • Гибкость: можно задавать разные модели для разных переменных.
  • Сохраняет взаимосвязи между признаками.
  • Даёт статистически обоснованные выводы при условии MAR (missing at random — пропуски случайны при учёте наблюдаемых переменных).
  • Можно включать вспомогательные переменные.

Недостатки

  • Вычислительно затратен.
  • Требует настройки моделей и проверки сходимости.
  • Предполагает MAR; при MNAR (пропуски не случайны) нужны дополнительные анализы чувствительности.
  • Сложнее автоматизировать, чем простые методы.

Пример на R

library(mice)
imp <- mice(data, m = 5, method = c("pmm", "logreg", "polyreg"), maxit = 10)
fit <- with(imp, lm(y ~ x1 + x2))
pool(fit)

Пример на Python (упрощённо)

from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer
 
imputations = []
for seed in range(5):
    imp = IterativeImputer(max_iter=10, sample_posterior=True, random_state=seed)
    imputations.append(imp.fit_transform(X))
# далее анализ каждого набора и объединение результатов

В Python также есть специализированные пакеты, например statsmodels.imputation.mice и miceforest.

Таким образом, MICE — это мощный и гибкий подход к работе с пропусками, который часто используется в статистике, эпидемиологии, социальных и медицинских исследованиях, где важно не только заполнить данные, но и получить корректные оценки неопределённости.