由逻辑回归模型(经过 logit 转换的模型)计算的概率是否符合原始数据成功的累积分布函数(按 X 变量排序)?
编辑:换句话说 - 如何绘制拟合逻辑回归模型时获得的原始数据的概率分布?
这个问题的动机是 Jeff Leak 关于 Raven 在一场比赛中的得分以及他们是否获胜的回归示例(来自 Coursera 的数据分析课程)。诚然,这个问题是人为的(见下面@FrankHarrell 的评论)。这是他的数据以及他和我的代码的混合:
download.file("http://dl.dropbox.com/u/7710864/data/ravensData.rda",
destfile="ravensData.rda", method="internal")
load("ravensData.rda")
plot(ravenWinNum~ravenScore, data=ravensData)
它似乎不是逻辑回归的好材料,但我们还是试试吧:
logRegRavens <- glm(ravenWinNum ~ ravenScore, data=ravensData, family=binomial)
summary(logRegRavens)
# the beta is not significant
# sort table by ravenScore (X)
rav2 = ravensData[order(ravensData$ravenScore), ]
# plot CDF
plot(sort(ravensData$ravenScore), cumsum(rav2$ravenWinNum)/sum(rav2$ravenWinNum),
pch=19, col="blue", xlab="Score", ylab="Prob Ravens Win", ylim=c(0,1),
xlim=c(-10,50))
# overplot fitted values (Jeff's)
points(ravensData$ravenScore, logRegRavens$fitted, pch=19, col="red")
# overplot regression curve
curve(1/(1+exp(-(logRegRavens$coef[1]+logRegRavens$coef[2]*x))), -10, 50, add=T)
如果我正确理解逻辑回归,那么在这种情况下,R 在找到正确系数方面做得非常糟糕。

- 蓝色 = 要拟合的原始数据,我相信 (CDF)
- 红色 = 模型预测(拟合数据 = 将原始数据投影到回归曲线上)
已解决 - lowess
似乎是原始数据的一个很好的非参数估计量 = 正在拟合的内容(感谢@gung)。看到它可以让我们选择正确的模型,在这种情况下,它会在之前的模型中添加平方项(@gung)
——当然,这个问题是非常人为的,建模它通常毫无意义(@FrankHarrell)
——通常逻辑回归它不是 CDF,而是点概率 - @FrankHarrell 首先指出;我也很尴尬地无法计算@gung 指出的 CDF。

