Multiple Imputation by Chained Equations (MICE) — это метод множественного заполнения пропусков, также известный как Fully Conditional Specification (FCS) или последовательная регрессионная множественная импутация. Он позволяет не просто заполнить пропуски одним значением, а создать несколько (обычно 5–20) правдоподобных полных версий данных, чтобы учесть неопределённость, связанную с пропусками.
Основная идея
- Создаётся (m) заполненных наборов данных.
- В каждом наборе пропущенные значения замещаются значениями, сгенерированными из условных распределений на основе остальных переменных.
- Каждый набор анализируется отдельно стандартными методами (например, регрессией).
- Результаты объединяются по правилам Рубина, которые учитывают разброс как внутри одного набора, так и между наборами.
Как работает MICE
- Инициализация. Пропуски временно заполняются простыми способами (средним, медианой или случайными значениями из наблюдаемых).
- Цикл по переменным. Для каждой переменной с пропусками:
- она считается зависимой переменной;
- остальные переменные (включая уже заполненные) используются как предикторы;
- строится модель на объектах, где эта переменная наблюдалась;
- из предсказательного распределения генерируются новые значения для пропусков.
- Повторение. Шаг 2 выполняется для всех переменных по очереди. Весь цикл повторяется несколько раз (итераций) до сходимости.
- Множественность. Весь процесс повторяется (m) раз с разными случайными seed, получается (m) заполненных наборов.
- Анализ и объединение. Каждый набор анализируется отдельно, затем оценки и стандартные ошибки объединяются по правилам Рубина.
Модели для разных типов переменных
- Непрерывные: линейная регрессия, 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 — это мощный и гибкий подход к работе с пропусками, который часто используется в статистике, эпидемиологии, социальных и медицинских исследованиях, где важно не только заполнить данные, но и получить корректные оценки неопределённости.