A regressão logística pode ser utilizada para modelar a probabilidade de eventos como guerra, adoção de políticas públicas, comparecimento ao voto e formação de governo, entre muitas outras situações.
Na situação típica, o pesquisador usa uma matriz \(n \times (p+1)\) de projeto \(X\) consistindo em uma única coluna de uns e \(p\) variáveis explicativas para modelar um vetor de \(n\) resultados binários \(Y\), onde \(y_i \in \{0,1\}\), usando o modelo \[\begin{equation*} P(y_i)=P(y_i=1|X_i)=\dfrac{1}{1+e^{-\beta X_i}}, \end{equation*}\] onde \(\beta\) é um vetor dos coeficientes da regressão de comprimento \(þ+1\).
A separação ocorre em modelos de dados binários quando uma variável explicativa prediz perfeitamente zeros, uns ou ambos.
A separação também pode ocorrer quando uma combinação de variáveis explicativas prediz perfeitamente zeros, uns ou ambos; ver Lesaffre e Albert (1989). Veja Geyer (2009) e Zorn (2005) para uma visão muito mais geral do conceito de separação.
Para uma variável explicativa binária \(s_i\) (para separar a variável explicativa), a separação completa (complete separation) ocorre quando \(s_i\) prediz perfeitamente zeros e uns. Para simplificar, descrevemos a separação completa e quase completa para uma variável explicativa binária, que é mais explicável do que casos mais gerais. De fato, nos problemas das ciências sociais, as variáveis explicativas binárias mais comumente levam à separação.
A separação quase completa (quasicomplete separation) ocorre quando \(s_i\) prediz perfeitamente zeros ou uns, mas não ambos (Zorn 2005). A sobreposição (overlap), o caso ideal, ocorre quando não existe tal \(s_i\). Com a sobreposição, as estimativas de máxima verossimilhança usuais existem e fornecem estimativas razoáveis dos parâmetros. No entanto, sob a separação completa ou quase-completa, as estimativas de máxima verossimilhança finitas não existem e o método usual de cálculo de erros padrão falha (Zorn 2005).
Para a variável explicativa binária \(s_i\), a separação completa ocorre quando \(s_i\) prediz perfeitamente zeros e uns. Por exemplo, suponha \(s_i\), tal que \(y_i=0\) para \(s_i=0\) e \(y_1=1\) para \(s_i=1\). Para maximizar a verossimilhança dos dados observados, a curva de regressão logística em forma de “S” deve atribuir \[\begin{equation*} P(y_i)=\dfrac{1}{1+e^{-\beta X_i}}=0, \end{equation*}\] quando \(s_i=0\) e \[\begin{equation*} P(y_i)=\dfrac{1}{1+e^{-\beta X_i}}=1, \end{equation*}\] quando \(s_i=1\). Como a curva de regressão logística está estritamente entre zero e um, essa verossimilhança não pode ser alcançada, apenas abordada de forma assintótica quando o coeficiente \(\beta_s\) para \(s_i\) se aproximando do infinito. Assim, a função de verossimilhança sob separação completa é monotônica, o que implica que não existe uma estimativa de máxima verossimilhança finita.
A separação quase completa ocorre quando \(s_i\) prediz perfeitamente tantos zeros quanto uns. Por exemplo, suponha que quando \(s_i = 0\), às vezes \(y_i = 1\) e outras vezes \(y_i = 0\), mas quando \(s_i = 1\), \(y_i = 1\) sempre. Para maximizar a verossmilhança dos dados observados, a curva de regressão logística em forma de “S” deve atribuir \[\begin{equation*} P(y_i)=\dfrac{1}{1+e^{-\beta X_i}}\in (0,1), \end{equation*}\] quando \(s_i=0\) e \[\begin{equation*} P(y_i)=\dfrac{1}{1+e^{-\beta X_i}}=1, \end{equation*}\] quando \(s_i=1\). Novamente, uma vez que a curva de regressão logística está estritamente entre zero e um, essa verossimilhança não pode ser alcançada, apenas abordada assintoticamente. Assim, a função de verossimilhança sob separação quase completa também aumenta monotonicamente conforme o coeficiente de \(s_i\) aumenta, o que novamente implica que a estimativa de máxima verossimilhança não existe.
Por conveniência, dizemos que a “direção da separação” é positiva se e somente se \(s_i=1\) implica \(y_i=1\) ou \(s_i=0\) implica que \(y_i=0\) e que a direção de separação é negativa se e somente se \(s_i=0\) implica \(y_i=1\) ou \(s_i=1\) implica que \(y_i=1\). Assim, \(\widehat{\beta}=+\infty\) quando a direção da separação for positiva e \(\widehat{\beta}=-\infty\) quando a direção da separação é negativa.
Trat = as.factor(c(rep("A",5), rep("B",5)))
score = c(40, 57, 45, 55, 58, 57, 64, 55, 62, 65)
plot(Trat ~ score, ylab = "Tratamento", xlab = "Escore")
Tratamento = ifelse(Trat=="B",1,0)
plot(Tratamento ~ score, ylab = "Tratamento", xlab = "Escore", pch = 19)
grid()
Percebemos que o escore baixo prediz o tratamento A, o escore médio (entre 55 e 60) prediz tanto o tratamento A quanto B e o escore alto (maior do que 60) prediz o tratamento B.
modelo = glm(Tratamento ~ score, family = binomial)
summary(modelo)
##
## Call:
## glm(formula = Tratamento ~ score, family = binomial)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.3493 -0.6700 0.1163 0.4583 1.5416
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -23.1981 17.6422 -1.315 0.189
## score 0.4068 0.3073 1.324 0.186
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 13.8629 on 9 degrees of freedom
## Residual deviance: 8.1529 on 8 degrees of freedom
## AIC: 12.153
##
## Number of Fisher Scoring iterations: 6
preditos = predict(modelo, type = "response")
preditos
## 1 2 3 4 5 6
## 0.0009803058 0.4971726742 0.0074450203 0.3047286085 0.5976002869 0.4971726742
## 7 8 9 10
## 0.9446004206 0.3047286085 0.8831515207 0.9624198800
preditos.n = ifelse(preditos > 0.5, 1, 0)
mean(Tratamento==preditos.n)
## [1] 0.7
table(Tratamento,preditos.n)
## preditos.n
## Tratamento 0 1
## 0 4 1
## 1 2 3
Significa temos 70% de acertos.
Vamos utilizar modificações dos dados originais para apresentar esta situação.
Trat = as.factor(c(rep("A",5), rep("B",5)))
score1 = c(40, 37, 45, 50, 48, 57, 64, 55, 62, 65)
plot(Trat ~ score1, ylab = "Tratamento", xlab = "Escore")
Tratamento = ifelse(Trat=="B",1,0)
plot(Tratamento ~ score1, ylab = "Tratamento", xlab = "Escore", pch = 19)
grid()
Percebemos que o escore baixo (menor do que 50) sempre o tratamento A e o escore alto (maior do que 50) sempre prediz o tratamento B.
modelo1 = glm(Tratamento ~score1, family = binomial)
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
summary(modelo1)
##
## Call:
## glm(formula = Tratamento ~ score1, family = binomial)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.474e-05 -2.110e-08 0.000e+00 2.110e-08 1.462e-05
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -481.97 868352.13 -0.001 1
## score1 9.18 16527.22 0.001 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1.3863e+01 on 9 degrees of freedom
## Residual deviance: 4.3100e-10 on 8 degrees of freedom
## AIC: 4
##
## Number of Fisher Scoring iterations: 25
Observe as consequências no ajuste do modelo. Além da informação de probilidades ajustadas numericamente iguais a 0 ou 1, o que não pode! nada é significativo no modelo ajustado com erro padrão absurdos. Não temos ajuste de modelo nesta situação.