Как интерпретировать вывод 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 произошли

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.