使用随机森林进行时变协变量的生存分析

机器算法验证 生存 随机森林 非独立的 独立同居
2022-03-28 12:21:09

我一直在尝试训练一个模型来预测个人的生存时间。

我的训练集是一个不平衡的面板;每个人都有多个观察值,因此是随时间变化的协变量。从头到尾观察每个人,因此没有审查。

作为测试,我使用了一个普通的随机森林回归(不是随机生存森林),将每个观察视为 iid(即使它来自同一个人),并将持续时间作为目标。在测试集上测试预测时,结果出奇地准确。

为什么效果这么好?我认为随机森林需要独立同分布观察。

2个回答

尽管您的数据有结构,但可能是您的受试者之间基线风险的变化没有足够大的差异,导致没有脆弱项的模型形成不良预测。当然,具有脆弱项的模型完全有可能比池化随机森林模型表现更好。

即使您确实运行了一个汇集和分层模型并且汇集模型的表现也一样或稍好,您可能仍希望使用分层模型,因为您的受试者中基线风险的差异很可能不为零,并且分层模型会从长远来看,可能在您的测试或训练集中都没有的数据上表现更好。

顺便说一句,在比较池化模型和分层模型之前,首先考虑您使用的交叉验证分数是否与预测任务的目标一致。如果您的目标是对与您的测试/训练数据中的同一组个体进行预测,那么对响应进行简单的 k 折或 loo 交叉验证就足够了。但是,如果您想对新个体进行预测,则应改为在个体级别对样本进行 k 折交叉验证。在第一种情况下,您在不考虑数据结构的情况下对预测进行评分。在第二种情况下,您正在评估您预测样本中未包含的个人风险的能力。

最后,请始终记住,CV 本身依赖于数据,并且只是对模型预测能力的估计。

我刚开始使用随机森林,但我相信主要是每棵树需要 iid 的 bagging 以及每个节点处的特征选择子集。我不知道对数据本身的任何正式限制。

为什么它对您的数据如此有效,直到我调查了您的数据,我才能说出来。但是你的特征的非独立性不会对性能产生太大影响。