Как интерпретировать вывод glm в r (с примером)
Функцию glm() в R можно использовать для подгонки обобщенных линейных моделей.
Эта функция использует следующий синтаксис:
glm(формула, семейство=гауссово, данные,…)
Золото:
- формула: формула линейной модели (например, y ~ x1 + x2)
- семейство: статистическое семейство, которое будет использоваться для соответствия модели. По умолчанию используется гауссово, но другие варианты включают, среди прочего, биномиальный, гамма и пуассон.
- данные: имя блока данных, содержащего данные.
На практике эта функция чаще всего используется для подбора моделей логистической регрессии путем указания «биномиального» семейства.
В следующем примере показано, как интерпретировать выходные данные 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 available -0.09518 0.04800 -1.983 0.0474 * hp 0.12170 0.06777 1.796 0.0725 . --- Significant. 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 логарифмической вероятности того, что переменная отклика примет значение 1. Это означает, что более высокие значения disp связаны с меньшей вероятностью. . переменной беру значение 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 ln (L)
Золото:
- K: Количество параметров модели.
- ln (L) : Логарифмическое правдоподобие модели. Это говорит нам о том, насколько вероятно, что модель основана на данных.
Фактическая стоимость AIC бессмысленна.
Однако если вы подходите к нескольким моделям регрессии, вы можете сравнить значение AIC каждой модели. Модель с самым низким AIC обеспечивает наилучшее соответствие.
Связанный: Что считается хорошим значением AIC?
Дополнительные ресурсы
В следующих руководствах представлена дополнительная информация о том, как использовать функцию glm() в R:
Разница между glm и lm в R
Как использовать функцию прогнозирования с glm в R
В следующих руководствах объясняется, как обрабатывать распространенные ошибки при использовании функции glm() :
Как обрабатывать предупреждение R: glm.fit: алгоритм не сходится
Как справиться: glm.fit: произошли численно скорректированные вероятности 0 или 1.