Вменение в больших данных

Мне нужно вменять недостающие значения. Мой набор данных содержит около 800 000 строк и 92 переменных. Я пробовал kNNImpute в пакете вменения в r, но похоже, что набор данных слишком велик. Любые другие пакеты / метод в R? Я бы предпочел не использовать среднее значение для замены пропущенных значений. благодарю вас

2 ответа

1) Вы можете попробовать

library(sos)
findFn("impute")

Это показывает 400 матчей в 113 пакетах. Это показывает 400 совпадений в 113 пакетах: вы можете сузить их в соответствии с вашими требованиями функции вменения.

2) Вы видели / пробовали Hmisc?

Описание: библиотека Hmisc содержит множество функций, полезных для анализа данных, графики высокого уровня, операций утилит, функций для вычисления размера и мощности выборки, импорта наборов данных, вменения пропущенных значений, расширенного создания таблиц, кластеризации переменных, манипуляции с символьными строками, преобразования S объекты в код LaTeX и перекодирование переменных.

3) Возможно, мыши

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

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

Одна вещь, о которой вы должны знать: MICE - МЕДЛЕННО. Работая над таким большим набором данных, если вы намереваетесь использовать MICE, я настоятельно рекомендую вам использовать вычислительное облако - в противном случае вам лучше спланировать себя заранее, потому что с матрицей 800k x ~100 это может занять несколько дней, чтобы выполнить работу, в зависимости от того, как вы указали свою модель.

MICE предлагает вам ряд различных методов вменения, которые будут использоваться в зависимости от типа переменной, которая должна быть вменена. Самым быстрым является прогнозирование среднего значения. Изначально PMM предназначался для расчета непрерывных данных, но кажется, что pmm достаточно гибок, чтобы приспособиться к другим типам переменных. Взгляните на этот пост Пола Эллисона и ответ Стефа ван Бюрен: http://statisticalhorizons.com/predictive-mean-matching

(Я вижу, что это три года пост, но я использую MICE и был поражен тем, насколько мощным - и часто медленным - это может быть!)

Другие вопросы по тегам