解释多元逻辑回归与R中的相互作用

机器算法验证 r 回归 物流 相互作用 解释
2022-03-24 07:36:42

我正在尝试查看 2 个变量(一个二分分类变量和一个连续变量)是否预测二分分类因变量的出现。

dependent variable is LENIpos - 0 = no event, 1 = event
predictor variables are Hip.Prox.Femur - 0 = no hip fracture, 1 = hip fracture
                and     age (continuous)

两个预测变量分别在单独的卡方检验和 Mann Whitney U 检验中具有显着的 p 值。

当我运行逻辑回归glm(LENIpos ~ age + Hip.Prox.Femur, family = "binomial)时,变量不显着。(1)

但是,当我使用交互glm(LENIpos ~ age * Hip.Prox.Femur...)(2) 运行逻辑回归时,它们都不显着。这该如何解释?

示例 R 输出:

(1)

Call: glm(formula = LENIpos ~ age + Hip.Prox.Fem, family = "binomial", 
    data = dvt)

Deviance Residuals: 
     Min       1Q   Median       3Q      Max  
 -0.9346  -0.7826  -0.4952  -0.3374   2.1897  

Coefficients:
                         Estimate Std. Error z value Pr(>|z|)   
(Intercept)              -3.46888    1.00693  -3.445 0.000571 ***
age                       0.02122    0.01519   1.397 0.162535  
Hip.Prox.Femhip fracture  0.72410    0.57790   1.253 0.210212    

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 145.23  on 151  degrees of freedom
Residual deviance: 135.48  on 149  degrees of freedom
AIC: 141.48

Number of Fisher Scoring iterations: 5

(2)

glm(formula = LENIpos ~ age * Hip.Prox.Fem, family = "binomial", 
    data = dvt)

Deviance Residuals: 
        Min       1Q   Median       3Q      Max  
    -1.0364  -0.7815  -0.5373  -0.1761   2.3443  

Coefficients:
                             Estimate Std. Error z value Pr(>|z|)  
(Intercept)                  -5.89984    1.98289  -2.975  0.00293 **
age                           0.05851    0.02818   2.076  0.03788 * 
Hip.Prox.Femhip fracture      5.04990    2.46269   2.051  0.04031 * 
age:Hip.Prox.Femhip fracture -0.06058    0.03339  -1.814  0.06965 . 


(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 145.23  on 151  degrees of freedom
Residual deviance: 131.82  on 148  degrees of freedom
AIC: 139.82

Number of Fisher Scoring iterations: 6
2个回答

ageHip.Prox.Femhip与概率的关系LENIpos取决于另一个变量的值。这是您的第二个模型中的交互项所建议的。在回归系数的通常 R 表示中age,第二个模型中的系数是在不存在裂缝时的关系,LENIpos交互age项 ( age:Hip.Prox.Femhip fracture) 是与存在裂缝时的关系的差异因此,数据似乎与年龄一致,LENIpos在没有骨折的情况下与年龄有关,但在骨折的情况下不存在。+/- 裂缝子集的图应该有助于澄清这一点。

@EdM 是对的。交互作用的 p 值为 0.06(即“不显着”)这一事实毫无意义;你有一个互动。让我添加更多细节来补充他的(?)答案:

  • Mann-Whitney U 检验age~LENIpos与 的单变量逻辑回归实际上并不相同LENIpos~age(尽管 p 值几乎总是同时显着或两者都不显着)。您最好通过运行逻辑回归来评估单变量关联。
  • 在 R 中,多元线性回归默认带有模型的全局 F 检验,但多元逻辑回归没有(不幸的是)。但是,您可以通过根据卡方分布评估零偏差和残差之间的差异来获得全局检验,其中自由度等于零和残差 dfs 之间的差异。这是您的第一个模型的测试:

    > pchisq(q=145.23-135.48, df=151-149, lower.tail=FALSE)
    [1] 0.007635094
    

    所以很明显,你的第一个模型很重要。

  • 这个看似悖论(两个单变量分析显着,两个预测模型显着,即使两个预测本身都不显着)有一个隐藏的原因:你的两个预测本身是相关的。(一般名称是多重共线性。)因此,模型不知道将两者中的哪一个归因于关联,并扩展两个标准错误以确认这一事实。

    (请注意,前面的讨论忽略了交互的存在。)


  • 正如@EdM 所说,绘制这些函数可以帮助您理解交互。这是您的输出的基本图:

    lo.to.p = function(lo){
      odds = exp(lo)
      prob = odds / (odds+1)
      return(prob)
    }
    age   = 0:80
    lo.no =  -5.89984 + 0.05851*age
    lo.fr = (-5.89984 + 5.04990) + (0.05851 + -0.06058)*age
    p.no  = lo.to.p(lo.no)
    p.fr  = lo.to.p(lo.fr)
    
    windows()
      plot( age, p.no, col="blue", type="l", ylim=c(0,1), ylab="probability of LENIpos")
      lines(age, p.fr, col="red")
      legend("topleft", legend=c("no fracture", "fracture"), lty=1, col=c("blue","red"))
    

在此处输入图像描述