拓端tecdat|R语言代码编写对二分连续变量进行逻辑回归数据分析

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


教育或医学的标准情况是我们有一项连续的措施,但随后我们对那些具有临床/实践意义的措施有了切入点。一个例子是BMI。您可能有一个成绩测试,合格分数为70。研究人员有时可能会对30岁以上的BMI建模感兴趣,或者对通过/失败作的结果感兴趣。实质性问题通常落在对某人超过/低于此临床上显着阈值的概率进行建模的范畴之内。因此,我们将连续测量结果分为两部分,并使用逻辑回归等方法分析。

回到介绍性统计信息,您会听到类似的信息:大多数人宁愿使用规则线性回归而不是逻辑回归。但是,在上述情况下,出于实质性原因,我们经常有理由将结果一分为二。

因此,这是建议:

  • 估计连续结果的线性模型
  • 可以对它们取幂以获取赔率。
  • 我们不在乎线性回归的截距,因为它会受到阈值的影响。

那么这种方法在实践中如何起作用?在使用逻辑回归分析之前尝试在不同阈值上将连续变量二等分的任何人都知道,估计的系数确实会发生变化,并且它们会发生很大的变化!这是否与结果不应依赖阈值的说法相符?

我们可以使用模拟进行检查。首先,我将逐步介绍数据生成过程:

set.seed(12345) # Set seed for reproducible results

# Our single x variable is binary with 50% 0s and 50% 1s
# so like random assignment to treatment and control
# Our sample size is 300
dat <- data.frame(x = rbinom(300, 1, .5))
# Outcome ys = intercept of -0.5, the coefficient of x is 1 and there is logistic error
dat$yc <- -.5 + dat$x + rlogis(nrow(dat))

yc

 

然后,我们可以yc在各个点上将结果分为两部分,以查看x当使用逻辑回归时是否会影响估计系数:

        x
0.9619012

       x
1.002632

        x
0.8382662

数字有些不同。如果我们yc直接将线性回归应用?

# First, we create an equation to extract the coefficients and
# transform them using the transform to logit formula above.

       x
1.157362

所有这些数字彼此之间并没有太大差异。如果我们对它们求幂以获得比值比,它们的差异会更大。现在,我们可以重复此过程几次,以比较结果中的模式。我重复2500次:


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

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

v代表非常,l / m / h代表低/中/高,t代表阈值,ols是回归结果。因此,例如,vlt.x是来自极低阈值模型的平均x系数。

所有方法的这些估计系数平均约为1,这就是我们编写的程序!每个方法的可变性如何?

boxplot(res)

Boxres

我们看到,尽管平均值大致相同,但是当阈值极高时,估计的系数就更加可变。最小的可变系数是变换后的线性回归系数,因此当我们使用线性回归方法时,结果有些稳定。阈值越极端,我们获得的可变系数就越多。我们经常将数据二分法用于极端情况下的逻辑回归。

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


对

我们看到,尽管所有方法声称x的系数y平均为1,但阈值非常低时的估计系数与阈值非常高时的估计系数非常弱相关(.13)。这些差异仅反映阈值,并且可能在实际数据分析中产生误导。人们可能会相信,在不同的阈值处的估计值差异很大,而在不同的阈值下却代表不同的人口参数(真实系数)。与每种方法最相关的方法是线性回归方法。线性回归方法与中阈值结果最相关。它也是最稳定的。


从本质上讲,当将数据按极端阈值二等分时,我们是否应该相信这些发现?还是应该只使用变换后的线性回归系数?

在结果的不同分位数处,预测变量和结果之间的关系也可能不同--分位数回归情况探讨。

 

 

 

 

如果您有任何疑问,请在下面发表评论。 

 

posted @ 2020-01-13 15:44  拓端tecdat  阅读(392)  评论(0编辑  收藏  举报