R语言是否对二分连续变量执行逻辑回归

最近我们被要求撰写关于逻辑回归的研究报告,包括一些图形和统计输出。

相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

逻辑回归Logistic模型原理和R语言分类预测冠心病风险实例

,时长06:48

教育或医学的标准情况是我们有一个持续的衡量标准。一个例子是BMI。您可以通过70分作为标准进行成绩测试。当这种情况发生时,研究人员有时可能会对BMI模型超过30或通过/失败感兴趣。实质性问题通常属于模拟某人超过/低于该临床显着阈值的概率的线条。因此,我们使用逻辑回归等方法对连续测量进行二分,并分析新的二元变量。

那么这种方法在实践中如何运作?任何尝试在使用逻辑回归进行分析之前,在不同阈值下对连续变量进行二分法的人都会知道,估计的系数会发生变化。

我们可以使用模拟。首先,我将介绍数据生成过程:


dat <- data.frame(x = rbinom(300, 1, .5))
# 结果 ys=截距为-0.5,x的系数为1,存在误差
dat$yc <- -.5 + dat$x + rlogis(nrow(dat))

hist(dat$yc, main = "")

然后,我们可以yc在不同点上对结果进行二分,以确定这是否会影响x我们使用逻辑回归的估计系数:

coef(glm((yc > -2) ~ x, binomial, dat))["x"] # Cut it at extreme -2
        x
0.9619012

coef(glm((yc > 0) ~ x, binomial, dat))["x"] # Cut it at midpoint 0
       x
1.002632

coef(glm((yc > 2) ~ x, binomial, dat))["x"] # Cut it at extreme 2
        x
0.8382662

如果我们yc直接应用线性回归怎么办?

# 首先,我们创建一个方程来提取系数,然后
# 用上面的转化为对数的公式来转化它们。
trans <- function (fit, scale = pi / sqrt(3)) {

       x
1.157362

所有这些数字彼此并没有太大的不同。现在我们可以多次重复此过程来比较结果中的模式。我重复2500次:

colMeans(res <- t(replicate(2500, {


  #  v代表非常;l/m/h代表低/中/高;以及t代表阈值;ls代表常规回归。
  c(vlt = coef(glm((yc > -2) ~ x, binomial, dat))["x"],
    lt = coef(glm((yc > -1) ~ x, binomial, dat))["x"],


    vlt.x      lt.x      mt.x      ht.x     vht.x     ols.x
1.0252116 1.0020822 1.0049156 1.0101613 1.0267511 0.9983772

这些数字是不同方法的平均回归系数。

boxplot(res)

我们看到虽然平均值大致相同,但当阈值极端时,估计的系数变化更大。最小变量系数是变换后的线性回归系数,因此当我们使用线性回归方法时,结果稳定。

不同方法之间的估计系数模式如何?

 ggpairs(as.data.frame(res))

我们看到当阈值非常低时,估计系数与阈值非常高时的估计系数非常弱相关(.13)。这些差异只是反映了阈值,在实际数据分析中可能会产生误导。


基于这些结果,预测因子与结果之间的关系也可能因结果的不同分位数而不同。分位数回归探讨的情况,可以使用分位数回归方法来查看原始连续结果中是否存在这种情况。

非常感谢您阅读本文,有任何问题请在下面留言!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值