Regressão logística: Como obter um modelo saturado

17

Acabei de ler sobre a medida de desvio para a regressão logística. No entanto, a parte que é chamada de modelo saturado não está clara para mim.

Fiz uma extensa pesquisa no Google, mas nenhum dos resultados respondeu à minha pergunta. Até agora, descobri que um modelo saturado possui um parâmetro para cada observação que, como conseqüência, resulta em um ajuste perfeito. Isso está claro para mim. Mas: além disso, os valores ajustados (de um modelo saturado) são iguais aos valores observados.

Desde que eu saiba, a regressão logística é usada para classificação, os dados observados são covariáveis ​​com rótulos adicionais . No entanto, a medida de desvio emprega probabilidades, mas não os rótulos reais. Um aplica a probabilidade prevista calculada da regressão logística versus probabilidades observadas. No entanto, uma vez que se deu apenas rótulos em vez de probabilidades, estou confuso em como construir um modelo saturado a partir desses rótulos?y{0 0,1}

toom
fonte

Respostas:

17

Para cada , a probabilidade ajustada do modelo saturado será a mesma que , zero ou um. Conforme explicado aqui, a probabilidade do modelo saturado é . Portanto, o desvio desse modelo será , em df. Aqui está um exemplo de R:yEuyEu1-2registro(1/1)=0 00 0

y = c(1,1,1,0,0,0)
a <- factor(1:length(y)) 
fit <- glm(y~a,family=binomial) 
summary(fit)

Deviance Residuals: 
 0  0  0  0  0  0

Null deviance: 8.3178e+00  on 5  degrees of freedom

Residual deviance: 2.5720e-10  on 0  degrees of freedom

O modelo saturado sempre possui parâmetros, em que é o tamanho da amostra. É por isso que o desvio nulo está sempre ativado df, pois o modelo nulo tem apenas a interceptação. Por exemplo, se eu adicionar uma réplica para cada um dos seis níveis de fator, obterá o seguinte:nn(n-1)

> k2
 [1] 1 2 3 4 5 6 1 2 3 4 5 6
Levels: 1 2 3 4 5 6
> y2
 [1] 1 1 1 0 0 0 1 1 1 0 0 0
> fit3 = glm(y2 ~ k2, family = binomial)
> summary(fit3)    

    Null deviance: 1.6636e+01  on 11  degrees of freedom
    Residual deviance: 5.1440e-10  on  6  degrees of freedom

Na verdade, verifica-se que em R o que é o modelo saturado depende da forma de entrada, mesmo que os dados sejam exatamente os mesmos, o que não é muito bom. Em particular, no exemplo acima, existem 12 observações e 6 níveis de fatores; portanto, o modelo saturado deve ter 6 parâmetros, e não 12. Em geral, um modelo saturado é definido como aquele em que o número de parâmetros é igual ao número de parâmetros. padrões covariáveis ​​distintos. Não faço ideia por que o código R "admitiu" que o fator k2 possui 6 níveis distintos e, no entanto, o modelo saturado foi equipado com 12 parâmetros.

Agora, se usarmos exatamente os mesmos dados no formato "binomial", obteremos uma resposta correta:

y_yes = 2 * c(1,1,1,0,0,0)
y_no = 2 * c(0,0,0,1,1,1)
x = factor(c(1:6))

> x
[1] 1 2 3 4 5 6
Levels: 1 2 3 4 5 6
> y_yes
[1] 2 2 2 0 0 0
> y_no
[1] 0 0 0 2 2 2

modelBinomialForm = glm(cbind(y_yes, y_no) ~ x, family=binomial)

Deviance Residuals: 
[1]  0  0  0  0  0  0

Coefficients:
              Estimate Std. Error z value Pr(>|z|)
(Intercept)  2.490e+01  1.096e+05       0        1
x2           1.375e-08  1.550e+05       0        1
x3           1.355e-08  1.550e+05       0        1
x4          -4.980e+01  1.550e+05       0        1
x5          -4.980e+01  1.550e+05       0        1
x6          -4.980e+01  1.550e+05       0        1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 1.6636e+01  on 5  degrees of freedom
Residual deviance: 3.6749e-10  on 0  degrees of freedom

Agora vemos que o modelo saturado possui 6 parâmetros e coincide com o modelo ajustado. Portanto, o desvio nulo está ativado (6 - 1) = 5 df, e o desvio residual está ativado (6-6) = 0 df.

James
fonte
yEu0 00 0