R語(yǔ)言是否對(duì)二分連續(xù)變量執(zhí)行邏輯回歸
原文鏈接:http://tecdat.cn/?p=6851
?
教育或醫(yī)學(xué)的標(biāo)準(zhǔn)情況是我們有一個(gè)持續(xù)的衡量標(biāo)準(zhǔn),但隨后我們對(duì)那些具有臨床/實(shí)際意義的連續(xù)措施有了切入點(diǎn)。一個(gè)例子是BMI。您可以通過(guò)70分作為成績(jī)測(cè)試進(jìn)行成績(jī)測(cè)試。當(dāng)這種情況發(fā)生時(shí),研究人員有時(shí)可能會(huì)對(duì)BMI模型超過(guò)30或通過(guò)/失敗感興趣。實(shí)質(zhì)性問(wèn)題通常屬于模擬某人超過(guò)/低于該臨床顯著閾值的概率的線(xiàn)條。因此,我們使用邏輯回歸等方法對(duì)連續(xù)測(cè)量進(jìn)行二分,并分析新的二元變量。
那么這種方法在實(shí)踐中如何運(yùn)作?任何嘗試在使用邏輯回歸進(jìn)行分析之前在不同閾值下對(duì)連續(xù)變量進(jìn)行二分法的人都會(huì)知道估計(jì)的系數(shù)會(huì)發(fā)生變化并且可能會(huì)發(fā)生很大變化,這是否與聲稱(chēng)結(jié)果不應(yīng)取決于閾值一致?我們可以使用模擬。首先,我將介紹數(shù)據(jù)生成過(guò)程:
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))
?
hist(dat$yc, main = "")

?
然后,我們可以yc
在不同點(diǎn)上對(duì)結(jié)果進(jìn)行二分,以確定這是否會(huì)影響x
我們使用邏輯回歸的估計(jì)系數(shù):
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
直接應(yīng)用線(xiàn)性回歸怎么辦?
# First, we create an equation to extract the coefficients and
# transform them using the transform to logit formula above.
trans <- function (fit, scale = pi / sqrt(3)) {
scale * coef(fit) / sigma(fit)
}
trans(lm(yc ~ x, dat))["x"]
x
1.157362
所有這些數(shù)字彼此并沒(méi)有太大的不同。現(xiàn)在我們可以多次重復(fù)此過(guò)程來(lái)比較結(jié)果中的模式。我會(huì)重復(fù)2500次:
colMeans(res <- t(replicate(2500, {
dat <- data.frame(x = rbinom(300, 1, .5))
dat$yc <- -.5 + dat$x + rlogis(nrow(dat))
# v for very; l/m/h for low/middle/high; and t for threshold; ols for regular regression
c(vlt = coef(glm((yc > -2) ~ x, binomial, dat))["x"],
lt = coef(glm((yc > -1) ~ x, binomial, dat))["x"],
mt = coef(glm((yc > 0) ~ x, binomial, dat))["x"],
ht = coef(glm((yc > 1) ~ x, binomial, dat))["x"],
vht = coef(glm((yc > 2) ~ x, binomial, dat))["x"],
ols = trans(lm(yc ~ x, 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
這些數(shù)字是不同方法的平均回歸系數(shù)。
boxplot(res)

?
我們看到雖然平均值大致相同,但當(dāng)閾值極端時(shí),估計(jì)的系數(shù)變化更大。最小變量系數(shù)是變換后的線(xiàn)性回歸系數(shù),因此當(dāng)我們使用線(xiàn)性回歸方法時(shí),結(jié)果穩(wěn)定。
不同方法之間的估計(jì)系數(shù)模式如何?
ggpairs(as.data.frame(res))

?
我們看到當(dāng)閾值非常低時(shí)估計(jì)系數(shù)與閾值非常高時(shí)的估計(jì)系數(shù)非常弱相關(guān)(.13)。這些差異只是反映了閾值,在實(shí)際數(shù)據(jù)分析中可能會(huì)產(chǎn)生誤導(dǎo)。
基于這些結(jié)果,預(yù)測(cè)因子與結(jié)果之間的關(guān)系也可能因結(jié)果的不同分位數(shù)而不同--分位數(shù)回歸探討的情況??梢允褂梅治粩?shù)回歸方法來(lái)查看原始連續(xù)結(jié)果中是否存在這種情況。
?
非常感謝您閱讀本文,有任何問(wèn)題請(qǐng)?jiān)谙旅媪粞裕?/strong>