Как интерпретировать вывод glm в R (с примером)


Функцию glm() в R можно использовать для подбора обобщенных линейных моделей.

Эта функция использует следующий синтаксис:

glm(формула, семейство=гаусс, данные, …)

куда:

  • формула: формула для линейной модели (например, y ~ x1 + x2)
  • семья: Статистическая семья, используемая для соответствия модели. По умолчанию используется гауссовская диаграмма, но другие параметры включают, среди прочего, биномиальную, гамму и пуассоновскую диаграмму.
  • data: имя фрейма данных, содержащего данные

На практике эта функция чаще всего используется для подбора моделей логистической регрессии путем указания «биномиального» семейства.

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

Пример: как интерпретировать вывод glm в R

В этом примере мы будем использовать встроенный набор данных mtcars в R:

#view first six rows of *mtcars* dataset
head(mtcars)

 mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

Мы будем использовать переменные disp и hp , чтобы предсказать вероятность того, что данный автомобиль примет значение 1 для переменной am .

В следующем коде показано, как использовать функцию glm() для соответствия этой модели логистической регрессии:

#fit logistic regression model
model <- glm(am ~ disp + hp, data=mtcars, family=binomial)

#view model summary
summary(model)

Call:
glm(formula = am ~ disp + hp, family = binomial, data = mtcars)

Deviance Residuals: 
 Min 1Q Median 3Q Max 
-1.9665 -0.3090 -0.0017 0.3934 1.3682 

Coefficients:
 Estimate Std. Error z value Pr(>|z|) 
(Intercept) 1.40342 1.36757 1.026 0.3048 
disp -0.09518 0.04800 -1.983 0.0474 \*
hp 0.12170 0.06777 1.796 0.0725 .
---
Signif. codes: 0 ‘\*\*\*’ 0.001 ‘\*\*’ 0.01 ‘\*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

 Null deviance: 43.230 on 31 degrees of freedom
Residual deviance: 16.713 on 29 degrees of freedom
AIC: 22.713

Number of Fisher Scoring iterations: 8

Вот как интерпретировать каждую часть вывода:

Коэффициенты и P-значения

Оценка коэффициента в выходных данных указывает среднее изменение логарифмических шансов переменной ответа, связанное с увеличением на одну единицу каждой переменной-предиктора.

Например, увеличение на одну единицу предикторной переменной disp связано со средним изменением на -0,09518 логарифмических шансов переменной ответа am, принимающей значение 1. Это означает, что более высокие значения disp связаны с более низкой вероятностью переменной am, принимающей значение 1.

Стандартная ошибка дает нам представление о изменчивости, связанной с оценкой коэффициента. Затем мы делим оценку коэффициента на стандартную ошибку, чтобы получить значение az.

Например, значение z для предикторной переменной disp вычисляется как -0,09518 / 0,048 = -1,983.

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

Например, значение p, связанное со значением z для переменной disp, равно 0,0474. Поскольку это значение меньше 0,05, мы бы сказали, что disp является статистически значимой предикторной переменной в модели.

В зависимости от ваших предпочтений вы можете решить использовать уровень значимости 0,01, 0,05 или 0,10, чтобы определить, является ли каждая предикторная переменная статистически значимой.

Нулевое и остаточное отклонение

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

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

Чтобы определить, является ли модель «полезной», мы можем вычислить статистику хи-квадрат следующим образом:

X 2 = нулевое отклонение – остаточное отклонение

с p степенями свободы.

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

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

  • Нулевое отклонение : 43,23 с df = 31
  • Остаточное отклонение : 16,713 при df = 29

Мы можем использовать эти значения для расчета статистики X 2 модели:

  • X 2 = нулевое отклонение – остаточное отклонение
  • Х 2 = 43,23 – 16,713
  • Х 2 = 26,517

Существует p = 2 степеней свободы переменных-предикторов.

Мы можем использовать калькулятор хи-квадрат для P-значения , чтобы найти, что значение X 2 26,517 с 2 степенями свободы имеет p-значение 0,000002.

Поскольку это значение p намного меньше 0,05, мы можем сделать вывод, что модель очень полезна.

АИК

Информационный критерий Акаике ( AIC ) — это показатель, который используется для сравнения соответствия различных моделей регрессии. Чем ниже значение, тем лучше регрессионная модель соответствует данным.

Он рассчитывается как:

АИК = 2К – 2 лн (Л)

куда:

  • K: Количество параметров модели.
  • ln (L) : логарифмическая вероятность модели. Это говорит нам, насколько вероятна модель, учитывая данные.

Фактическое значение для AIC не имеет смысла.

Однако, если вы подходите к нескольким регрессионным моделям, вы можете сравнить значение AIC каждой модели. Модель с самым низким AIC лучше всего подходит.

Связанный: Что считается хорошей ценностью AIC?

Дополнительные ресурсы

В следующих руководствах представлена дополнительная информация о том, как использовать функцию glm() в R:

Разница между glm и lm в R
Как использовать функцию прогнозирования с glm в R

В следующих руководствах объясняется, как обрабатывать распространенные ошибки при использовании функции glm() :

Как обращаться с предупреждением R: glm.fit: алгоритм не сошелся
Как справиться: glm.fit: подогнанные вероятности численно 0 или 1 произошли