使用偏差和对数似然比检验比较模型

机器算法验证 回归 广义线性模型 似然比 越轨
2022-03-03 22:23:25

这是我之前发布的问题的更新。我正在寻找关于使用偏差和对数似然比测试比较 glm 模型的说明(我已经更新了我的问题以使其更清晰)。我正在与 R 合作。

我将首先使用一个逻辑回归的例子来说明我的困惑。

据我了解,可以通过比较偏差来比较逻辑回归模型。偏差由 -2xlog-likelihood (-2LL) 定义。在大多数情况下,对数似然的值为负数,因此乘以 -2 将给出正偏差。模型的偏差可以通过两种方式获得。首先,您可以使用模型摘要中“残余偏差”下列出的值。其次,您可以通过执行“logLik(model)”然后乘以-2来获得对数似然。无论哪种方式都会给你相同的价值。例如(取自 Field et al 2012 的 Discovering Statistics using R):

        > summary(eel1)
        
        Call:
        glm(formula = Cured ~ Intervention, family = binomial(), 
             data = eel)
        
        Deviance Residuals: 
            Min       1Q   Median       3Q      Max  
        -1.5940  -1.0579   0.8118   0.8118   1.3018  
        
        Coefficients:
                                 Estimate Std. Error z value Pr(>|z|)   
        (Intercept)               -0.2877     0.2700  -1.065  0.28671   
        InterventionIntervention   1.2287     0.3998   3.074  0.00212 **
        ---
        Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
        
        (Dispersion parameter for binomial family taken to be 1)
        
            Null deviance: 154.08  on 112  degrees of freedom
        Residual deviance: 144.16  on 111  degrees of freedom
        AIC: 148.16
        
        Number of Fisher Scoring iterations: 4
        
        > logLik(eel1)
        'log Lik.' -72.0789 (df=2)
        > -2*logLik(eel1)
        'log Lik.' 144.1578 (df=2)

比较两个模型时,偏差越低的模型越好。为了确定偏差的差异是否显着,您可以通过偏差的差异来给出一个 χ2 值(即 χ2 = (-2LL1)-(-2LL2))以及相关的 p 值。

现在进入令人困惑的部分(至少对我而言)。我现在已经开始使用似然比检验对负二项式 (NB) 模型进行模型比较,据我所知,这些检验与比较逻辑回归模型中的偏差非常相似。为了比较两个 NB 模型,我再次比较了 -2xlog-likelihood (-2LL) 的值。为了获得-2LL,我一直使用logLik(model) 来获得每个模型的对数似然,然后乘以-2 以获得-2LL。同样,在大多数情况下,对数似然为负,因此将其乘以 -2 会使 -2LL 为正(示例取自此处):

        > summary(m1)
        
        Call:
        glm.nb(formula = daysabs ~ math + prog, data = dat, 
                init.theta = 1.032713156, 
            link = log)
                
                Deviance Residuals: 
            Min       1Q   Median       3Q      Max  
        -2.1547  -1.0192  -0.3694   0.2285   2.5273  
        
        Coefficients:
                        Estimate Std. Error z value Pr(>|z|)    
        (Intercept)     2.615265   0.197460  13.245  < 2e-16 ***
        math           -0.005993   0.002505  -2.392   0.0167 *  
        progAcademic   -0.440760   0.182610  -2.414   0.0158 *  
        progVocational -1.278651   0.200720  -6.370 1.89e-10 ***
        ---
        Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
        
        (Dispersion parameter for Negative Binomial(1.0327) family taken to be 1)
        
            Null deviance: 427.54  on 313  degrees of freedom
        Residual deviance: 358.52  on 310  degrees of freedom
        AIC: 1741.3
        
        Number of Fisher Scoring iterations: 1
        
        
                      Theta:  1.033 
                  Std. Err.:  0.106 
        
         2 x log-likelihood:  -1731.258 


        > logLik(m1)
        'log Lik.' -865.6289 (df=5)
        > -2*logLik(m1)
        'log Lik.' 1731.258 (df=5)

然而,这一次,-2LL 的值不等于模型摘要中的“残余偏差”。所以我的第一个问题是为什么在上面的逻辑回归模型中,-2LL 和残差是相等的,但是在 NB 模型中不是这样?

然后比较两个负二项式模型,我计算出两个模型的 -2LL 之间的差异,它具有 chi sq 分布。如果 -2LL 差异的相关 p 值小于 0.05,则一个模型比另一个模型更适合数据。例如:

        > m1=glm.nb(daysabs~math+prog, data=dat)
        > m2=glm.nb(daysabs~math, data=dat)

        > logLik(m1)
        'log Lik.' -865.6289 (df=5)
        > logLik(m2)
        'log Lik.' -888.1529 (df=3)

        > -2*logLik(m1)
        'log Lik.' 1731.258 (df=5)
        > -2*logLik(m2)
        'log Lik.' 1776.306 (df=3)

       > chisq=(-2*logLik(m2))-(-2*logLik(m1))

       > chisq
       'log Lik.' 45.04798 (df=3)

       > pchisq(chisq, df = 2, lower.tail=FALSE)
       'log Lik.' 1.65179e-10 (df=3)

我的下一个问题是,基于两个 NB 模型的 -2LL 值,哪个模型是更好的拟合模型?我假设 -2LL 值类似于逻辑回归中的偏差,因为 -2LL 值较小的模型是更好的拟合模型(即 m1)。我的假设正确吗?还是具有更多参数的模型总是更好地拟合数据,这只是它是否明显更好的问题?

此外,如果您使用 anova(m1,m2) 函数比较两个 NB 模型,则 -2LL 被计算为 2xloglikelhood,而不是 -2xlog-likelihood,它给出负值。在这种情况下,哪个模型是更好的拟合模型?(我再次假设 -2xlog-likelihood 值较低的模型是更好的拟合模型)

        Likelihood ratio tests of Negative Binomial Models
        
        Response: daysabs
                Model     theta Resid. df    2 x log-lik.   Test    df LR stat.     Pr(Chi)
        1        math 0.8558565       312       -1776.306                                  
        2 math + prog 1.0327132       310       -1731.258 1 vs 2     2 45.04798 1.65179e-10

任何澄清都非常感谢。我意识到简历上有类似的帖子,但是这些其他帖子仍然没有澄清我的问题。

1个回答

剩余偏差是饱和模型的对数尺度的可能性与您提出的模型的可能性之间的差异的两倍:

Res一世d一种lDev一世一种nCe=2×(ll(小号一种r一种eddel)-ll(rpseddel))
它不能像一般情况下那样简单地计算-2*logLik(model)R因为饱和模型的对数尺度的可能性并不总是0. 阅读这篇文章以获取数学证据。-2*logLik(model)适用于逻辑回归,因为在这种情况下,饱和模型的对数尺度的可能性是0. 要在 中手动计算负二项式回归模型的残差R,可以试试这个:

sum(residuals.glm(m1, "deviance")^2)

您对添加参数总是会增加 GLM 的可能性的可能性是正确的。这只是一个具有统计意义的问题。建议选择基于AIC和 的模型,BIC而不是仅基于偏差的模型,因为AIC和 会BIC惩罚您添加更多参数。

我希望它会有所帮助。