각 에 대해 포화 모형의 적합 확률은 y i 와 같 거나 0 또는 1입니다. 여기에 설명 된대로 포화 모형의 가능성은 1 입니다. 따라서 이러한 모델의 이탈은 0 df 에서 − 2 log ( 1 / 1 ) = 0 이됩니다 . 다음은 R의 예입니다.와이나는와이나는1− 2 로그( 1 / 1 ) = 00
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
포화 모형에는 항상 매개 변수가 있으며 여기서 n 은 표본 크기입니다. 따라서 null 모델에는 절편 만 있기 때문에 null 이탈은 항상 ( n - 1 ) df입니다. 예를 들어, 6 가지 요인 수준 각각에 대해 하나의 반복 실험을 추가하면 다음과 같은 결과가 나타납니다.엔엔( 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
실제로 R에서 포화 모델이 무엇인지는 데이터가 정확히 동일하더라도 입력 형식에 따라 다르며, 이는 그리 좋지 않습니다. 특히, 위의 예에는 12 개의 관측치와 6 개의 요인 수준이 있으므로 포화 모형에는 12가 아닌 6 개의 매개 변수가 있어야합니다. 일반적으로 포화 모형은 모수의 개수가 뚜렷한 공변량 패턴. R 코드가 요인 k2에 6 개의 개별 레벨이 있다는 것을 "인정한"이유를 모르겠지만 포화 모델에 12 개의 매개 변수가 적합했습니다.
이제 "이항식"형식으로 정확히 동일한 데이터를 사용하면 정답을 얻을 수 있습니다.
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
이제 포화 모형에 6 개의 매개 변수가 있으며 적합 모형과 일치 함을 알 수 있습니다. 따라서 널 이탈은 (6-1) = 5df이고 잔차 이탈은 (6-6) = 0df입니다.