python 中的一致性索引

concordance index in python

我正在寻找 Harrell's c-index(一致性索引)的 python/sklearn/lifelines/whatever 实现,它在 random survival forests 中提到。

C 指数的计算步骤如下:

  1. 根据数据形成所有可能的案例对。
  2. 省略那些生存时间较短的对。如果 Ti=Tj 则省略 i 和 j 对,除非至少有一个是死亡。让 Permissible 表示允许的对总数。
  3. 对于每个允许的 TiTj 不相等的对,如果较短的生存期则计为 1 时间的预测结果更差;如果预测结果相同,则计为 0.5。对于每个允许的对,其中 Ti=Tj 并且都是死亡,如果预测结果相同,则计为 1;否则,计数 0.5。对于每个允许的 对 Ti=Tj,但不是两者都是死亡,如果死亡有 更差的预期结果;否则,计数 0.5。让索引表示 所有允许对的总和。
  4. C 指数 CC=Concordance/Permissible 定义。

注:nltk有一个ConcordanceIndex方法,意义不同:(

LifeLines 包现已实现此功能 c-index, or concordance-index

LifeLine 包可以实现索引索引。

pip install lifelines

conda install -c conda-forge lifelines

示例:

from lifelines.utils import concordance_index
cph = CoxPHFitter().fit(df, 'T', 'E')
concordance_index(df['T'], -cph.predict_partial_hazard(df), df['E'])