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.