我们有带有二进制结果和一些协变量的数据。我使用逻辑回归对数据进行建模。只是简单的分析,没什么特别的。最终输出应该是剂量响应曲线,在该曲线中,我们显示了特定协变量的概率如何变化。像这样:
我们从内部审核员(不是纯粹的统计学家)那里收到一些批评,选择逻辑回归。逻辑回归假设(或定义)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附近有两个拐点。