Что такое GLM в R?

Обобщенные линейные модели являются подмножеством моделей линейной регрессии и эффективно поддерживают ненормальные распределения. Для поддержки этого рекомендуется использовать функцию glm (). GLM хорошо работает с переменной, когда дисперсия не постоянна и распределяется нормально. Функция связи определяется для преобразования переменной отклика в соответствии с подходящей моделью. Модель LM сделана и с семьей и с формулой. Модель GLM имеет три ключевых компонента: случайный (вероятность), систематический (линейный предиктор), компонент связи (для функции логита). Преимущество использования glm заключается в том, что они обладают гибкостью модели, не требуют постоянной дисперсии, и эта модель соответствует оценке максимального правдоподобия и ее отношениям. В этой теме мы собираемся узнать о GLM в R.

Функция GLM

Синтаксис: glm (формула, семейство, данные, веса, подмножество, Start = null, model = TRUE, method = ””…)

Здесь семейные типы (включая типы моделей) включают в себя биномиальное, пуассоновское, гауссовское, гамма, квази. Каждое распределение выполняет различное использование и может использоваться или в классификации и в прогнозировании. И когда модель гауссова, ответ должен быть целым числом.

И когда модель является биномиальной, ответом должны быть классы с двоичными значениями.

И когда модель Пуассона, ответ должен быть неотрицательным с числовым значением.

И когда модель гамма, ответ должен быть положительным числовым значением.

glm.fit () - чтобы соответствовать модели

Lrfit () - обозначает соответствие логистической регрессии.

update () - помогает в обновлении модели.

anova () - это необязательный тест.

Как создать GLM в R?

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

Примеры

// Импорт библиотеки
library(dplyr)
glimpse(trees)

Чтобы увидеть категориальные значения факторов присваиваются.

levels(factor(trees$Girth))

// Проверка непрерывных переменных

library(dplyr)
continuous <-select_if(trees, is.numeric)
summary(continuous)

// Включение набора данных дерева в поиск R Pathattach (деревья)

x<-glm(Volume~Height+Girth)
x

Выход:

Call: glm (формула = объем ~ высота + обхват)

Коэффициенты:

(Перехват) Высота обхвата

-57, 9877 0, 3393 4, 7082

Степени свободы: 30 всего (т. Е. Ноль); 28 Остаточный

Нулевое отклонение: 8106

Остаточное отклонение: 421, 9 AIC: 176, 9

summary(x)

Вызов:

glm (формула = объем ~ высота + обхват)

Остатки отклонения:

Мин 1Q Медиана 3Q Макс

-6.4065 -2.6493 -0.2876 2.2003 8.4847

Коэффициенты:

Оценка Станд. Значение ошибки t Pr (> | t |)

(Перехват) -57, 9877 8, 6382 -6, 713 2, 75e-07 ***

Высота 0, 3393 0, 1302 2, 607 0, 0145 *

Обхват 4, 7082 0, 2643 17, 816 <2e-16 ***

-

Signif. коды: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0, 1 '' 1

(Параметр дисперсии для семейства гауссов принят равным 15, 06862)

Нулевое отклонение: 8106, 08 на 30 степенях свободы

Остаточное отклонение: 421, 92 на 28 степеней свободы

AIC: 176, 91

Количество итераций Фишера: 2

Выходные данные функции суммирования выдают вызовы, коэффициенты и остатки. Приведенный выше ответ показывает, что как коэффициент роста, так и коэффициент обхвата незначительны, поскольку вероятность их составляет менее 0, 5. И есть два варианта отклонения, называемые нулевым и остаточным. Наконец, оценка Фишера - это алгоритм, который решает проблемы максимального правдоподобия. С биномиальным ответом является вектор или матрица. cbind () используется для связывания векторов столбцов в матрице. И чтобы получить подробную информацию о подгонке резюме используется.

Чтобы выполнить тест Like Hood, выполняется следующий код.

step(x, test="LRT")
Start: AIC=176.91
Volume ~ Height + Girth
Df Deviance AIC scaled dev. Pr(>Chi)
421.9 176.91
- Height 1 524.3 181.65 6.735 0.009455 **
- Girth 1 5204.9 252.80 77.889 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Call: glm(formula = Volume ~ Height + Girth)
Coefficients:
(Intercept) Height Girth
-57.9877 0.3393 4.7082
Degrees of Freedom: 30 Total (ie Null); 28 Residual
Null Deviance: 8106
Residual Deviance: 421.9 AIC: 176.9

Модель подходит

a<-cbind(Height, Girth - Height)
> a

резюме (деревья)

Girth Height Volume
Min. : 8.30 Min. :63 Min. :10.20
1st Qu.:11.05 1st Qu.:72 1st Qu.:19.40
Median :12.90 Median :76 Median :24.20
Mean :13.25 Mean :76 Mean :30.17
3rd Qu.:15.25 3rd Qu.:80 3rd Qu.:37.30
Max. :20.60 Max. :87 Max. :77.00

Чтобы получить соответствующее стандартное отклонение

apply(trees, sd)
Girth Height Volume
3.138139 6.371813 16.437846
predict <- predict(logit, data_test, type = 'response')

Далее мы ссылаемся на переменную count count, чтобы смоделировать хорошее соответствие ответа. Чтобы вычислить это, мы будем использовать набор данных USAccDeath.

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

data("USAccDeaths")
force(USAccDeaths)

// Проанализировать год с 1973-1978.

disc <- data.frame(count=as.numeric(USAccDeaths), year=seq(0, (length(USAccDeaths)-1), 1)))
yearSqr=disc$year^2
a1 <- glm(count~year+yearSqr, family="poisson", data=disc)
summary(a1)

Вызов:

glm (формула = число ~ год + годSqr, семья = "пуассон", данные = диск)

Остатки отклонения:

Мин 1Q Медиана 3Q Макс

-22, 4344 -6, 4401 -0, 0981 6, 0508 21, 4578

Коэффициенты:

Оценка Станд. Значение ошибки z Pr (> | z |)

(Перехват) 9, 187e + 00 3, 555e-03 2582, 49 <2e-16 ***

год -7.207e-03 2.354e-04 -30.62 <2e-16 ***

yearSqr 8, 841e-05 3, 221e-06 27, 45 <2e-16 ***

-

Signif. коды: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0, 1 '' 1

(Параметр дисперсии для семейства Пуассона принят за 1)

Нулевое отклонение: 7357, 4 на 71 степени свободы

Остаточное отклонение: 6358, 0 на 69 степенях свободы

AIC: 7149, 8

Количество итераций Фишера: 4

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

остатки для теста. Из приведенного ниже результата значение равно 0.

1 - pchisq(deviance(a1), df.residual(a1))

(1) 0

Использование семейства QuasiPoisson для большей дисперсии в данных

a2 <- glm(count~year+yearSqr, family="quasipoisson", data=disc)
summary(a2)

Вызов:

glm (формула = число ~ год + годSqr, семья = "квазипуассон",

данные = диск)

Остатки отклонения:

Мин 1Q Медиана 3Q Макс

-22, 4344 -6, 4401 -0, 0981 6, 0508 21, 4578

Коэффициенты:

Оценка Станд. Значение ошибки t Pr (> | t |)

(Перехват) 9.187e + 00 3.417e-02 268.822 <2e-16 ***

год -7.207e-03 2.261e-03 -3.188 0, 00216 **

yearSqr 8, 841e-05 3, 095e-05 2, 857 0, 00565 **

-

(Параметр дисперсии для семейства квазипуассонов принят за 92, 28857)

Нулевое отклонение: 7357, 4 на 71 степени свободы

Остаточное отклонение: 6358, 0 на 69 степенях свободы

AIC: NA

Количество итераций Фишера: 4

Сравнение Пуассона с биномиальным значением AIC существенно отличается. Они могут быть проанализированы по точности и коэффициенту возврата. Следующим шагом является проверка отклонения остатков пропорционально среднему значению. Затем мы можем построить график с использованием библиотеки ROCR для улучшения модели.

Вывод

Поэтому мы сосредоточились на специальной модели, называемой обобщенной линейной моделью, которая помогает фокусировать и оценивать параметры модели. Это прежде всего потенциал для переменной непрерывного отклика. И мы увидели, как glm подходит для встроенных пакетов R. Они являются наиболее популярными подходами для измерения данных подсчета и надежным инструментом для методов классификации, используемых ученым. Язык R, конечно, помогает в выполнении сложных математических функций

Рекомендуемые статьи

Это руководство по GLM в R. Здесь мы обсуждаем функцию GLM и Как создать GLM в R с примерами наборов данных дерева и выходными данными. Вы также можете посмотреть следующую статью, чтобы узнать больше -

  1. Язык программирования R
  2. Архитектура больших данных
  3. Логистическая регрессия в R
  4. Аналитика больших данных
  5. Пуассоновская регрессия в R | Реализация пуассоновской регрессии