Пакет 'mouse' R не вменяет данные - PullRequest
0 голосов
/ 31 октября 2018

Я запустил регрессию, чтобы заменить отсутствующие данные в наборе данных, и хочу сравнить ее с результатами использования пакета 'mice' Stef va Buuren

Я ссылаюсь на эту ссылку здесь на перекрестной проверке Ссылка на сообщение

Я также читаю Это схожий синтаксис и использование.

Мой код:

imp <- mice(without_response, method = "norm.predict", m = 1) 
#Impute data
imp_with_mice <- complete(imp) # Store data

Когда я вывожу:

imp_with_mice[impute_here,]

чтобы получить строки, которые должны быть вменены, ни одно из значений не заменяется. У меня изначально было '?' где отсутствующие данные были. Теперь я попробовал «NA» как строку, а затем «NA» без кавычек, чтобы напоминать пост cv.

Ни в коем случае я не могу заставить мышей заменить мои значения в 16 столбце на что-либо вообще.

Пожалуйста, помогите мне с использованием.

Это примеры строк, в которых можно ожидать замены переменной:

      V1  V2 V3 V4 V5 V6 V7 V8 V9 V10 
24 1057013 8  4 5   1  2 NA  7  3  1 
41 1096800 6  6 6   9  6 NA  7  8  1

Кроме того, я получаю этот экран при запуске.

iter imp variable 1 1 2 1 3 1 4 1 5 1

Предупреждающее сообщение:

“Number of logged events: 1”

Дополнительная информация:

str(without_response[impute_here,])

'data.frame':   16 obs. of  10 variables:
$ V1 : int  1057013 1096800 1183246 1184840 1193683 1197510
1241232 169356 432809 563649 ...
$ V2 : int  8 6 1 1 1 5 3 3 3 8 ...
$ V3 : int  4 6 1 1 1 1 1 1 1 8 ...
$ V4 : int  5 6 1 3 2 1 4 1 3 8 ...
$ V5 : int  1 9 1 1 1 1 1 1 1 1 ...
$ V6 : int  2 6 1 2 3 2 2 2 2 2 ...
$ V7 : chr  NA NA NA NA ...
$ V8 : int  7 7 2 2 1 3 3 3 2 6 ...
$ V9 : int  3 8 1 1 1 1 1 1 1 10 ...
$ V10: int  1 1 1 1 1 1 1 1 1 1 ...

summary(without_response[impute_here,])

      V1                V2              V3              V4       
Min.   :  61634   Min.   :1.000   Min.   :1.000   Min.   :1.000  
1st Qu.: 595517   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000  
Median :1057040   Median :3.000   Median :1.000   Median :2.500  
Mean   : 857578   Mean   :3.375   Mean   :2.438   Mean   :2.875  
3rd Qu.:1187051   3rd Qu.:5.000   3rd Qu.:4.000   3rd Qu.:4.250  
Max.   :1241232   Max.   :8.000   Max.   :8.000   Max.   :8.000  
       V5              V6             V7                  V8       
Min.   :1.000   Min.   :1.000   Length:16          Min.   :1.000  
1st Qu.:1.000   1st Qu.:2.000   Class :character   1st Qu.:2.000  
Median :1.000   Median :2.000   Mode  :character   Median :2.500  
Mean   :1.812   Mean   :2.438                      Mean   :3.125  
3rd Qu.:1.000   3rd Qu.:2.000                      3rd Qu.:3.250  
Max.   :9.000   Max.   :7.000                      Max.   :7.000  
      V9             V10   
Min.   : 1.00   Min.   :1  
1st Qu.: 1.00   1st Qu.:1  
Median : 1.00   Median :1  
Mean   : 2.75   Mean   :1  
3rd Qu.: 3.00   3rd Qu.:1  
Max.   :10.00   Max.   :1 

is.na(without_response[impute_here,])

      V1     V2      V3      V4      V5      V6      V7      V8      V9   V10
24  FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   TRUE    FALSE    FALSE  FALSE
41  FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   TRUE    FALSE    FALSE   FALSE
140 FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   TRUE    FALSE    FALSE   FALSE
146 FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   TRUE    FALSE    FALSE   FALSE
159 FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   TRUE    FALSE    FALSE   FALSE
165 FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   TRUE    FALSE    FALSE   FALSE
236 FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   TRUE    FALSE    FALSE   FALSE
250 FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   TRUE    FALSE    FALSE   FALSE
276 FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   TRUE    FALSE    FALSE   FALSE
293 FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   TRUE    FALSE    FALSE   FALSE
295 FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   TRUE    FALSE    FALSE   FALSE
298 FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   TRUE    FALSE    FALSE   FALSE
316 FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   TRUE    FALSE    FALSE   FALSE
322 FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   TRUE    FALSE    FALSE   FALSE
412 FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   TRUE    FALSE    FALSE   FALSE
618 FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   TRUE    FALSE    FALSE   FALSE

1 Ответ

0 голосов
/ 31 октября 2018

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

mice(... method = "norm.predict") работает путем вменения вероятных значений на основе линейной регрессии между переменной с отсутствующими значениями и другими переменными в вашем наборе данных. Он использует существующие данные для прогнозирования вероятных значений. Тем не менее, поскольку V7 является константой, она не имеет дисперсии и не отличается от других переменных. Как таковые, прогнозы не возможны. Многократное вменение не может использоваться в этой ситуации. Нет никакого разумного вменения, которое можно сделать, кроме предположения, что все значения в V7 являются постоянными (то есть среднее вменение). Имейте в виду, что есть некоторые существенные недостатки этого, если это предположение неверно. Ваш другой лучший вариант - удаление по списку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...