Обнаружение значимых предикторов из множества независимых переменных


31

В наборе данных из двух непересекающихся групп населения (пациенты и здоровые, всего ) я хотел бы найти (из независимых переменных) значимые предикторы для непрерывной зависимой переменной. Корреляция между предикторами присутствует. Я заинтересован в том, чтобы выяснить, связан ли какой-либо из предикторов с зависимой переменной «в реальности» (а не с максимально точным прогнозированием зависимой переменной). Поскольку я был поражен многочисленными возможными подходами, я хотел бы спросить, какой подход наиболее рекомендуется.Nзнак равно60300

  • Насколько я понимаю, поэтапное включение или исключение предикторов не рекомендуется

  • Например, провести линейную регрессию отдельно для каждого предиктора и исправить значения p для множественного сравнения с использованием FDR (возможно, очень консервативно?)

  • Регрессия главных компонентов: трудно интерпретировать, поскольку я не смогу рассказать о предсказательной силе отдельных предикторов, а только о компонентах.

  • какие-либо другие предложения?


Я слышал о людях, использующих регуляризованную регрессию L1 для таких вещей. Но я не знаю достаточно, чтобы написать правильный ответ ...
Король

2
Чтобы дать лучшие рекомендации, это поможет нам узнать, как вы будете действовать после определения «значимых предикторов». Вы пытаетесь предсказать результат как можно точнее; найти экономный способ предсказать его (например, используя набор до k предикторов, которые будут эффективно это делать; объяснить, что приводит к результату «в реальности»; или что-то еще? Кроме того, насколько велик ваш набор данных?
rolando2

@rolando: спасибо за комментарий! Я обновил вопрос: мое общее количество наблюдений составляет n = 60 предметов. Моя цель состоит не в том, чтобы предсказать зависимую переменную настолько точно, насколько это возможно, а в том, чтобы объяснить, что приводит к результату «в реальности» (= надеюсь найти связь между переменными, которая может быть подтверждена в более поздних исследованиях / наборах данных)
шутка

Я также опубликовал дополнительный вопрос, включающий некоторые фиктивные данные. Я был бы очень благодарен за все намеки. stats.stackexchange.com/questions/34859/…
jokel

Ответы:


30

Я бы порекомендовал попробовать GLM с лассо регуляризации . Это добавляет штраф к модели за количество переменных, и по мере увеличения штрафа количество переменных в модели будет уменьшаться.

Вы должны использовать перекрестную проверку, чтобы выбрать значение параметра штрафа. Если у вас есть R, я предлагаю использовать пакет glmnet . Используйте alpha=1для регрессии лассо и alpha=0для регрессии гребня. Установка значения от 0 до 1 будет использовать комбинацию штрафов за лассо и ридж, также известную как эластичная сеть.


4
Я согласен с Заком. Дэвид Касселл и я написали статью об этом, концентрируясь на SAS, но не полностью. Это останавливается поэтапно .
Питер Флом - Восстановить Монику

1
Я думаю, что это 0 для хребта и 1 для лассо
король

1
@ Зак: Спасибо за подсказки. Есть ли способ получить какую-то тест-статистику, которая позволила бы мне судить о значимости отдельных предикторов. В конце я хотел бы сказать, что «предиктор X значительно связан с зависимой переменной Y».
Джокель

2
Что касается КИ, из руководства другого пакета R, реализующего LASSO ( cran.r-project.org/web/packages/penalized/vignettes/…. , Стр. 18): «Это вполне естественный вопрос, чтобы задать стандартные ошибки регрессии коэффициенты или другие оценочные величины. В принципе, такие стандартные ошибки могут быть легко вычислены, например, с помощью начальной загрузки. Тем не менее, этот пакет намеренно не предоставляет их. Причина этого заключается в том, что стандартные ошибки не очень значимы для сильно смещенных оценок, таких как возникающие из штрафных методов оценки. "
Миура

2
@miura Недавно была представлена ​​тестовая статистика только для авторов оригинального лассо: бумага и слайды (легче для чтения)
Cam.Davidson.Pilon

23

Чтобы расширить ответ Зака ​​(+1), если вы используете метод LASSO в линейной регрессии, вы пытаетесь минимизировать сумму квадратичной функции и функции абсолютного значения, то есть:

минβ(Y-Иксβ)T(Y-Иксβ)+Σя|βя|

βЦелевая функция LASSO

Минимум лежит на кривой пересечения, построенной здесь с контурными кривыми квадратичной и квадратной кривой:

Контурные изгибы LASSO

Вы можете видеть, что минимум находится на одной из осей, следовательно, он исключил эту переменную из регрессии.

L1


8
(+1), но для поста в блоге, который действительно хорош. Было бы неплохо, если бы вы немного расширили здесь свой ответ, так как это увеличит вероятность того, что информация останется доступной.
richiemorrisroe

2

Каково ваше предыдущее мнение о том, сколько предсказателей, вероятно, будут важны? Вероятно ли, что большинство из них имеют абсолютно нулевой эффект или что все влияет на результат, некоторые переменные только меньше, чем другие?

И как состояние здоровья связано с прогнозирующей задачей?

Если вы считаете, что важны только немногие переменные, вы можете попробовать spike и slab ранее (например, в пакете spikeSlabGAM R) или L1. Если вы думаете, что все предикторы влияют на результат, вам может не повезти.

И вообще, применяются все предостережения, связанные с причинно-следственным выводом из данных наблюдений.


2

Что бы вы ни делали, стоит установить доверительные интервалы для ранжирования по рангу важности предикторов, чтобы показать, что вы действительно можете сделать это с вашим набором данных. Я сомневаюсь, что любой из методов может надежно найти «истинных» предикторов.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.