各について、飽和モデルからの適合確率はと同じになり、ゼロまたは1になります。ここで説明したように、飽和モデルの尤度はです。したがって、そのようなモデルの逸脱は、 df でになり。Rの例を次に示します。、Y iは 1 - 2 ログ(1 / 1 )= 0 0をyiyi1−2log(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
飽和モデルには常にパラメーターがあり、はサンプルサイズです。ヌルモデルには切片のみがあるため、ヌル偏差は常に dfになります。たとえば、6つの因子レベルごとに1つの複製を追加すると、次のようになります。n (n − 1 )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
実際、Rで飽和モデルが何であるかは、データがまったく同じであっても入力の形式に依存することがわかります。これはあまり良くありません。特に、上記の例では12の観測値と6つの因子レベルがあるため、飽和モデルには12ではなく6つのパラメーターが必要です。一般に、飽和モデルはパラメーターの数が明確な共変量パターン。ファクターk2には6つの異なるレベルがあるとRコードが「認めた」のに、飽和モデルに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つのパラメーターがあり、近似モデルと一致していることがわかります。したがって、null偏差は(6-1)= 5 dfであり、残差偏差は(6-6)= 0 dfです。