Estou realizando uma regressão logística. Criei os seguintes dados de teste (os dois preditores e o critério são variáveis binárias):
UV1 UV2 AV
1 1 1 1
2 1 1 1
3 1 1 1
4 1 1 1
5 1 1 1
6 1 1 1
7 1 1 1
8 0 0 1
9 0 0 1
10 0 0 1
11 1 1 0
12 1 1 0
13 1 0 0
14 1 0 0
15 1 0 0
16 1 0 0
17 1 0 0
18 0 0 0
19 0 0 0
20 0 0 0
AV =
Para medir o efeito dos UVs no AV, é necessária uma regressão logística, pois o AV é uma variável binária. Por isso, usei o seguinte código
> lrmodel <- glm(AV ~ UV1 + UV2, data = lrdata, family = "binomial")
incluindo "family =" binomial "" . Isso está correto?
Em relação aos meus dados de teste, eu estava pensando em todo o modelo, especialmente nos estimadores e na significância:
> summary(lrmodel)
Call:
glm(formula = AV ~ UV1 + UV2, family = "binomial", data = lrdata)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.7344 -0.2944 0.3544 0.7090 1.1774
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -4.065e-15 8.165e-01 0.000 1.000
UV1 -1.857e+01 2.917e+03 -0.006 0.995
UV2 1.982e+01 2.917e+03 0.007 0.995
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 27.726 on 19 degrees of freedom
Residual deviance: 17.852 on 17 degrees of freedom
AIC: 23.852
Number of Fisher Scoring iterations: 17
Por que o UV2 não é significativo. Veja, portanto, que, para o grupo AV = 1, existem 7 casos com UV2 = 1, e para o grupo AV = 0, existem apenas 3 casos com UV2 = 1. Eu esperava que o UV2 fosse um discriminador significativo.
Apesar da não significância dos UVs, os estimadores são - na minha opinião - muito altos (por exemplo, para UV2 = 1,982e + 01). Como isso é possível?
Por que o intercepto não é 0,5 ?? Temos 5 casos com AV = 1 e 5 casos com AV = 0.
Além disso: criei o UV1 como um preditor que eu esperava não ser significativo: para o grupo AV = 1, existem 5 casos com UV1 = 1, e para o grupo AV = 0, existem 5 casos com UV1 = 1 também.
Toda a "imagem" que ganhei com a logística está me confundindo ...
O que estava me consumindo mais: quando executo uma regressão "NÃO logística" (omitindo "family =" binomial " )
> lrmodel <- glm(AV ~ UV1 + UV2, data = lrdata,)
Eu recebo os resultados esperados
Call:
glm(formula = AV ~ UV1 + UV2, data = lrdata)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.7778 -0.1250 0.1111 0.2222 0.5000
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.5000 0.1731 2.889 0.01020 *
UV1 -0.5000 0.2567 -1.948 0.06816 .
UV2 0.7778 0.2365 3.289 0.00433 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for gaussian family taken to be 0.1797386)
Null deviance: 5.0000 on 19 degrees of freedom
Residual deviance: 3.0556 on 17 degrees of freedom
AIC: 27.182
Number of Fisher Scoring iterations: 2
- UV1 não é significativo! :-)
- UV2 tem um efeito positivo em AV = 1! :-)
- A interceptação é de 0,5! :-)
Minha pergunta geral: por que a regressão logística (incluindo "family =" binomial ") não está produzindo resultados conforme o esperado, mas uma regressão" NOT-logistic "(não incluindo" family = "binomial") produz?
Atualização: são as observações descritas acima devido à correlação de UV1 e UV 2. Corr = 0,56 Após manipular os dados do UV2
AV: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
UV1: 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0
UV2: 0, 0, 0, 1, 1, 1, 1, 1, 1, 1 , 1, 1, 0, 0, 0, 0, 0, 0, 0, 0
(Alterei as posições dos três 0s com os três 1s no UV2 para obter uma correlação <0,1 entre UV1 e UV2).
UV1 UV2 AV
1 1 0 1
2 1 0 1
3 1 0 1
4 1 1 1
5 1 1 1
6 1 1 1
7 1 1 1
8 0 1 1
9 0 1 1
10 0 1 1
11 1 1 0
12 1 1 0
13 1 0 0
14 1 0 0
15 1 0 0
16 1 0 0
17 1 0 0
18 0 0 0
19 0 0 0
20 0 0 0
para evitar correlação, meus resultados se aproximam das minhas expectativas:
Call:
glm(formula = AV ~ UV1 + UV2, family = "binomial", data = lrdata)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.76465 -0.81583 -0.03095 0.74994 1.58873
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.1248 1.0862 -1.036 0.3004
UV1 0.1955 1.1393 0.172 0.8637
UV2 2.2495 1.0566 2.129 0.0333 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 27.726 on 19 degrees of freedom
Residual deviance: 22.396 on 17 degrees of freedom
AIC: 28.396
Number of Fisher Scoring iterations: 4
Mas por que a correlação influencia os resultados da regressão logística e não os resultados da regressão "não logística"?
t calculating an exact y-value but an value which can be defined as the probability to be part of group AV = 1 (and not part of group AV = 0); and this value isn
t exata 0 ou 1, mas está entre 0 e 1 e é necessário escolher um limite para o seu modelo, para atribuir um caso ao grupo AV = 1, quando o limite é excedido. Portanto, existe um valor mais "abstrato" na regressão logística e não um valor y claro, como na regressão linear. Como lidar com isso?
R
exemplo de trabalho em uma solução em stats.stackexchange.com/a/40609/919 : veja a linha de código abaixo do comentário "Conduzir uma simulação".