在进行交叉验证之前,很自然地说“我会预烧 50%(比如说)我的数据来训练一个模型,然后用剩下的来拟合模型”。
例如,我们可以使用训练数据进行变量选择(例如,在逻辑回归中使用一些逐步过程),然后,一旦选择了变量,就将模型拟合到剩余的观察集上。
一个自然的问题通常是“这真的重要吗?”。
为了可视化这个问题,考虑我的(简单)数据集
使用心脏病数据,预测急诊病人的心肌梗死,包含变量:
- 心脏指数
- 心搏量指数
- 舒张压
- 肺动脉压
- 心室压力
- 肺阻力
- 是否存活
让我们生成 100 个训练样本(我们保留大约 50% 的观察值)。在它们中的每一个上,我们使用逐步过程,并保留剩余变量的估计值(以及它们的标准差)
M=matrix(NA,100,ncol(MODE)) for(i in 1:100){ reg=step(glm(PRO=="CS"~.,dataYE\[idx,\]))
然后,对于 7 个协变量(和常数),我们可以查看拟合在训练样本上的模型中的系数值,以及拟合在验证样本上的模型上的值
视频
贝叶斯推断线性回归与R语言预测工人工资数据
视频
逻辑回归Logistic模型原理和R语言分类预测冠心病风险实例
idx=which(!is.na(M\[,j\])) plot(M\[idx,j\],M2\[idx,j\]) abline segments
例如,对于截距,我们有以下
其中水平段是模型上拟合在训练样本上的参数的置信区间,垂直段是验证样本上的置信区间。蓝色部分表示某种一致性,而红色部分表示实际上,一个模型的系数为负,另一个模型为正。
我们还可以可视化两个估计量的联合分布,
for(j in 1:8){ fa = kde(x=Z, H=H) image(fat$eots\[\[1\]\],
在这里,几乎在对角线上,
随时关注您喜欢的主题
这意味着两个样本的截距(或多或少)相同。然后我们可以查看其他参数。
在该变量上,它似乎在训练数据集上很显著(不知何故,这与它在逐步过程之后保留在模型中的事实一致)但在验证样本上不显著(或几乎不显著)。
其他的则更加一致(有一些可能的异常值)
在下一个问题上,我们在训练样本上又有显著性,但在验证样本上没有。
可能更有趣:
两者非常一致。
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!