Отчет Кристофера Мэннинга по логистической регрессии в R показывает логистическую регрессию в R следующим образом:
ced.logr <- glm(ced.del ~ cat + follows + factor(class),
family=binomial)
Некоторый вывод:
> summary(ced.logr)
Call:
glm(formula = ced.del ~ cat + follows + factor(class),
family = binomial("logit"))
Deviance Residuals:
Min 1Q Median 3Q Max
-3.24384 -1.34325 0.04954 1.01488 6.40094
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.31827 0.12221 -10.787 < 2e-16
catd -0.16931 0.10032 -1.688 0.091459
catm 0.17858 0.08952 1.995 0.046053
catn 0.66672 0.09651 6.908 4.91e-12
catv -0.76754 0.21844 -3.514 0.000442
followsP 0.95255 0.07400 12.872 < 2e-16
followsV 0.53408 0.05660 9.436 < 2e-16
factor(class)2 1.27045 0.10320 12.310 < 2e-16
factor(class)3 1.04805 0.10355 10.122 < 2e-16
factor(class)4 1.37425 0.10155 13.532 < 2e-16
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 958.66 on 51 degrees of freedom
Residual deviance: 198.63 on 42 degrees of freedom
AIC: 446.10
Number of Fisher Scoring iterations: 4
Затем он подробно расскажет о том, как интерпретировать коэффициенты, сравнивать разные модели и так далее. Довольно полезно
Тем не менее, сколько дисперсии учитывает модель? Страница Stata на логистической регрессии говорит:
Технически, не может быть вычислен таким же образом в логистической регрессии, как в регрессии OLS. Псевдо- в логистической регрессии определяется как , где представляет логарифмическую вероятность для модели «только константа», а - логарифмическую вероятность для полной модели с постоянные и предикторы.R 2 1 - L 1 L0L1
Я понимаю это на высоком уровне. Модель только для констант будет без каких-либо параметров (только член перехвата). Логарифмическая вероятность - это мера того, насколько точно параметры соответствуют данным. На самом деле, Мэннинг рода намеки , что девиация может быть . Возможно, нулевое отклонение только для констант, а остаточное отклонение составляет модели? Однако я не совсем кристально чист.- 2 бревна L
Может ли кто-нибудь проверить, как на самом деле вычисляется псевдо- в R, используя этот пример?
источник
Ответы:
Не забудьте пакет rms Фрэнка Харрелла. Вы найдете все необходимое для подбора и проверки GLM.
Вот игрушечный пример (только с одним предиктором):
Это дает:
Теперь, используя
lrm
функцию,Вскоре вы получите множество индексов соответствия модели, включая Nagelkerke , с :R2
print(mod1b)
Здесь и вычисляется как , где LR - это stat (сравнивая две вложенные модели, которые вы описали), тогда как знаменатель - это только максимальное значение для . Для идеальной модели мы ожидаем , то есть .( 1 - exp ( - LR / n ) ) / ( 1 - exp ( - ( - 2 L 0 ) / n ) ) χ 2 R 2 LR = 2 L 0 R 2 = 1R2=0.445 (1−exp(−LR/n))/(1−exp(−(−2L0)/n)) χ2 R2 LR=2L0 R2=1
Рукой,
Эвут У. Штейерберг обсудил использование с GLM в своей книге « Клинические прогностические модели» (Springer, 2009, § 4.2.2, стр. 58-60). По сути, взаимосвязь между статистикой LR и Нагелкерке приблизительно линейна (она будет более линейной с низким уровнем заболеваемости). Теперь, как обсуждалось в предыдущей ветке, на которую я ссылался в своем комментарии, вы можете использовать другие показатели, такие как статистика которая эквивалентна статистике AUC (в приведенной выше ссылке также есть хорошая иллюстрация, см. Рисунок 4.6).R 2 cR2 R2 c
источник
Чтобы легко получить псевдо Макфаддена для подобранной модели в R, используйте пакет "pscl" Саймона Джекмана и команду pR2. http://cran.r-project.org/web/packages/pscl/index.htmlR2
источник
Будьте осторожны с расчетом псевдо-R2 :
Псевдо- Макфаддена рассчитывается как , где - логарифмическая вероятность полной модели, а - логарифмическая вероятность модели с единственным перехватом.R 2 М = 1 - л п л е ц л лR2 лп л еулллп л еUллR2M=1−lnL^fulllnL^null lnL^full lnL^full
Два подхода для расчета псевдо- :R2
Использовать отклонение: поскольку ,deviance=−2∗ln(Lfull) null.deviance=−2∗ln(Lnull)
pR2 = 1 - mod$deviance / mod$null.deviance # works for glm
Используйте функцию "logLik" в R и определении (также работает для образца)
mod_null <- glm(y~1, family = binomial, data = insample) 1- logLik(mod)/logLik(mod_null)
Пример:
псевдо-R вне образца
Обычно псевдо- вне вычисляется как где - это логарифмическая вероятность для периода отсутствия выборки на основе оценочных коэффициентов периода выборки, а - логарифмическая вероятность для модели только для перехвата периода выборки.R2
коды:
pred.out.link <- predict(mod, outSample, type = "link") mod.out.null <- gam(Default~1, family = binomial, data = outSample) pR2.out <- 1 - sum(outSample$y * pred.out.link - log(1 + exp(pred.out.link))) / logLik(mod.out.null)
источник
model1 <- glm(cbind(ncases, ncontrols) ~ agegp + tobgp * alcgp, data = esoph, family = binomial)
и вызовитеmodel1$deviance
и-2*logLik(model1)
.если отклонение было пропорционально логарифмической вероятности, и каждый использует определение (см., например, McFadden здесь )
тогда псевдо- выше будет = 0.7928R2 1−198.63958.66
Вопрос в том, пропорционально ли сообщаемое отклонение логарифмической вероятности?
источник
Если его из образца , то я считаю , что должны быть вычислены в соответствии с лог-правдоподобия как , где является логарифмическая вероятность тестовых данных с прогнозирующей моделью, откалиброванной на тренировочном наборе, а - логарифмическая вероятность тестовых данных с моделью, в которой только константа установлена на тренировочном наборе, а затем используйте подобранную константа для прогнозирования на тестовом множестве, вычисляющая вероятности и, следовательно, получающая логарифмическую вероятность.R2 R2=1−llfullllconstant llfull llconstant
Обратите внимание, что в линейной регрессии, аналогично, вне выборки вычисляется как , в частности, если мы посмотрим на знаменательный член , прогноз использует среднее значение по обучающему набору, . Это похоже на то, что если мы подгоняем модель в обучающих данных только с константой, то мы должны минимизировать , что приводит к , тогда эта простая прогнозирующая модель с постоянной константой является моделью, используемой как benchamrk (т.е. в знаменателе oosR2 R2=1−∑i(yi−y^i)2∑i(yi−y¯¯¯train)2 ∑i(yi−y¯¯¯train)2 y¯¯¯train ∑i(yi−β0)2 & beta ; 0= ¯ y trainR2Rβ^0=y¯¯¯train R2 член) для расчета вне образца .R2
источник