逻辑回归:如何获得饱和模型

机器算法验证 物流 越轨
2022-01-24 07:22:07

我刚刚阅读了关于逻辑回归的偏差度量。但是,我不清楚称为饱和模型的部分。

我进行了广泛的谷歌搜索,但没有一个结果回答了我的问题。到目前为止,我发现饱和模型对每个观察都有一个参数,因此可以完美拟合。这对我来说很清楚。但是:进一步拟合值(饱和模型的)等于观察值。

因为据我所知,逻辑回归用于分类给定的观察数据是带有附加标签的协变量y{0,1}. 但是,偏差度量使用概率而不是实际标签。一种应用逻辑回归的计算预测概率与观察概率。但是,由于只给出了标签而不是概率,我很困惑如何从这些标签构建一个饱和模型?

1个回答

对于每个yi,饱和模型的拟合概率将与yi,零或一。正如这里所解释的,饱和模型的可能性是1. 因此,这种模型的偏差将是2log(1/1)=0, 在0df。以下是 R 中的一个示例:

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参数n是样本量。这就是为什么零偏差总是在(n1)df,因为空模型只有截距。例如,如果我为六个因子水平中的每一个添加一个重复,我将得到以下结果:

> 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 个因子水平,因此饱和模型应该有 6 个参数,而不是 12 个。通常,饱和模型定义为参数数量等于参数数量的模型。不同的协变量模式。我不知道为什么 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) = 5 df 上,剩余偏差在 (6-6) = 0 df 上。