JMP > 从大型数据集中识别预测特征 > 明显过度拟合的问题大家好,JMP社区
我有一个大型数据集,其中包含临床试验患者基线时约 4,000 个生物标志物测量值。我需要在这些数据中确定哪些生物标志物组合可以预测 12 周后的临床结果。
我使用了一种相当幼稚的方法,但似乎产生了严重过度拟合的输出:
- 对所有 4,000 个生物标志物进行筛选 > 反应筛选,其中反应是第 12 周的二元临床输出
- 选择前 10 - 20 个生物标志物(基于 FDR)
- 在“拟合模型”>“逐步”平台上使用选定的生物标志物(作为模型效应),其中 Y 是第 12 周的二元临床输出;标准 = 最小化 BIC
- 生成模型
虽然这种方法对第 12 周的临床反应产生了极好的“预测值”(ROC AUC > 0.940),但使用随机生成的“虚拟”变量进行测试时,它也产生了较高的 ROC AUC(ROC AUC ~0.870)。后者向我表明,由于过度拟合,我的方法非常不合适。
我探索了与发现和验证患者亚群(占整个人口的 50%)合作的可行性,但它并没有解决我的过度拟合问题。
除了使用 JMP Pro 提供的高级建模平台之外,JMP 中是否还有更好的技术来解决这样的问题?
感谢您的帮助。
最好的,
TS
数据探索与可视化回复:JMP > 从大数据集中识别预测签名 > 明显过度拟合的问题谢谢你的例子。 让我们从几个角度仔细看看。 他们应该得出相同的结论:数据中没有黄金。
第一个角度,将数据拆分为训练和验证,不应尝试根据脚本的结果使用拟合模型。
第二个视角,只拟合没有train/val splitting的good and old logistic regression,看看有没有警告标志。
第一个警告标志:整个模型测试,表明该模型很可能并不比随机猜测好。

第二个警告标志:效果测试和参数意义。 这里是效果测试。 只有两个红色。 如果那两个是金子,其余的都是瓦砾。 瓦砾让我们认为它们是金子。 删除它们,好吗?

好了,现在从闸箱的另一端出来的就是下面的Whole Tests和Effect Tests。 并注意这些 p 值。 它们在 0.05 和 0.10 左右。 在栅栏上,通过通常的方式。 我们应该保留它们吗? 如果我们删除它们,我们就会得到随机猜测。 让我们假装我们真的想保留它们,看看结果如何。


ROC 和 AUC 怎么样?

所以 AUC 是 0.59。 金子? 我猜它也以通常的方式在栅栏上,因为模型拟合说模型在栅栏上,所以应该是从它派生的一切。 需要证明吗? 是的,我们可以有证据。 如果您有 JMP Pro,我们可以引导 AUC 值。 右键单击 AUC 值,然后选择 Bootstrap。 我给了它 10000 次抽奖。 而 0.5 在 bootstrap 样本的范围内。 所以这真的归结为人们愿意相信剩下的两个因素是黄金的程度。

我所做的是在 AUC 周围设置一个自举置信区间。 我们也可以围绕 ROC 设置置信区间,因此我们可能会发现漂亮的半壳根本没有那么令人印象深刻。 不过,这样做需要付出很多努力。 让我们只看一个点 ROC:对应于 0.5 截止阈值的点。 这是步骤。
首先,打开混淆矩阵。

查看突出显示的数字,它们是对应于 0.5 截止阈值的真阳性率和假阳性率。
我们可以在 ROC 上找到这个点,如下面的十字截图所示。

现在引导那些突出显示的数字。 我得到了这张表,其中“0”列是自举的误报率,“1”列是自举的真阳性率。

绘制列“1”与列“0”,并覆盖在 ROC 上。 这就是我得到的。 我还放了一条对角线作为参考。

bootstrap 样本表示 ROC 上概率为 0.5 的阈值点在对角线上方的机会很大,但在对角线下方的机会不可忽略。 如果我们应该已经从模型中得出结论,它就在栅栏上。
所以我想从这个例子中得出的结论是,我们应该在得出模型过拟合结论之前真正确定模型。 在这种情况下,包括随机噪声作为效果会过度拟合。
回复:JMP > 从大数据集中识别预测签名 > 明显过度拟合的问题为了增加神秘感,我附上了我所做的模拟。这次我使用了验证列。值得注意的事情:逻辑回归(保存在文件中的脚本)显示训练数据的 AUC 约为 .71,而验证数据的 AUC 低得多(小于 .5)。这是过度拟合的明显证据。但是,我还运行了模型筛选——所有方法(包括逻辑回归)都显示训练数据的 AUC 约为 0.5,而验证数据的 AUC 更低——这对我来说似乎是合理的。此外,逻辑回归模型并不显着(只有 1 或 2 个因素显着,大约是您对 20 个随机因素的预期)。我不明白的是为什么模型筛选平台中的逻辑回归平台和逻辑回归会给出如此不同的结果。我知道(或相信)模型筛选没有像单个建模平台那样找到调整超参数,但训练数据上 0.7 和 0.5 之间的差异对我来说似乎太大了。
回复:JMP > 从大数据集中识别预测签名 > 明显过度拟合的问题我不知道答案,但我可以确认你的发现。我创建了一个二元响应变量(随机)和 20 个随机正态因子以及 200 个观测值。我得到 AUC=.71!我觉得这确实很令人惊讶。我怀疑这与作为性能衡量标准的 AUC 的限制有关,但正如我所说,我并不真正理解这种行为。就我而言,它当然不应该过度拟合。我很想知道其他人对此有何评论。
回复:JMP > 从大数据集中识别预测签名 > 明显过度拟合的问题嗨,戴尔,
感谢您跟进这个相对开放的问题。 我使用以下公式创建了随机变量:
random uniform (0,1) > 0.5;
值得注意的是,我在虚拟变量的八个不同版本(即重新计算公式)上运行了上述“方法”,得到的 ROC AUC 值范围为 0.770 到 0.870。
我从未遇到过这种行为,但我从未使用过超过 1,200 个生物标记变量。
谢谢你的帮助。
最好的,
TS
回复:JMP > 从大数据集中识别预测签名 > 明显过度拟合的问题您能否提供有关随机生成的响应变量的更多详细信息?你究竟是如何创造它的?