我正在构建一个包含大约 8 个变量的 Cox 模型。两个变量是对同一事物的不同度量。因此,它们相互关联。当包含在单独的模型中时,两者都显示出与生存密切相关。
我已经阅读了关于在同一模型中包含相关变量的相互矛盾的意见。在同一模型中使用相关变量是否可以接受?
当它们在同一个模型中使用时,一个变量仍然与结果显着相关,而第二个变量的关联则失去了意义。这是否告诉我有关这些变量的任何信息?前一个变量比第二个变量更能预测生存吗?
非常感谢您的任何建议。
我正在构建一个包含大约 8 个变量的 Cox 模型。两个变量是对同一事物的不同度量。因此,它们相互关联。当包含在单独的模型中时,两者都显示出与生存密切相关。
我已经阅读了关于在同一模型中包含相关变量的相互矛盾的意见。在同一模型中使用相关变量是否可以接受?
当它们在同一个模型中使用时,一个变量仍然与结果显着相关,而第二个变量的关联则失去了意义。这是否告诉我有关这些变量的任何信息?前一个变量比第二个变量更能预测生存吗?
非常感谢您的任何建议。
没有规则反对在 Cox 或标准多元回归中包含相关预测因子。在实践中,这几乎是不可避免的,尤其是在临床工作中,可以对疾病的严重程度进行多种标准测量。
然而,要确定 2 种“同一事物的度量”中的哪一种更好是困难的。当您有 2 个预测器基本上测量相同的事物时,似乎效果最好的特定预测器可能在很大程度上取决于您手头的特定数据样本。
@smndpln 建议的引导可以帮助显示难度。如果您在多个 bootstrap 样本上运行包含两个预测变量的模型,您很可能会发现在任何一个 bootstrap 中只有 2 个中的 1 个是“显着”的,但发现“显着”的特定预测变量可能因 bootstrap 而异。这是高度相关的预测变量的固有问题,无论是在 Cox 回归还是标准多元回归中。
您可以尝试 LASSO 以查看是否在最终模型中维护了一个或两个预测变量,以最大限度地减少交叉验证误差,但维护的特定预测变量也可能因引导样本而异。
您可以尝试比较嵌套模型。首先使用标准预测器运行 Cox 回归,然后查看添加新预测器是否会anova()
在 R 或其他软件中添加类似功能的重要信息。然后颠倒顺序,从你的新预测器开始,看看添加标准预测器是否会增加任何东西。但是,如果这两个预测变量高度相关,那么其中任何一个都不太可能添加到另一个已经提供的内容中。
您还可以比较 2 个模型,不同之处仅在于 Akaike 信息标准 (AIC) 中包含 2 个预测变量中的哪一个。这可以显示在特定样本上哪个模型“更好”。然而,没有统计测试表明 AIC 的差异有多大是“显着的”。我想你可以对多个 bootstrap 样本进行这种比较以获得一些“显着性”的度量,但即便如此,除非你的新预测器明显优于已经测量相同的标准预测器,否则你可能不太可能找到“显着”差异事物。而且我会担心您发现的任何差异是否一定会存在于其他数据样本中。
最后,您可能会考虑提出一个模型,该模型包括对所讨论现象的两种测量。对于预测,您的模型不必局限于通过一些任意测试“显着”的自变量(除非您有太多的预测变量以至于您有过度拟合的危险)。或者您可以使用岭回归,它可以很好地处理相关的预测变量,并将过度拟合的危险降到最低。
模型中相关预测变量的使用称为共线性,这不是您想要的。您需要使用降维方法。
避免多重共线性的最简单方法是对两个相关变量执行主成分分析 (PCA)。如果相关性很高,正如您所建议的那样,那么第一个组件将解释一个非常高的方差部分。然后,您可以在后续分析中使用第一个组件。(为了降低数据维度,您可以使用 MatLab 函数pca()
或princomp()
,然后使用biplot
来可视化您的主成分。)
关于比较两个预测变量,一种公认的方法似乎涉及使用 bootstrap 为每个预测变量生成相关分布。然后,您可以使用效应大小度量(如 Cohens' d)来测量两个分布之间的差异。功能bootstrp()
就是你所需要的。
希望这可以帮助。