Ступенчатая регрессия в R - Критическое значение p

12

Какое критическое значение p используется step()функцией в R для ступенчатой ​​регрессии? Я предполагаю, что это 0,15, но верно ли мое предположение? Как я могу изменить критическое значение p?

Джейсон Сэмюэлс
источник
7
Функция шага R основана на AIC.
Майкл М
7
Лучше вообще не использовать пошаговые процедуры выбора модели. Чтобы понять почему, это может помочь вам прочитать мой ответ здесь: Алгоритмы для автоматического выбора модели .
gung - Восстановить Монику
3
В дополнение к комментарию @ MichaelMayer: Descriptionчасть страницы справки, которая полностью ?stepговорит: Выберите модель на основе формул AIC.
Стефан Коласса

Ответы:

27

Как я объяснил в своем комментарии к вашему другому вопросу, stepиспользуется AIC, а не p-значения.

Тем не менее, для одной переменной в то время, АИК делает , соответствуют с использованием р-значение 0,15 (или , чтобы быть более точным, 0,1573):

Рассмотрим сравнение двух моделей, которые отличаются одной переменной. Назовите модели (модель меньшего размера) и (модель большего размера), и пусть их AIC будутM0M1AIC0 и соответственно.AIC1

Используя критерий AIC, вы использовали бы большую модель, если . Это будет иметь место, если - 2 log L 0 - ( - 2 log L 1 ) > 2 .AIC1<AIC02logL0(2logL1)>2

Но это просто статистика в тесте отношения правдоподобия. Из теоремы Уилкса мы отклоним нуль, если статистика превысит верхний квантиль a . Поэтому, если мы используем тест гипотезы для выбора между меньшей моделью и большей, мы выбираем большую модель, когда .αχ122logL0(2logL1)>Cα

Теперь лежит на 84.27 процентиле a . Следовательно, если мы выберем более крупную модель, когда она имеет меньшую AIC, это соответствует отклонению нулевой гипотезы для проверки дополнительного члена с p-значением или2χ1210.843=0.15715.7%


Так как вы это измените?

Легко. Измените kпараметр stepс 2 на что-то другое. Вы хотите 10% вместо этого? Сделай это 2.7:

qchisq(0.10,1,lower.tail=FALSE)
[1] 2.705543

Вы хотите 2,5%? Установить k=5:

qchisq(0.025,1,lower.tail=FALSE)
[1] 5.023886

и так далее.


Однако, несмотря на то, что это решает ваш вопрос, я советую вам обратить пристальное внимание на ответ Фрэнка Харрелла на ваш другой вопрос и выяснить ответы большого числа статистиков по другим вопросам, касающимся ступенчатой ​​регрессии, которые обычно бывают очень последовательно избегать пошаговых процедур в целом.

Glen_b - Восстановить Монику
источник
Хорошее объяснение. Знаете ли вы, верно ли это для р-значений обычных регрессионных t-тестов?
Бен Огорек
Извините, Бен, я не уверен на 100%, что означает «это». Вы говорите: «Могу ли я использовать описанный выше подход, когда вы показали, как проводить тесты на 10% и 2,5%, чтобы делать 5% тестов?» Если это так, то ответ «очевидно, да» ... но последнее предложение - которое указывает на то, что даже если вы выглядите так, как будто вы проводите тесты на каком-то номинальном уровне, фактическая частота ошибок типа I не похожа на их номинальные значения , Другими словами, вы можете вычислить значение для использования, и оно должно быть эквивалентно пошаговому заданию ... но фактический уровень значимости все равно не будет 5%. Это только один из ... (ctd)α=0.05
Glen_b
(ctd) ... множество серьезных проблем с пошаговым. Другие включают смещенные оценки и стандартные ошибки, которые слишком малы.
Glen_b
1
На мгновение оставив в стороне проблемы с пошаговым выбором модели, я заинтересован в обобщении правила p-значения меньшего AIC => .1573. Значение p отношения правдоподобия, которое вы описываете, хорошо, но в таких подпрограммах, как R lm, оценка / std.err сравнивается с t-распределением. Это другой тест, и мне было интересно, может ли ваш результат .1573 выдержать приблизительно.
Бен Огорек
2
Бен: да, .1573 асимптотический (основанный на нормальном; это будет только приблизительно правильно). Я думаю, что вы могли бы вычислить соответствующее значение p для stepAIC для , поскольку оно будет зависеть только от степени свободы в вашей задаче (например, я думаю, что это 0,1579 для 200 df); в результате вы должны иметь возможность отказаться от желаемого . @ Ник Это самое интересное. На первый взгляд, я не думаю, что между вычислениями есть прямая связь - они вычисляют одинаковое количество, но по разным причинам. tk
Glen_b
4

Как сказано выше, stepфункция в R основана на критериях AIC. Но я предполагаю, что под p-значением подразумевается альфа для входа и альфа для выхода. Что вы можете сделать, это использовать функцию, stepwiseнаписанную Полом Рубином и доступную здесь . Как видите, у вас есть аргументы alpha.to.enter и alpha.to.leave, которые вы можете изменить. Обратите внимание, что эта функция использует F-тест или эквивалентный t-тест для выбора моделей. Более того, он может обрабатывать не только ступенчатую регрессию, но также прямой выбор и обратное исключение, если вы правильно определите аргументы.

Stat
источник