我们有具有二元结果和一些协变量的数据。我使用逻辑回归对数据进行建模。只是简单的分析,没什么特别的。最终输出应该是剂量反应曲线,我们在其中显示特定协变量的概率如何变化。像这样的东西:
我们收到了来自内部审阅者(不是纯粹的统计学家)的一些批评,因为我们选择了逻辑回归。逻辑回归假设(或定义)概率尺度上 S 形曲线的拐点在概率 0.5 处。他认为,没有理由假设拐点的概率确实为 0.5,我们应该选择一个不同的回归模型,允许拐点发生变化,以使实际位置由数据驱动。
起初我对他的论点感到措手不及,因为我从未想过这一点。对于为什么假设拐点在 0.5 是合理的,我没有任何论据。在做了一些研究之后,我仍然没有这个问题的答案。
我遇到了 5 参数逻辑回归,其中拐点是一个附加参数,但似乎这种回归模型通常用于生成具有连续结果的剂量反应曲线。我不确定它是否以及如何扩展到二进制响应变量。
我想我的主要问题是为什么或何时可以假设逻辑回归的拐点为 0.5?这还重要吗?我从未见过有人拟合逻辑回归模型并明确讨论拐点问题。是否有其他方法可以创建拐点不一定为 0.5 的剂量反应曲线?
为了完整起见,生成上图的 R 代码:
dat <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
dat$rank <- factor(dat$rank)
logit <- glm(admit ~ gre + gpa + rank, family = binomial(link = "logit"), data = dat)
newdata <- data.frame(gre = seq(-2000,8000,1), gpa = 2.5, rank = factor(1,c(1,2,3,4)))
pp <- predict(logit, newdata, type = "response", se.fit = TRUE)
plot(newdata$gre, pp$fit, type="l", col="black", lwd=2,ylab="Probability", xlab="Dose")
编辑1:
只是为了补充一下 Scortchi 在其中一条评论中所说的话:审稿人确实认为,从生物学上讲,曲率的变化更有可能发生在 0.5 之前。因此,他反对假设拐点在 0.5。
编辑2:
作为对 Frank Harrell 评论的回应:
例如,我修改了上面的模型,在其中包含一个二次项和一个三次项gre
(在本例中为“剂量”)。
logit <- glm(admit ~ gre+I(gre^2)+I(gre^3)+ gpa + rank, family = binomial(link = "logit"), data = dat)
newdata <- data.frame(admit=1, gre = seq(-2000,8000,1), gpa = 2.5, rank = factor(1,c(1,2,3,4)))
pp <- predict(logit, newdata, type = "response", se.fit = TRUE)
plot(newdata$gre, pp$fit, type="l", col="black", lwd=2,xlim=c(-2000,4000),ylab="Probability", xlab="Dose")
尽管gre
在这种情况下添加二次项和三次项可能没有意义,但我们看到剂量反应曲线的形式发生了变化。事实上,我们现在在大约 0.25 和接近 0.7 处有两个拐点。