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

时间:2016-06-27 16:27:04

标签: cross-validation survival-analysis cox-regression

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

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

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

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

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

感谢您的回复。

1 个答案:

答案 0 :(得分:1)

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

但是,我不推荐逐步回归方法。请参阅此帖子的最佳答案: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与在验证模型中引入全新变量相同,这是违反直觉的。

希望这有帮助!