R - Regressão Logística

A Regressão Logística é um modelo de regressão no qual a variável de resposta (variável dependente) possui valores categóricos como Verdadeiro / Falso ou 0/1. Na verdade, ele mede a probabilidade de uma resposta binária como o valor da variável de resposta com base na equação matemática que a relaciona com as variáveis ​​preditoras.

A equação matemática geral para regressão logística é -

y = 1/(1+e^-(a+b1x1+b2x2+b3x3+...))

A seguir está a descrição dos parâmetros usados ​​-

  • y é a variável de resposta.

  • x é a variável preditora.

  • a e b são os coeficientes que são constantes numéricas.

A função usada para criar o modelo de regressão é o glm() função.

Sintaxe

A sintaxe básica para glm() função na regressão logística é -

glm(formula,data,family)

A seguir está a descrição dos parâmetros usados ​​-

  • formula é o símbolo que apresenta a relação entre as variáveis.

  • data é o conjunto de dados que fornece os valores dessas variáveis.

  • familyé o objeto R para especificar os detalhes do modelo. Seu valor é binomial para regressão logística.

Exemplo

O conjunto de dados integrado "mtcars" descreve diferentes modelos de um carro com suas várias especificações de motor. No conjunto de dados "mtcars", o modo de transmissão (automático ou manual) é descrito pela coluna am que é um valor binário (0 ou 1). Podemos criar um modelo de regressão logística entre as colunas "am" e 3 outras colunas - hp, wt e cyl.

# Select some columns form mtcars.
input <- mtcars[,c("am","cyl","hp","wt")]

print(head(input))

Quando executamos o código acima, ele produz o seguinte resultado -

am   cyl  hp    wt
Mazda RX4          1   6    110   2.620
Mazda RX4 Wag      1   6    110   2.875
Datsun 710         1   4     93   2.320
Hornet 4 Drive     0   6    110   3.215
Hornet Sportabout  0   8    175   3.440
Valiant            0   6    105   3.460

Criar modelo de regressão

Nós usamos o glm() função para criar o modelo de regressão e obter seu resumo para análise.

input <- mtcars[,c("am","cyl","hp","wt")]

am.data = glm(formula = am ~ cyl + hp + wt, data = input, family = binomial)

print(summary(am.data))

Quando executamos o código acima, ele produz o seguinte resultado -

Call:
glm(formula = am ~ cyl + hp + wt, family = binomial, data = input)

Deviance Residuals: 
     Min        1Q      Median        3Q       Max  
-2.17272     -0.14907  -0.01464     0.14116   1.27641  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept) 19.70288    8.11637   2.428   0.0152 *
cyl          0.48760    1.07162   0.455   0.6491  
hp           0.03259    0.01886   1.728   0.0840 .
wt          -9.14947    4.15332  -2.203   0.0276 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 43.2297  on 31  degrees of freedom
Residual deviance:  9.8415  on 28  degrees of freedom
AIC: 17.841

Number of Fisher Scoring iterations: 8

Conclusão

No resumo, como o valor de p na última coluna é maior que 0,05 para as variáveis ​​"cil" e "hp", consideramos que são insignificantes na contribuição para o valor da variável "am". Apenas o peso (peso) impacta o valor "am" neste modelo de regressão.