代码之家  ›  专栏  ›  技术社区  ›  Eric

无截距的逻辑回归给出合适的警告信息

  •  -3
  • Eric  · 技术社区  · 6 年前

    我试图在没有截距的情况下运行逻辑回归。首先,我尝试了这个函数 glm 但我得到了以下错误:

        Warning message:        
        glm.fit: fitted probabilities numerically 0 or 1 occurred       
    

    bayesglm .

    当我使用这个函数(包括截取)时,我没有收到如上所述的错误消息。 但是,当我通过添加 -1

        > regress=bayesglm(y~x1*x2+x3+x4-1, data = DATA, family=binomial(link="logit"))     
        > summary(regress)      
    
        Call:       
        bayesglm(formula = y ~ x1 * x2 + x3 + x4 - 1, family = binomial(link = "logit"),        
            data = DATA, maxit = 10000)     
    
        Deviance Residuals:         
             Min        1Q    Median        3Q       Max        
        -1.01451  -0.43143  -0.22778  -0.05431   2.89066        
    
        Coefficients:       
                 Estimate Std. Error z value Pr(>|z|)           
        x1      -20.45537    9.70594  -2.108  0.03507 *         
        x2       -7.04844    2.87415  -2.452  0.01419 *         
        x1:x2     0.13409   17.57010   0.008  0.99391           
        x3       -0.17779    0.06377  -2.788  0.00531 **        
        x4       -0.02593    0.05313  -0.488  0.62548           
        ---     
        Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1      
    
        (Dispersion parameter for binomial family taken to be 1)        
    
            Null deviance: 494.91  on 357  degrees of freedom       
        Residual deviance: 124.93  on 352  degrees of freedom       
          (165 observations deleted due to missingness)     
        AIC: 134.93     
    
        Number of Fisher Scoring iterations: 123        
    

    并得到如下相同的错误:

    警告信息:
    glm.fit:拟合概率数值为0或1
    

    如果我不加,我就得不到 -1 删除截取。

    1.我是否可以忽略此警告消息?

    2.否则,我可以知道如何根据此警告消息解决问题吗?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Sycorax    6 年前

    这个问题的正确答案是,在逻辑回归中不应删除截距。修正警告信息而不修正模型的错误规范是不合适的做法。

    在正确完成的逻辑回归中,当存在完美分离(完全解释手头数据样本中的类成员关系的预测因子组合)时,该错误消息可能会出现,并且存在处理该现象的成熟方法,例如 this page .

    然而,在逻辑回归模型中删除截距是不合适的。看见 this page Cross Validated https://stats.stackexchange.com/questions/11109/how-to-deal-with-perfect-separation-in-logistic-regression 其中包括很多建议。

        2
  •  0
  •   Oliver    6 年前

    我会尽力回答这个问题。

    警告是什么意思?

    什么时候会发生这种情况? 根据我的经验,这种情况最常发生的情况是包括因素(或虚拟变量)的情况,在一个类别中只观察到一个结果。当交互作用包含在多个层次的因素中,且用于分析的数据有限时,这种情况最为常见。 类似地,如果与观测值的数量相比,有许多变量(将使用的变量、交互转换等作为单个变量进行计数,因此总数将是所有这些变量的总和),则可能出现类似的图像。在您的情况下,如果您有因子,删除截距将为每个因子添加1级,这可能会降低概率边缘情况0和1附近的精度。 简言之,如果我们的部分数据没有(或几乎没有)不确定性,那么这个警告将给我们一个指示。

    我可以忽略它,否则我如何修复它? 这取决于手头的问题和问题的规模。有几个来源,比如 John Fox 可能会考虑这些观测值可能出现的异常值,并且有很好的论证表明,在使用影响措施后,去除这些异常值。 car 或执行一些异常值测试(也可在 汽车 基本glm的软件包),如果这是您工作领域内的选项。 如果这些数据显示它们不会影响拟合,则不会删除它们,因为这样做没有统计依据。

    是这些模型类型主题的可靠来源。在遵循统计中的一般理论和指导原则的同时,问题变成了“我的模型是否正确指定?”、“它对我的模型的影响有多严重?”和“你在工作中可以做多少事?”。

    推荐文章