关于算法:拓端数据tecdatR语言是否对二分连续变量执行逻辑回归

46次阅读

共计 1495 个字符,预计需要花费 4 分钟才能阅读完成。

原文链接:http://tecdat.cn/?p=6851

教育或医学的规范状况是咱们有一个继续的衡量标准。一个例子是 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)。这些差别只是反映了阈值,在理论数据分析中可能会产生误导。


基于这些后果,预测因子与后果之间的关系也可能因后果的不同分位数而不同。分位数回归探讨的状况,能够应用分位数回归办法来查看原始间断后果中是否存在这种状况。

十分感谢您浏览本文,有任何问题请在上面留言!

正文完
 0