O que é GLM em R?

Modelos lineares generalizados é um subconjunto de modelos de regressão linear e suporta efetivamente distribuições não normais. Para suportar isso, é recomendável usar a função glm (). O GLM funciona bem com uma variável quando a variação não é constante e distribuída normalmente. Uma função de link é definida para transformar a variável de resposta para ajustar-se ao modelo apropriado. Um modelo linear é feito com a família e a fórmula. O modelo GLM possui três componentes principais chamados aleatórios (probabilidade), sistemáticos (preditores lineares) e componentes de link (para a função logit). A vantagem de usar o glm é que eles têm flexibilidade do modelo, não há necessidade de variação constante e esse modelo se ajusta à estimativa de probabilidade máxima e suas proporções. Neste tópico, vamos aprender sobre o GLM em R.

Função GLM

Sintaxe: glm (fórmula, família, dados, pesos, subconjunto, Iniciar = nulo, modelo = TRUE, método = ””…)

Aqui, os tipos de família (incluem tipos de modelo) incluem binomial, Poisson, Gaussiano, gama, quase. Cada distribuição executa um uso diferente e pode ser usada na classificação e na previsão. E quando o modelo é gaussiano, a resposta deve ser um número inteiro real.

E quando o modelo é binomial, a resposta deve ser classes com valores binários.

E quando o modelo é Poisson, a resposta deve ser não negativa com um valor numérico.

E quando o modelo é gama, a resposta deve ser um valor numérico positivo.

glm.fit () - Para ajustar um modelo

Lrfit () - indica ajuste de regressão logística.

update () - ajuda na atualização de um modelo.

anova () - é um teste opcional.

Como criar GLM em R?

Aqui veremos como criar um modelo linear generalizado fácil com dados binários usando a função glm (). E continuando com o conjunto de dados Árvores.

Exemplos

// Importando uma biblioteca
library(dplyr)
glimpse(trees)

Para ver os valores categóricos, os fatores são atribuídos.

levels(factor(trees$Girth))

// Verificando variáveis ​​contínuas

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

// Incluindo o conjunto de dados da árvore na pesquisa R Pathattach (árvores)

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

Resultado:

Chamada: glm (fórmula = Volume ~ Altura + Circunferência)

Coeficientes:

(Intercepto) Altura Circunferência

-57, 9877 0, 393 4, 7082

Graus de liberdade: 30 total (ou seja, nulo); 28 Residual

Desvio nulo: 8106

Desvio residual: 421, 9 AIC: 176, 9

summary(x)

Ligar:

glm (fórmula = Volume ~ Altura + Circunferência)

Deviance Residuals:

Mín. 1T Mediana 3T Max

-6, 4065 -2, 6493 -0, 2876 2.2003 8, 4847

Coeficientes:

Estimativa Std. Erro t valor Pr (> | t |)

(Interceptação) -57, 9877 8, 6382 -6, 713 2, 75e-07 ***

Altura 0, 3393 0, 1302 2, 607 0, 0145 *

Circunferência 4, 7082 0, 2643 17, 816 <2e-16 ***

-

Signif. códigos: 0 '***' 0, 001 '**' 0, 01 '*' 0, 05 '.' 0, 1 '' 1

(Parâmetro de dispersão para a família gaussiana considerada 15.06862)

Desvio nulo: 8106, 08 em 30 graus de liberdade

Desvio residual: 421, 92 em 28 graus de liberdade

AIC: 176.91

Número de iterações de pontuação do Fisher: 2

A saída da função de resumo fornece as chamadas, coeficientes e resíduos. A resposta acima mostra que o coeficiente de altura e circunferência não é significativo, pois a probabilidade deles é menor que 0, 5. E há duas variantes de desvio denominadas nulas e residuais. Finalmente, a pontuação de Fisher é um algoritmo que resolve problemas de máxima probabilidade. Com binomial, a resposta é um vetor ou matriz. cbind () é usado para ligar os vetores da coluna em uma matriz. E para obter as informações detalhadas do resumo do ajuste é usado.

Para fazer o teste do Hood, o seguinte código é executado.

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

Ajuste do modelo

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

resumo (árvores)

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

Para obter o desvio padrão apropriado

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

A seguir, nos referimos à variável de resposta de contagem para modelar um bom ajuste de resposta. Para calcular isso, usaremos o conjunto de dados USAccDeath.

Vamos inserir os seguintes trechos no console do R e ver como a contagem e o quadrado do ano são realizados neles.

data("USAccDeaths")
force(USAccDeaths)

// Analisar o ano de 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)

Ligar:

glm (fórmula = contagem ~ ano + anoSqr, família = "poisson", dados = disco)

Deviance Residuals:

Mín. 1T Mediana 3T Max

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

Coeficientes:

Estimativa Std. Valor z de erro Pr (> | z |)

(Interceptação) 9.187e + 00 3.557e-03 2582, 49 <2e-16 ***

ano -7, 207e-03 2.354e-04 -30.62 <2e-16 ***

anoSqr 8.841e-05 3.221e-06 27.45 <2e-16 ***

-

Signif. códigos: 0 '***' 0, 001 '**' 0, 01 '*' 0, 05 '.' 0, 1 '' 1

(Parâmetro de dispersão para a família Poisson considerado 1)

Desvio nulo: 7357, 4 em 71 graus de liberdade

Desvio residual: 6358, 0 em 69 graus de liberdade

AIC: 7149.8

Número de iterações de pontuação do Fisher: 4

Para verificar o melhor ajuste do modelo, o seguinte comando pode ser usado para encontrar

os resíduos para o teste. A partir do resultado abaixo, o valor é 0.

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

(1) 0

Usando a família QuasiPoisson para a maior variação nos dados fornecidos

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

Ligar:

glm (fórmula = contagem ~ ano + anoSqr, família = "quasipoisson",

dados = disco)

Deviance Residuals:

Mín. 1T Mediana 3T Max

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

Coeficientes:

Estimativa Std. Erro t valor Pr (> | t |)

(Interceptação) 9.187e + 00 3.417e-02 268.822 <2e-16 ***

ano -7, 207e-03 2.261e-03 -3.188 0, 00216 **

anoSqr 8.841e-05 3.095e-05 2.857 0, 00565 **

-

(Parâmetro de dispersão para a família quasipoisson considerado 92.28857)

Desvio nulo: 7357, 4 em 71 graus de liberdade

Desvio residual: 6358, 0 em 69 graus de liberdade

AIC: NA

Número de iterações de pontuação do Fisher: 4

Comparando Poisson com o valor AIC binomial difere significativamente. Eles podem ser analisados ​​por precisão e taxa de recuperação. O próximo passo é verificar se a variação dos resíduos é proporcional à média. Em seguida, podemos plotar usando a biblioteca ROCR para melhorar o modelo.

Conclusão

Portanto, focamos no modelo especial chamado modelo linear generalizado, que ajuda a focar e estimar os parâmetros do modelo. É principalmente o potencial para uma variável de resposta contínua. E vimos como o glm se encaixa nos pacotes integrados do R. São as abordagens mais populares para medir dados de contagem e uma ferramenta robusta para técnicas de classificação utilizadas por um cientista de dados. A linguagem R, é claro, ajuda a executar funções matemáticas complicadas

Artigos recomendados

Este é um guia para o GLM em R. Aqui discutimos a função GLM e como criar o GLM em R com exemplos e saída de conjuntos de dados em árvore. Você também pode consultar o seguinte artigo para saber mais -

  1. R Linguagem de Programação
  2. Arquitetura de Big Data
  3. Regressão logística em R
  4. Trabalhos de análise de big data
  5. Regressão de Poisson em R | Implementando a regressão de Poisson

Categoria: