Чому ця множинна імпутація низької якості?


9

Розглянемо наступний код R:

> data <- data.frame(
            a=c(NA,2,3,4,5,6),b=c(2.2,NA,6.1,8.3,10.2,12.13),c=c(4.2,7.9,NA,16.1,19.9,23))
> data
   a     b    c
1 NA  2.20  4.2
2  2    NA  7.9
3  3  6.10   NA
4  4  8.30 16.1
5  5 10.20 19.9
6  6 12.13 23.0

Як ви бачите, я склав ці дані так приблизно c = 2*b = 4*a. Як такий, я б очікував, що відсутні значення будуть навколо a=1, b=2, c=12. Тому я провів аналіз:

> imp <- mi(data)
Beginning Multiple Imputation ( Sat Oct 18 03:02:41 2014 ):
Iteration 1 
 Chain 1 : a*  b*  c*  
 Chain 2 : a*  b*  c*  
 Chain 3 : a*  b*  c*  
Iteration 2 
 Chain 1 : a*  b   c   
 Chain 2 : a*  b*  c*  
 Chain 3 : a   b*  c   
Iteration 3 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a*  b*  c*  
Iteration 4 
 Chain 1 : a   b   c   
 Chain 2 : a   b*  c   
 Chain 3 : a*  b   c   
Iteration 5 
 Chain 1 : a   b   c*  
 Chain 2 : a   b*  c   
 Chain 3 : a   b*  c   
Iteration 6 
 Chain 1 : a*  b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 7 
 Chain 1 : a   b   c   
 Chain 2 : a   b*  c   
 Chain 3 : a   b   c*  
Iteration 8 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b*  c*  
Iteration 9 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c*  
 Chain 3 : a   b   c   
Iteration 10 
 Chain 1 : a   b*  c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 11 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 12 
 Chain 1 : a   b   c   
 Chain 2 : a*  b   c   
 Chain 3 : a   b   c   
Iteration 13 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c*  
 Chain 3 : a   b   c*  
Iteration 14 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 15 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c*  
Iteration 16 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b*  c   
Iteration 17 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 18 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 19 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c*  
Iteration 20 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 21 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 22 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 23 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 24 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 25 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 26 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 27 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 28 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 29 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
mi converged ( Sat Oct 18 03:02:45 2014 )
Run 20 more iterations to mitigate the influence of the noise...
Beginning Multiple Imputation ( Sat Oct 18 03:02:45 2014 ):
Iteration 1 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 2 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 3 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 4 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 5 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 6 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 7 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 8 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 9 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 10 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 11 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 12 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 13 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 14 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 15 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 16 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 17 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 18 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 19 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 20 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Reached the maximum iteration, mi did not converge ( Sat Oct 18 03:02:48 2014 )

І нарешті спостерігається заповнений набір даних:

> mi.completed(imp)
[[1]]
  a     b    c
1 2  2.20  4.2
2 2  2.20  7.9
3 3  6.10 16.1
4 4  8.30 16.1
5 5 10.20 19.9
6 6 12.13 23.0

[[2]]
  a     b    c
1 2  2.20  4.2
2 2  6.10  7.9
3 3  6.10  7.9
4 4  8.30 16.1
5 5 10.20 19.9
6 6 12.13 23.0

[[3]]
  a     b    c
1 2  2.20  4.2
2 2  2.20  7.9
3 3  6.10  7.9
4 4  8.30 16.1
5 5 10.20 19.9
6 6 12.13 23.0

Як ви бачите, введені значення - це не те, чого я очікував. Насправді вони виглядають як результат єдиної імпутації, оскільки відсутні значення, здавалося б, взяті з суміжних записів.

Що я пропускаю?

Слід зазначити, що мої «знання» статистики здебільшого обмежуються тим, що я смутно пам’ятаю із вступного курсу, який я взяв ~ 14 років тому. Я просто шукаю простий спосіб вписати пропущені значення, він не повинен бути найбільш оптимізованим, але він повинен мати певний сенс (який я не можу зробити з цих результатів). Цілком може бути так, що miце не правильний підхід для досягнення того, що я хочу (можливо, замість цього слід використовувати прогноз ), тому я відкритий для пропозицій.

Я також спробував подібний підхід mice, що призвів до подібних результатів.

ОНОВЛЕННЯ Amelia чудово працює поза коробкою. Я б все-таки було цікаво дізнатися, чого мені не вистачає, хоча ми / миші.


1
Що ви взагалі намагаєтеся зробити з багаторазовою імпутацією? Мені важко відповісти на це питання без трохи більше контексту. [Мені також не здається дивним, що якість вашої імпутації була низькою, враховуючи те, що ви працюєте лише з трьома змінними та шістьма записами]
Патрік С. Форшер

@ PatrickS.Forscher ви мали рацію. Я просто спробував подібний тест зі 100 записами, і результати були такими, як я очікував. Будь ласка, зробіть цю відповідь, щоб я міг її прийняти, і якби ви могли вказати деякі мінімальні показники для успішної внесення, було б чудово.
t0x1n

Що б ви сказали про наступні результати? > mi.completed(imp) [[1]] a b c 1 0.289 2.20 4.2 2 2.000 2.57 7.9 3 3.000 6.10 12.7 4 4.000 8.30 16.1 5 5.000 10.20 19.9 6 6.000 12.13 23.0 [[2]] a b c 1 0.603 2.20 4.2 2 2.000 5.82 7.9 3 3.000 6.10 13.4 4 4.000 8.30 16.1 5 5.000 10.20 19.9 6 6.000 12.13 23.0 [[3]] a b c 1 1.05 2.20 4.2 2 2.00 4.18 7.9 3 3.00 6.10 12.0 4 4.00 8.30 16.1 5 5.00 10.20 19.9 6 6.00 12.13 23.0Вибачте за форматування, але, мабуть, це найкраще, що я міг зробити в коментарі.
Олександр Блех

Amelia II є виразною для багаторазової імпутації часових рядів поперечного перерізу (також панельні дослідження). MICE призначений для даних часових рядів, що не перетинаються (або, принаймні, MICE виробляє погані імпутації для таких часових рядів, див. Honaker, J. and King, G. (2010). Що робити з пропущеними значеннями в кросі часових рядів -секція. Американський журнал політичної науки , 54 (2): 561–581.)
Олексій

@AleksandrBlekh Мені вони теж не подобаються, я очікував би щось ближче до x/ 2x/4x
t0x1n

Відповіді:


13

З огляду на те, що ви використовуєте шість випадків [записів] та три змінних, якість вашої імпутації буде досить низькою.

Щоб зрозуміти, чому це буде так, пам’ятайте, що множинна імпутація працює, заповнюючи пропущені значення правдоподібними імпутованими значеннями. Ці імпульсні значення обчислюються вмокремі набори даних (я повернусь до того, як ці імпульсні значення отримані пізніше у цій відповіді). Введені значення дещо відрізнятимуться від набору даних до набору даних.

Таким чином, з урахуванням статистичної кількості відсотків q (наприклад, середнє значення, коефіцієнт регресії тощо), можна використовувати коефіцієнт м набори даних для оцінки середньої стандартної помилки для q в межах m набори даних (кількість, яку я називатиму дисперсією в межах імпутації, або U¯) та ступінь, до якогоq варіюється в межах м набори даних (кількість, яку я називатиму дисперсією між імпутацією, або Б).

Зв'язок між якістю імпутації, Б, і U¯

Можна використовувати дисперсію всередині імпутації U¯ і дисперсія між імпутацією Бвивести оцінку ступеня, на яку на імпульовану оцінку статистичної величини впливає відсутність інформації. Звичайно, чим більше інформації втрачено, тим гірша якість внесення. Оцінка втраченої до відсутності інформації маркується γ, і задається наступною формулою:

γ=r+2гf+3r+1

r у цій формулі - відношення дисперсії між імпутацією Б до дисперсії всередині імпутації U¯:

r=(1+1м)БU¯

Таким чином, високі значення Б приводять до високих значень r, що в свою чергу призведе до високих значень γ. Високе значенняγ, у свою чергу, вказує на більше інформації, втраченої через відсутні дані та меншу якість внесення даних.

гf у формулі для γ також є функцією Б і U¯. Зокрема,гf оцінюється по

гf=(м-1)(1+мU¯(м+1)Б)2

Таким чином, на додаток до збільшення співвідношення дисперсії між імпутацією до дисперсії всередині імпутації зростає Б також зменшується гf. Це призведе до більш високого значенняγ, що вказує на більшу інформацію, втрачену через відсутність, та меншу якість імпутації.

Підсумовуючи, більш високі значення дисперсії між імпутацією Б впливають на якість імпутації двома способами:

  1. Більш високі значення Б збільшити відношення дисперсії між імпутаціями до дисперсії всередині імпутацій, зменшуючи якість імпутації
  2. Більш високі значення Б зменшити доступний ступінь свободи, знизивши якість імпутації

Зв'язок між кількістю справ та Б

З огляду на два подібні набори даних, набір даних із меншою кількістю випадків матиме велику дисперсію між імпутацією Б.

Це відбудеться тому, що, як я описав вище, дисперсія між імпутацією обчислюється обчисленням статистичної кількості інтересу q в межах кожного з м імпутовані набори даних та обчислення ступеня, до якої q змінюється в кожному з мнабори даних Якщо в даному наборі даних є більша кількість випадків, але аналогічна кількість відсутніх значень, як і інша, менша частка значень може змінюватися в кожномум імпутованих наборів даних, що означає зменшення загальної зміни в q через імпутовані набори даних.

Таким чином, загалом, збільшення кількості випадків (або, точніше, зменшення частки відсутніх значень) підвищить якість внесення даних.

Зв'язок між кількістю змінних та Б

З огляду на два подібні набори даних, набір даних із більшою кількістю змінних матиме меншу дисперсію між імпутацією Б, доки ці додаткові змінні будуть інформативними щодо відсутніх значень.

Це відбудеться тому, що, як правило, відсутні дані для даної змінної "заповнюються", використовуючи інформацію з інших змінних для генерації правдоподібних оцінок пропущених значень (конкретні деталі того, як ці оцінки формуються, будуть змінюватися залежно від реалізації ІМ ви використовуєте). Більше інформації у вигляді додаткових змінних призведе до отримання більш стабільних імпульсних значень, що призводить до менших змін у статистичній кількості, що цікавитьq поперек кожного з м імпутовані набори даних.

Таким чином, загалом, збільшення кількості змінних, доступних у наборі даних, підвищить якість імпутації, доки ці додаткові змінні будуть інформативними щодо відсутніх значень.

Список літератури

Рубін, Б.Б. (1996). Багаторазова імпутація після 18+ років. Журнал Американської статистичної асоціації , 91, 473-489.

Шафер, JL (1999). Множинна імпутація: буквар. Статистичні методи в медичних дослідженнях , 8, 3-15.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.