R Language
Обобщенные линейные модели
Поиск…
Логистическая регрессия по набору данных «Титаник»
Логистическая регрессия является частным случаем обобщенной линейной модели , используемой для моделирования дихотомических исходов ( пробит и дополнительные лог-лог- модели тесно связаны).
Имя происходит от используемой функции ссылки, функции logit или log-odds . Обратная функция логита называется логистической функцией и задается:
Эта функция принимает значение между ] -Inf; + Inf [ и возвращает значение от 0 до 1 ; т.е. логистическая функция принимает линейный предиктор и возвращает вероятность.
glm
регрессию можно выполнить с glm
функции glm
с опцией family = binomial
(ярлык для family = binomial(link="logit")
, логит - это функция связи по умолчанию для семейства биномиал).
В этом примере мы пытаемся предсказать судьбу пассажиров на борту RMS Titanic.
Прочтите данные:
url <- "http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt"
titanic <- read.csv(file = url, stringsAsFactors = FALSE)
Очистите отсутствующие значения:
В этом случае мы заменяем недостающие значения на приближение, среднее.
titanic$age[is.na(titanic$age)] <- mean(titanic$age, na.rm = TRUE)
Обучить модель:
titanic.train <- glm(survived ~ pclass + sex + age,
family = binomial, data = titanic)
Резюме модели:
summary(titanic.train)
Выход:
Call:
glm(formula = survived ~ pclass + sex + age, family = binomial, data = titanic)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.6452 -0.6641 -0.3679 0.6123 2.5615
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 3.552261 0.342188 10.381 < 2e-16 ***
pclass2nd -1.170777 0.211559 -5.534 3.13e-08 ***
pclass3rd -2.430672 0.195157 -12.455 < 2e-16 ***
sexmale -2.463377 0.154587 -15.935 < 2e-16 ***
age -0.042235 0.007415 -5.696 1.23e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1686.8 on 1312 degrees of freedom
Residual deviance: 1165.7 on 1308 degrees of freedom
AIC: 1175.7
Number of Fisher Scoring iterations: 5
Первое, что отображается, - это вызов. Это напоминание о модели и указанных опциях.
Затем мы видим остатки отклонения, которые являются мерой соответствия модели. Эта часть вывода показывает распределение остатков отклонения для отдельных случаев, используемых в модели.
В следующей части вывода показаны коэффициенты, их стандартные ошибки, z-статистика (иногда называемая статистикой Wald z) и связанные с ней значения p.
- Качественные переменные «думмируются». В качестве ссылки рассматривается модальность. Эталонная модальность может быть изменена с
I
в формуле. - Все четыре предиктора статистически значимы на уровне 0,1%.
- Коэффициенты логистической регрессии дают изменение логарифмических коэффициентов результата для однократного увеличения предикторной переменной.
- Чтобы увидеть соотношение шансов (мультипликативное изменение шансов выживания на единицу увеличения предикторной переменной), оценивайте параметр.
- Чтобы увидеть доверительный интервал (CI) параметра, используйте
confint
.
- Качественные переменные «думмируются». В качестве ссылки рассматривается модальность. Эталонная модальность может быть изменена с
Ниже таблицы коэффициентов соответствуют индексы, в том числе нулевые и отклоняющие значения и Akaike Information Criterion (AIC), которые могут использоваться для сравнения производительности модели.
- Сравнивая модели с максимальной вероятностью с теми же данными, чем меньше AIC, тем лучше подходит.
- Одним из показателей соответствия модели является значение общей модели. Этот тест спрашивает, подходит ли модель с предикторами лучше, чем модель с просто перехватом (т. Е. Нулевой моделью).
Пример коэффициентов шансов:
exp(coef(titanic.train)[3])
pclass3rd
0.08797765
С этой моделью, по сравнению с первым классом, пассажиры третьего класса имеют примерно одну десятую шансов на выживание.
Пример доверительного интервала для параметров:
confint(titanic.train)
Waiting for profiling to be done...
2.5 % 97.5 %
(Intercept) 2.89486872 4.23734280
pclass2nd -1.58986065 -0.75987230
pclass3rd -2.81987935 -2.05419500
sexmale -2.77180962 -2.16528316
age -0.05695894 -0.02786211
Пример расчета значения общей модели:
Статистическая статистика распределяется по хи-квадрату со степенями свободы, равными различиям в степенях свободы между током и нулевой моделью (т. Е. Числом предикторных переменных в модели).
with(titanic.train, pchisq(null.deviance - deviance, df.null - df.residual
, lower.tail = FALSE))
[1] 1.892539e-111
Значение p находится вблизи 0, что показывает сильно значимую модель.