具有非常不等大小的组的对数秩 / Cox 分析:p 值的替代计算?

机器算法验证 r 生存 对数秩检验
2022-03-29 01:28:56

我想对两个大小不等的群体之间的生存差异进行一系列测试。
通常,对数秩(使用 R survdiff 函数)或带有分层患者变量的 cox 回归(R coxph)都可以很好地工作。然而,在某些情况下,一组人数较少,事件发生率相对较低,这使得预期的事件数量非常少。在这些情况下,使用对数秩检验生成的 p 值似乎不明智,因为这是基于卡方检验,这不适用于少量预期事件(令人惊讶的是,R 没有给出警告信息)。举一个公认的相当极端的例子来说明:

survdiff(formula = survobject ~ (Fixation == i), data = TKRGroup)
n=637763, 424 observations deleted due to missingness.

                         N Observed Expected (O-E)^2/E (O-E)^2/V
Fixation == i=FALSE 637725    11174 1.12e+04  5.52e-04      11.9
Fixation == i=TRUE      38        3 5.17e-01  1.19e+01      11.9

Chisq= 11.9  on 1 degrees of freedom, p= 0.000555 

Cox 回归给出了更高的 p 值 0.0023,尽管对于观察到的和预期的事件的这些值,它看起来仍然偏低。

coxph(formula = survobject ~ (Fixation == i), data = TKRGroup)

                  coef exp(coef) se(coef)    z      p
Fixation == iTRUE 1.76       5.8    0.577 3.05 0.0023

进一步的摘要信息给出

Likelihood ratio test= 5.58  on 1 df,   p=0.01813
Wald test            = 9.27  on 1 df,   p=0.002325
Score (logrank) test = 11.92  on 1 df,   p=0.0005543

在这一点上,我可以参考一些专家建议,如果有的话,使用这些 p 值,或者是否有一些替代方法可用(最好在 R 包中提供!)鉴于组的大小,我相当天真地试图通过对观察到的和预期的数字应用泊松精确检验来了解合理的 p 值;观察值/预期值 3 / 0.517 将给出累积泊松 P(X ≥ 3) = 0.0157。这似乎是一个更合理的数字,尽管我不确定我能否为它辩护。

2个回答

在这些类型的比较中,您会发现发生的情况是两个样本测试变得非常近似于一个样本测试,其中所有的力量都来自较小的组(它们正在被“校准”到较大的组),所以1 个样本测试中样本量背后的假设适用于该组。3 人死亡不足以估计 Cox 模型。生存模型由事件数量而非分母驱动。

如果这些数据中没有审查,您可以以在固定点之后观察到的故障为条件,并通过查看在该固定点之外无法生存的比例来比较生存率。它是列联表的基本比例检验,可通过 Fisher 精确检验实现,该检验在小样本中是准确的。

DiedLivedFix¯11,174626,551Fix335

使用精确检验的好处是,它有效地回答了“鉴于我的预期死亡率(0.02=11174/637725)。大型非固定组的影响是预期比率的可变性将非常低,并且几乎完全由这些数据决定。

不要过分关注p值。它们只是提供了一种可能性,即您可能会意外地发现您的特定研究样本中存在生存差异,而总体上确实没有差异。

您显然希望使用每个新患者的预测变量来分类相对风险。最好将分类基于对每个新患者的预测生存或等效(如发生某些不良事件的时间)的估计,以及估计的可靠性,而不是基于研究样本分析的p值。

predictRcoxph和对象有简单的函数survreg,但你最好学习使用rmsR 中的包,它提供了验证模型甚至构建列线图进行预测的方法。作者 Frank Harrell 是该网站的定期撰稿人。