Выбор переменных для включения в модель множественной линейной регрессии

35

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

Моя модель началась с 10 предикторов для DV. При использовании всех 10 предикторов четыре считались значимыми. Если я удаляю только некоторые из явно неверных предикторов, некоторые из моих предикторов, которые изначально не были значимыми, становятся значимыми. Что приводит меня к моему вопросу: как определить, какие предикторы следует включить в их модель? Мне показалось, что вы должны запустить модель один раз со всеми предикторами, удалить те, которые не являются значимыми, а затем снова выполнить. Но если удаление только некоторых из этих предикторов делает другие значимыми, мне остается только задаться вопросом, правильно ли я отношусь ко всему этому.

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

cryptic_star
источник
Ответ на этот вопрос в значительной степени зависит от ваших целей и требований: вы ищете простую ассоциацию или вы стремитесь к прогнозированию; насколько вы хороши в интерпретации; есть ли у вас информация о переменных из других публикаций, которые могут повлиять на процесс; как насчет взаимодействий или трансформированных версий переменных: можете ли вы включить их; и т. д. Чтобы получить хороший ответ, вам нужно указать более подробную информацию о том, что вы пытаетесь сделать.
Ник Сабби
На основании того, что вы спросили, это будет для прогноза. Влияние на другие переменные просто предлагает возможную ассоциацию. Там нет взаимодействия между ними. Необходимо преобразовать только одно значение, и это было сделано.
cryptic_star
1
Есть ли теория, которая говорит, какие предикторы вы должны включить? Если у вас есть много измеренных переменных и нет теории, я бы порекомендовал провести ряд наблюдений, чтобы вы могли проверить свою модель на данных, которые не использовались для ее создания. Неправильно тестировать и проверять модель на тех же данных.
Мишель
Перекрестная проверка (как обсуждает Ник Саббе), штрафные методы (Dikran Marsupial) или выбор переменных на основе предшествующей теории (Мишель) - все это варианты. Но обратите внимание, что выбор переменных по сути является очень сложной задачей. Чтобы понять, почему это так чревато, мне может помочь прочитать мой ответ здесь: алгоритмы для автоматического выбора модели . Наконец, стоит признать, что проблема заключается в логической структуре этого действия, а не в том, делает ли компьютер это автоматически или вы делаете это вручную для себя.
gung - Восстановить Монику
Проверьте также ответы на этот пост: stats.stackexchange.com/questions/34769/…
jokel

Ответы:

19

Основываясь на вашей реакции на мой комментарий:

Вы ищете прогноз. Таким образом, вы не должны полагаться на (не) значимость коэффициентов. Вы бы лучше

  • Выберите критерий, который наилучшим образом описывает ваши потребности в прогнозировании (например, уровень неправильной классификации, AUC ROC, некоторые формы с весами, ...)
  • Для каждой интересующей модели оцените этот критерий. Это может быть сделано, например, путем предоставления набора проверки (если вам повезет или богатый), путем перекрестной проверки (обычно в десять раз) или любых других вариантов, которые позволяет ваш критерий интереса. Если возможно, также найдите оценку SE критерия для каждой модели (например, используя значения в разных сгибах при перекрестной проверке)
  • Теперь вы можете выбрать модель с наилучшим значением критерия, хотя обычно рекомендуется выбирать наиболее экономную модель (наименьшие переменные), которая находится в пределах одного SE от лучшего значения.

В отношении каждой интересующей модели : в этом и заключается загвоздка. С 10 потенциальными предикторами, это грузовик потенциальных моделей. Если у вас есть время или процессоры для этого (или если ваши данные достаточно малы, чтобы модели подходили и оценивались достаточно быстро): имейте мяч. Если нет, вы можете сделать это с помощью образованных догадок, прямого или обратного моделирования (но используя критерий вместо значимости), или еще лучше: используйте некоторый алгоритм, который выбирает разумный набор моделей. Один алгоритм, который делает это, - наказывается регрессией, в частности регрессией Лассо. Если вы используете R, просто подключите пакет glmnet, и вы готовы к работе.

Ник Сабби
источник
+1, но не могли бы вы объяснить, почему именно вы «выбрали бы самую экономную модель (наименьшее количество переменных), которая находится в пределах одной SE от лучшего значения»?
rolando2
Скупость в большинстве случаев является желаемым свойством: она повышает интерпретируемость и уменьшает количество измерений, которые необходимо выполнить для нового субъекта, чтобы использовать модель. Другая сторона истории заключается в том, что вы получаете за свой критерий лишь оценку с соответствующим SE: я видел довольно много графиков, показывающих оценки критерия для некоторого параметра настройки, где «наилучшее» значение было просто исключительным вершина горы. Таким образом, правило 1 SE (которое произвольно, но является общепринятой практикой) защищает вас от этого с добавленной стоимостью обеспечения большей экономии.
Ник Сабби
13

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

Традиционно аналитики пошагово добавляли и вычитали переменные в модель по одной (аналогично тому, что вы сделали) и тестировали их по отдельности или в небольших группах с помощью t- или F-тестов. Проблема в том, что вы можете пропустить некоторую комбинацию переменных, чтобы вычесть (или сложить), где их объединенный эффект (или не-эффект) скрыт коллинеарностью.

Благодаря современным вычислительным возможностям можно уместить все 2 ^ 10 = 1024 возможных комбинаций объясняющих переменных и выбрать лучшую модель по одному из ряда возможных критериев, например, AIC, BIC или прогнозирующей мощности (например, возможность прогнозировать значения тестового подмножества данных, которые вы отделили от набора, который вы используете, чтобы соответствовать вашей модели). Однако, если вы собираетесь тестировать (неявно или явно) модели 1024, вам нужно переосмыслить свои p-значения из классического подхода - относитесь с осторожностью ...

Питер Эллис
источник
Спасибо за высокий уровень прохождения плюсов и минусов обеих сторон. Это подтвердило многое из того, что я подозревал.
cryptic_star
11

Если вы заинтересованы только в прогнозирующих показателях, то, вероятно, лучше использовать все функции и использовать метод регрессии гребня, чтобы избежать чрезмерного соответствия обучающей выборки. По сути, это совет, приведенный в приложении к монографии Миллара «Выбор подмножества в регрессии». , поэтому он имеет разумную родословную!

Причина этого заключается в том, что если вы выберете подмножество на основе оценки производительности, основанной на фиксированной выборке данных (например, AIC, BIC, перекрестной проверки и т. Д.), Критерий выбора будет иметь конечную дисперсию, и поэтому возможно переопределить сам критерий выбора. Другими словами, для начала, когда вы минимизируете критерий выбора, производительность обобщения улучшится, однако наступит момент, когда чем больше вы уменьшите критерий выбора, тем хуже будет обобщение. Если вам не повезло, вы можете легко получить регрессионную модель, которая работает хуже, чем та, с которой вы начали (то есть модель со всеми атрибутами).

Это особенно вероятно, когда набор данных небольшой (поэтому критерий выбора имеет высокую дисперсию) и когда существует много возможных вариантов выбора модели (например, выбор комбинаций признаков). Регуляризация, по-видимому, менее склонна к чрезмерной подгонке, поскольку это скалярный параметр, который необходимо настроить, и это дает более ограниченное представление о сложности модели, то есть меньше эффективных степеней свободы, с которой можно переопределять критерий выбора. ,

Дикран Сумчатый
источник
0

Используйте библиотеку прыжков. Когда вы строите переменные, на оси Y отображается R ^ 2 с настройкой. Вы смотрите, где ящики черные на самом высоком R ^ 2. Это покажет переменные, которые вы должны использовать для множественной линейной регрессии.

Пример вина ниже:

library(leaps)
regsubsets.out <-
  regsubsets(Price ~ Year + WinterRain + AGST + HarvestRain + Age + FrancePop,
         data = wine,
         nbest = 1,       # 1 best model for each number of predictors
         nvmax = NULL,    # NULL for no limit on number of variables
         force.in = NULL, force.out = NULL,
         method = "exhaustive")
regsubsets.out

#----When you plot wherever R^2 is the highest with black boxes,
#so in our case AGST + HarvestRain + WinterRain + Age and the dependent var.is Price----#
summary.out <- summary(regsubsets.out)
as.data.frame(summary.out$outmat)
plot(regsubsets.out, scale = "adjr2", main = "Adjusted R^2")
zschleien
источник
Это не очень отличается от так называемого выбора «лучших подмножеств», в котором есть известные проблемы.
gung - Восстановить Монику
leaps явно вычисляет «лучшие подмножества», хотя и не советует вам выбирать среди подмножеств различного размера. (Это вопрос между вами и вашим статистическим духовенством.)
steveo'america
Как ни странно, leapsон основан на «коде FORTRAN77 Алана Миллера [...], который более подробно описан в его книге« Выбор подмножества в регрессии », книге, которая упоминается Дикраном в другом ответе на этот вопрос :-)
jorijnsmit
0

Вы также можете использовать функцию шага в информационном критерии Акайке. Пример ниже. https://en.wikipedia.org/wiki/Akaike_information_criterion

StepModel = step(ClimateChangeModel)
zschleien
источник
Методы поэтапного выбора имеют много известных проблем. Это не хорошее предложение.
gung - Восстановить Монику
@ Согласие с бандой. Некоторые проблемы обсуждаются на stats.stackexchange.com/questions/69452/…
SIslam
-2

Почему бы не сделать корреляционный анализ Сначала и затем включить в регрессию только те, которые связаны с Dv?

Анна
источник
2
Как правило, это плохой способ выбора переменных для выбора, см., Например, Правильно ли использование матрицы корреляции для выбора предикторов регрессии? Корреляционный анализ сильно отличается от множественной регрессии, потому что в последнем случае нам нужно подумать о «частичной регрессии» (наклоны регрессии показывают взаимосвязь, как только учитываются другие переменные ), но матрица корреляции этого не показывает.
Серебряная рыбка
Это не дает ответа на вопрос. Как только у вас будет достаточно репутации, вы сможете комментировать любой пост ; вместо этого предоставьте ответы, которые не требуют разъяснений от автора . - Из Обзора
Sycorax говорит Восстановить Монику
1
@GeneralAbrial Она поражает меня , что это является ответом на вопрос, хотя и непродолжительного один. Это не хорошее решение проблемы, но для этого и нужны положительные и отрицательные голоса. (Я думаю, что «почему бы и нет» предназначено как риторический вопрос, а не как просьба об уточнении от автора.)
Серебряная рыба
-4

Мой советник предложил другой возможный способ сделать это. Запустите все свои переменные один раз, а затем удалите те, которые не соответствуют некоторому порогу (мы устанавливаем наш порог как p <.25). Продолжайте итерацию таким образом, пока все переменные не упадут ниже этого значения .25, а затем сообщите о значимых значениях.

cryptic_star
источник
1
Привет, Элли, это то, что @Peter Ellis упомянул во втором абзаце своего ответа. Его второе предложение охватывает проблему, которую представляет эта техника. Есть ли у вас теория, которая говорит вам, какие предикторы добавить в вашу модель?
Мишель
Да, @Michelle правильно подчеркивает ответственность за этот подход. Это может привести к очень произвольным результатам.
rolando2
Да, за всем этим стоит теория, которую мы надеемся расширить. В частности, мы смотрим, как взаимодействуют определенные социальные сигналы (например, речь). Мы знаем, какие из них имеют или не имеют влияния. Тем не менее, мы пытаемся предоставить более детальные версии. Таким образом, речь может быть разбита на вопросы, мнения, оценки и т. Д.
cryptic_star
2
Итак, вы делаете предварительный анализ. :) Вы можете попробовать разные комбинации, но вам нужно будет протестировать модель, с которой вы столкнетесь, на новых данных. По определению, с тем, что вы делаете, у вас будет «лучшая» модель для ваших данных, но она может не сработать, если вы соберете другой набор данных.
Мишель