原文链接:http://tecdat.cn/?p=26932
在进行交叉验证之前,很自然地说“我会预烧 50%(比如说)我的数据来训练一个模型,然后用剩下的来拟合模型”。例如,我们可以使用训练数据进行变量选择(例如,在逻辑回归中使用一些逐步过程),然后,一旦选择了变量,就将模型拟合到剩余的观察集上。一个自然的问题通常是“这真的重要吗?”。
为了可视化这个问题,考虑我的(简单)数据集
使用心脏病数据(查看文末了解数据获取方式),预测急诊病人的心肌梗死,包含变量:
- 心脏指数
- 心搏量指数
- 舒张压
- 肺动脉压
- 心室压力
- 肺阻力
- 是否存活
让我们生成 100 个训练样本(我们保留大约 50% 的观察值)。在它们中的每一个上,我们使用逐步过程,并保留剩余变量的估计值(以及它们的标准差)
M=matrix(NA,100,ncol(MODE)) for(i in 1:100){ reg=step(glm(PRO=="CS"~.,dataYE\[idx,\]))
然后,对于 7 个协变量(和常数),我们可以查看拟合在训练样本上的模型中的系数值,以及拟合在验证样本上的模型上的值
idx=which(!is.na(M\[,j\])) plot(M\[idx,j\],M2\[idx,j\]) abline segments
例如,对于截距,我们有以下
其中水平段是模型上拟合在训练样本上的参数的置信区间,垂直段是验证样本上的置信区间。蓝色部分表示某种一致性,而红色部分表示实际上,一个模型的系数为负,另一个模型为正。
点击标题查阅往期内容
数据分享|R语言逻辑回归(Logistic Regression)、回归决策树、随机森林信用卡违约分析信贷数据集
01
02
03
04
我们还可以可视化两个估计量的联合分布,
for(j in 1:8){ fa = kde(x=Z, H=H) image(fat$eots\[\[1\]\],
在这里,几乎在对角线上,
这意味着两个样本的截距(或多或少)相同。然后我们可以查看其他参数。
在该变量上,它似乎在训练数据集上很显著(不知何故,这与它在逐步过程之后保留在模型中的事实一致)但在验证样本上不显著(或几乎不显著)。
其他的则更加一致(有一些可能的异常值)
在下一个问题上,我们在训练样本上又有显著性,但在验证样本上没有。
可能更有趣:
两者非常一致。