Як поводитися з відсутніми значеннями, щоб підготувати дані для вибору функцій за допомогою LASSO?


11

Моя ситуація:

  • невеликий розмір зразка: 116
  • двійкова змінна результат
  • довгий список пояснювальних змінних: 44
  • пояснювальні змінні не надходили з моєї голови; їх вибір ґрунтувався на літературі.
  • більшість випадків у вибірці та більшість змінних мають відсутні значення.

Вибраний підхід до вибору функцій: LASSO

Пакет glmnet R не дозволить мені запустити програму glmnet, мабуть, через відсутність значень у моєму наборі даних. Здається, існують різні методи обробки відсутніх даних, тому я хотів би знати:

  • Чи накладає LASSO якесь обмеження з точки зору методу імпутації, який я можу використовувати?
  • Що було б найкраще для методу імпутації? В ідеалі мені потрібен метод, який я міг би запустити на SPSS (бажано) або R.

ОНОВЛЕННЯ1: З деяких відповідей нижче зрозуміло, що я маю справу з більш основними питаннями, перш ніж розглянути методи імпутації. Я хотів би додати тут нові запитання щодо цього. У відповіді, що пропонує кодування як постійне значення та створення нової змінної, щоб мати справу з "непридатними" значеннями та використанням групового ласо:

  • Ви б сказали, що якщо я використовую груповий LASSO, я зможу використовувати підхід, запропонований для безперервних прогнозів, також до категоричних прогнозів? Якщо так, я припускаю, що це було б рівнозначно створенню нової категорії - я насторожено, що це може внести упередженість.
  • Хтось знає, чи підтримує пакет glmnet R групу LASSO? Якщо ні, чи запропонував би хтось інший, який би це робив у поєднанні з логістичною регресією? У сховищі CRAN можна знайти декілька варіантів, де згадується група LASSO, будь-які пропозиції, найбільш відповідні для мого випадку? Можливо, SGL?

Це супроводження попереднього мого питання ( Як вибрати підмножину змінних з мого початкового довгого списку для проведення логістичного регресійного аналізу? ).

ЗАБЕЗПЕЧЕННЯ: Я не статистик.


(1) Найкращий підхід до імпутації залежить від пропорції та структури пропущених значень, зв’язків між змінними та того, які припущення ви готові зробити щодо причин пропуску значень. (2) Будь-який єдиний метод імпутації може бути використаний для надання вводу в LASSO; труднощі в оцінці того, як імпутація впливає на результати. Я не знаю, як поєднувати багаторазову імпутацію з LASSO (без сумніву, хтось це робить), але неофіційне порівняння результатів різних циклів імпутації (як правило, обираються ті самі предиктори?) Все ще може бути інформативним.
Scortchi

@Scortchi: Більшість моїх відсутніх значень потрапляють у категорію "непридатне". Напр .: У змінному віці дорослої жінки в домашньому господарстві випадки, коли дорослий чоловік є вдовою. Насправді, я думаю, мені тут потрібно зробити крок назад: чи слід ставитися до значень 0 у суцільних змінних як до відсутніх значень? Наприклад: 0 років навчання, 0 членів домогосподарств віком від 14 до 60 років.
Спантеличений

Важко уявити ситуацію, в якій ви хочете трактувати це як невідомий факт про відсутню жінку, а не як відомий факт про домашнє господарство. Питання про нулі важко зрозуміти: Ви запитуєте, наприклад, чи немає років навчання неправдоподібним значенням, або 0 може бути використане для кодування відсутнього значення? (І як тоді я знаю?) Немає загальних причин трактувати 0 як ознаку відсутності.
Scortchi

@Scortchi: Про жіночу вікову змінну, я бачу, що ти маєш на увазі. Але питання, ніж стає: як би я кодував відсутній жіночий випадок, як не НА? Про нулі: так, саме це було моїм запитанням, вибачте, якщо це було не ясно. Я подумав, що програма може мати певні проблеми в обробці нульових значень, і вона може не "зрозуміти", що я маю на увазі з цим.
Спантеличений

Ви можете кодувати це як будь-яке постійне значення та ввести змінну індикатора наявності / відсутності (& використовувати групу LASSO). Немає причин, чому LASSO або будь-яка інша програма регресії не повинна неправильно обробляти нульові значення для прогнокторів. [Будь ласка, не сприймайте це неправильно, але це дуже основні питання, які дозволяють припустити, що якщо це для розваги, ви можете почати з більш простих проблем, або що якщо це справді, ви можете порадитися зі статистиком.]
Scortchi

Відповіді:


11

Коли суцільний предиктор містить значення "непридатні", часто корисно кодувати його за допомогою двох змінних:x

x1={cwhen x is not applicablexotherwise

де - константа, &c

x2={1when x is not applicable0otherwise

Припустимо, лінійний предиктор для відповіді задається

η=β0+β1x1+β2x2+

який вирішує на

η=β0+β1x1+

коли вимірюється , або доx

η=β0+β1c+β2+

коли x 'не застосовується'. Вибір довільний, & не впливає на оцінки перехоплення або нахилу ; описує ефект того, що 'не застосовується' порівняно з коли .cβ0β1β2xx=c

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

Використання LASSO викликає дві проблеми:

  1. Вибір впливає на результати, оскільки кількість застосованої усадки залежить від величин оцінок коефіцієнта.c
  2. Потрібно переконатися, що і або обидва, або обидва не в обраній моделі.x1x2

Ви можете вирішити і те, і інше, скориставшись груповим LASSO з групою, що включає і : штраф -норм застосовується до -норму ортонормованої матриці . (Категоричні прогнози - це дочірній плакат для групи LASSO - ви просто кодуєте "не застосовується" як окремий рівень, як це часто робиться в неопералізованій регресії.) Див. Meier et al (2008), JRSS B, 70 , 1, "The групове ласо для логістичної регресії " & grplasso .x1x2L1L2[x1 x2]


Хтось знає, чи підтримує пакет glmnet R групу LASSO? Якщо ні, чи запропонував би хтось інший, який би це робив у поєднанні з логістичною регресією? У сховищі CRAN можна знайти декілька варіантів, де згадується група LASSO, будь-які пропозиції, найбільш відповідні для мого випадку? Можливо, SGL?
Спантеличений

Отже, ви б сказали, що якби я використовував груповий LASSO, я міг би використати підхід, який ви пропонуєте безперервним передбачувачам, також до категоричних провісників?
Спантеличений

5

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

Але якщо ви йдете цим шляхом, подумайте про використання Стента для того, щоб одночасно з вашою регресією підходити до імпутації ML як єдиної байєсівської моделі, оскільки LASSO є особливим випадком байєсівської регресії .


Я неправильно зрозумів метод багаторазової імпутації, тепер бачу, що це було б застосовано для мого випадку. Я редагував своє запитання, щоб це відобразити. Чи знаєте ви, чи SPSS або R виконують два варіанти, які ви згадали?
Спантеличений

1
Є R пакет, miякий може вам допомогти.
тіньтакер

2
Можна запустити Стен через R (див. RStan ).
Scortchi

Додаткові декілька пакетів імпутації для R включають Ameliaі mice.
Sycorax каже, що повернеться до Моніки

0

Команда CATREG у статистиці обробляє відсутні дані за допомогою LASSO. Ви можете виключати випадки у списку або призначати процедуру. Хоча його ім'я говорить про те, що це категоричні змінні, ви можете встановити шкалу Numeric для обробки безперервного випадку.


це SAS PROC CATREG, я здогадуюсь?
Бен Болкер

@JKP: Насправді я натрапив на цю команду. Однак, враховуючи, що моя переменная зміна є двійковою, я припускаю, що логічна регресія була б більш доречною, ніж категорична регресія (CATREG) - я прав? Крім того, параметри в CATREG здаються досить обмеженими - ви можете вибирати лише виключення випадків, замінюючи пропущені значення середніми значеннями або створюючи додаткову категорію.
Спантеличений

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