Я новичок в R, заказал логистическую регрессию, и polr
.
В разделе «Примеры» в нижней части страницы справки для polr (которая соответствует логистической или пробит-регрессионной модели для упорядоченного факторного отклика) показано
options(contrasts = c("contr.treatment", "contr.poly"))
house.plr <- polr(Sat ~ Infl + Type + Cont, weights = Freq, data = housing)
pr <- profile(house.plr)
plot(pr)
pairs(pr)
Какая информация
pr
содержит? Страница справки в профиле является общей и не дает указаний для polr.Что
plot(pr)
показывает? Я вижу шесть графиков. Каждый из них имеет ось X, которая является числовой, хотя метка является переменной индикатора (выглядит как входная переменная, которая является индикатором для порядкового значения). Тогда ось Y представляет собой «тау», что совершенно необъяснимо.Что
pairs(pr)
показывает? Это выглядит как график для каждой пары входных переменных, но опять же я не вижу объяснения осям X или Y.Как понять, хорошо ли подойдет модель?
summary(house.plr)
показывает остаточное отклонение 3479,149 и AIC (информационный критерий Акаике?) 3495,149. Это хорошо? В том случае, если они полезны только в качестве относительных показателей (то есть для сравнения с другой моделью), что является хорошим абсолютным показателем? Распределение остаточного отклонения приблизительно по критерию хи-квадрат? Можно ли использовать «% правильно предсказанный» на исходных данных или какую-либо перекрестную проверку? Какой самый простой способ сделать это?Как можно применять и интерпретировать
anova
эту модель? В документах говорится: «Существуют методы для стандартных функций подбора моделей, включая предикт, сводку, vcov, anova». Тем не менее,anova(house.plr)
результаты работы вanova is not implemented for a single "polr" object
Как интерпретировать значения t для каждого коэффициента? В отличие от некоторых моделей, здесь нет значений P.
Я понимаю, что это много вопросов, но для меня имеет смысл задавать один пакет («как я могу использовать эту вещь?»), А не 7 разных вопросов. Любая информация приветствуется.
methods("profile")
даст вам (в данном случае S3) методы, связанные сprofile
объектом R , тогда вы увидите, что есть специальный метод дляpolr
результатов, который вы можете просмотреть в режиме онлайн, набравgetAnywhere("profile.polr")
в приглашении R.Ответы:
Я бы посоветовал вам взглянуть на книги по анализу категориальных данных (см. Alan Agresti, Категориальный анализ данных, 2002), чтобы лучше объяснить и понять упорядоченную логистическую регрессию . На все вопросы, которые вы задаете, в основном отвечают несколько глав в таких книгах. Если вы заинтересованы только в
R
родственных примерах Расширение линейных моделей в R по юлианскому Faraway (CRC Press, 2008) является отличным справочником.Прежде чем я отвечу на ваши вопросы, упорядоченная логистическая регрессия - это случай полиномиальных логит-моделей, в которых упорядочены категории. Предположим, что у нас есть упорядоченные категории и для индивидуального i с порядковым ответом Y i , p i j = P (J i Yi для J = 1 , . , , , J . С упорядоченным ответом часто легче работать с кумулятивными вероятностями, γ i j = Ppij=P(Yi=j) j=1,...,J . Кумулятивные вероятности растут и инвариантны к объединению смежных категорий. Кроме того, γ i J = 1 , поэтому нам нужны тольковероятностимодели J - 1 .γij=P(Yi≤j) γiJ=1 J–1
Теперь мы хотим связать s с ковариатами x . В вашем случае, имеет 3 упорядоченные уровни: , , . Более разумно обращаться с ними как с заказанными, а не неупорядоченными. Остальные переменные - ваши ковариаты. Конкретная модель, которую вы рассматриваете, является моделью пропорциональных шансов и математически эквивалентна:γij x
Sat
low
medium
high
где
Это так называется, потому что относительные шансы для сравнении x 1 и x 2 :Y≤j x1 x2
Обратите внимание, что приведенное выше выражение не зависит от . Конечно, предположение о пропорциональных шансах действительно необходимо проверить для данного набора данных.j
Теперь я отвечу на некоторые (1, 2, 4) вопросы.
Подходящая модель
polr
является особеннойglm
, поэтому все допущения, которые имеют место для традиционногоglm
удержания здесь. Если вы позаботитесь о параметрах правильно, вы можете выяснить распределение. В частности, чтобы проверить, является ли модель хорошей или нет, вы можете захотеть выполнить тест на пригодность , который проверяет следующее значение null (обратите внимание, что это неуловимо, в основном вы хотите отклонить значение null, но здесь вы не хотите отклоните это, чтобы получить хорошую подгонку):Вы бы использовали для этого критерий хи-квадрат . Значение р получается как:
В большинстве случаев вы надеетесь получить значение p больше 0,05, чтобы не отклонять ноль, чтобы сделать вывод о том, что модель подходит (философская корректность здесь игнорируется).
AIC должен быть высоким для хорошей подгонки, в то время как вы не хотите иметь большое количество параметров.
stepAIC
хороший способ проверить это.Да, вы определенно можете использовать перекрестную проверку, чтобы убедиться в правильности прогнозов. Смотрите
predict
функцию (опция:)type = "probs"
в?polr
. Все, что вам нужно, это ковариаты.Как указано @chl и др.,
pr
Содержит всю информацию, необходимую для получения КИ и другую информацию, связанную с вероятностьюpolr fit
. Всеglm
s подгоняются с использованием итеративно взвешенного метода наименьших квадратов для логарифмической вероятности. В этой оптимизации вы получаете много информации (см. Ссылки), которая понадобится для расчета матрицы дисперсии ковариации, CI, t-значения и т. Д. Она включает в себя все это.В отличие от нормальной линейной (специальной
glm
) модели, другиеglm
s не имеют хорошего t-распределения для коэффициентов регрессии. Поэтому все, что вы можете получить, - это оценки параметров и их ковариационную матрицу асимптотической дисперсии с использованием теории максимального правдоподобия. Следовательно:Оценка, разделенная на стандартную ошибку, - это то, что BDR и WV называют t-значением (здесь я предполагаю
MASS
соглашение). Это эквивалентно t-значению из нормальной линейной регрессии, но не следует t-распределению. Используя CLT, он асимптотически нормально распределен. Но они предпочитают не использовать этот прибл (я думаю), следовательно, нет р-значений. (Я надеюсь, что я не ошибаюсь, и если я ошибаюсь, я надеюсь, что BDR нет на этом форуме. Я также надеюсь, что кто-то исправит меня, если я ошибаюсь.)источник
Мне очень понравился разговор здесь, однако я чувствую, что ответы не правильно адресовали все (очень хорошие) компоненты к поставленному вами вопросу. Вторая половина страницы примера для
polr
- это все о профилировании. Хороший технический справочник здесь - «Венераблс» и Рипли, которые обсуждают профилирование и что он делает. Это критический метод, когда вы выходите за пределы зоны комфорта, когда модели с экспоненциальным семейством соответствуют полной вероятности (обычные GLM).lmer
nls
,polr
иglm.nb
.Страница справки
?profile.glm
должна бытьpolr
полезной, поскольку объекты по сути являются GLM (плюс категориальные пороги). Наконец, вы можете использовать пиковый исходный код, если он вам нуженgetS3method('profile', 'polr')
. ЯgetS3method
часто использую эту функцию, потому что, хотя R, по-видимому, настаивает на том, что многие методы должны быть скрыты, можно удивительно много узнать о реализации и методах, просмотрев код.pr
этоprofile.polr, profile
объект (унаследованный классprofile
). Там есть запись для каждого ковариата. Профилировщик зацикливается на каждом ковариате, пересчитывает оптимальное соответствие модели с этим ковариатом, фиксированным до некоторой немного другой величины. Выходные данные показывают фиксированное значение ковариаты, измеренное как масштабированное различие «z-показателя» от его оценочного значения и результирующих фиксированных эффектов в других ковариатах. Например, если вы посмотритеpr$InflMedium
, вы заметите, что, когда «z» равно 0, другие фиксированные эффекты такие же, как и в исходной подгонке.Опять
?plot.profile
дает описание. График грубо показывает, как коэффициенты регрессии ковариально. тау - это масштабированная разница, а z-значение раньше, поэтому значение 0 дает оптимальные коэффициенты подгонки, обозначенные галочкой. Вы бы не сказали, что эта подгонка так хорошо себя ведет, но эти «линии» на самом деле являются сплайнами. Если бы вероятность очень нерегулярно вела себя при оптимальной подгонке, вы бы увидели странное и непредсказуемое поведение в сюжете. Это позволит вам оценить выход, используя более надежную оценку ошибок (начальная загрузка / складной нож), рассчитать CI, использоватьmethod='profile'
для перекодирования переменных или выполнить другую диагностику.В файле справки говорится: «Метод пар показывает для каждой пары параметров x и y две кривые, пересекающиеся при оценке максимального правдоподобия, которые дают локусы точек, в которых касательные к контурам вероятности двумерного профиля становятся вертикальными и горизонтальный, соответственно. В случае точно двумерной вероятности нормального профиля эти две кривые были бы прямыми линиями, дающими условные средние y | x и x | y, и контуры были бы точно эллиптическими. " По сути, они снова помогают визуализировать эллипсы доверия. Неортогональные оси указывают на очень коваризуемые меры, такие как InfMedium и InfHigh, которые интуитивно очень связаны. Опять же, нерегулярные вероятности могут привести к тому, что образы здесь довольно непонятные.
Одно предположение, которое хорошо оценить, это предположение о пропорциональных шансах. Это в некоторой степени отражается в глобальном тесте (который оценивает polr по насыщенной логлинеарной модели). Ограничение здесь состоит в том, что с большими данными глобальные тесты всегда терпят неудачу. В результате, использование графики и проверка оценок (бета-версий) и точности (SE) для логлинейной модели и подгонки polr является хорошей идеей. Если они массово не согласны, возможно, что-то не так.
При упорядоченных результатах трудно определить процентное согласие. Как вы выберете классификатор, основанный на модели, и если вы это сделаете, то как вы будете считать плохую производительность из плохого классификатора.
mode
это плохой выбор. Если у меня есть 10 категорийных логитов и мой прогноз всегда только на одну категорию, возможно, это не плохо. Кроме того, моя модель может правильно предсказать 40% вероятности ответа 0, а также 20% вероятности 8, 9, 10. Итак, если я наблюдаю 9, это хорошо или плохо? Если вы должны измерить соглашение, используйте взвешенную каппу или даже MSE. Логлинейная модель всегда будет давать наилучшее согласие. Это не то, что делает POLR.Вы можете тестировать вложенные модели в пакете
waldtest
иlrtest
вlmtest
пакете R. Это эквивалентно ANOVA. Интерпретация точно такая же, как с GLM.Опять же, в отличие от линейных моделей, модель POLR может иметь проблемы с нерегулярной вероятностью, поэтому вывод, основанный на гессиане, может быть очень нестабильным. Это аналогично подгонке смешанных моделей, см., Например, файл справки
confint.merMod
для пакета lme4. Здесь оценки, сделанные с помощью профилирования, показывают, что ковариация ведется хорошо. Программисты сделали бы это по умолчанию, за исключением того, что профилирование может быть очень сложным в вычислительном отношении, и, таким образом, они оставляют это на ваше усмотрение. Если вы должны увидеть вывод на основе Wald, используйтеcoeftest(house.plr)
изlrtest
пакета.источник
Чтобы «проверить» (т. Е. Оценить) предположение о пропорциональных шансах в R, вы можете использовать residuals.lrm () в пакете дизайна Фрэнка Харрелла-младшего. Если вы наберете? Residuals.lrm, есть быстрый для повторения пример того, как Фрэнк Харрелл рекомендует оценивать предположение о пропорциональных коэффициентах (т. Е. Визуально, а не с помощью кнопочного теста). Проектируйте оценки упорядоченных логистических регрессий, используя lrm (), который вы можете заменить на polr () из MASS.
Более формальный пример того, как визуально проверить предположение о пропорциональных шансах в R, см. В статье: «Модели регрессионного анализа ординальных реакций в экологии» Автор (ы): Антуан Гисан и Фрэнк Э. Харрелл Источник: Journal of Vegetation Science, Vol. 11, № 5 (октябрь 2000 г.), с. 617-626
источник