使用外部数据的生存模型验证

Survival Model Validation using external data

我有两个数据集(训练和验证)用于构建和验证 Cox 模型。

在训练数据集上,我使用逐步选择法拟合了一个 cox 模型。

模型中的重要变量是验证模型中包含的唯一变量。 这是正确的方法吗?

在验证模型时,我意识到变量在验证模型中并不重要,而且 cox 模型的假设也不成立(我检查了验证数据的假设)。 我是否应该忽略变量无关紧要的事实并继续修正验证数据中模型假设的问题?

第三,在训练数据和验证数据中,我有一个包含三组的变量 'treatment'。在训练中,组是标准、新药和混合物,而在验证数据中,组是标准、新药和 X(是一种不同于训练数据中混合物的治疗)。 在两个模型中都包含这个变量是正确的还是我应该删除不匹配的组;来自训练数据和来自验证数据的 X 的混合物,还是我应该这样使用它?我不确定这会如何影响我的分析。

感谢您的回复。

回答你的第一个问题:是的,这是正确的方法。训练集和验证集的整体思想是,您根据训练集做出关于模型的所有决定(此处:要添加哪些变量)。然后使用验证集来评估您在训练集中的结果有多稳健。通过这种方式,您可以检查过度拟合、异常值、数据错误等。

但是,我不推荐逐步回归方法。请参阅此 post 的最佳答案:https://stats.stackexchange.com/questions/115843/backward-selection-for-cox-model-using-r

第二个问题:不,你不应该忽略那些无关紧要的变量。这正是您拥有验证集的原因。也许您的训练集有几个非常有影响力的观察结果(异常值)?或者是其他东西?无论如何,你必须做一些额外的研究。

你指的是哪个假设?我假设你的意思是比例风险 (PH) 假设不成立,因为这个假设经常被违反。与您第一个问题的答案中的推理相同。首先在训练集上检查假设。如果它也在那里不成立,请对您的模型进行调整。如果确实是变量违反了 PH 假设,则添加时间交互或制作分层 cox 模型。 [参见示例:http://www.dbc.wroc.pl/Content/27006/Borucka_Extensions_of_Cox_model_For_non_proportional.pdf]

我不完全确定我对第三个问题的回答,但这里是:将 X 包含在您的验证模型中是不正确的,如果它不包含在您的训练模型中。变量处理是一个因素,因此在回归中,它基本上变成了每个级别的虚拟 (0/1) 变量。因此,包括 X 等同于在验证模型中引入一个全新的变量,这是违反直觉的。

希望对您有所帮助!