いくつかのCox回帰モデルを作成しました。これらのモデルのパフォーマンスを確認したいと思います。ROC曲線またはc統計が、この記事で使用しているのと同じように役立つと思います。
アーミテージはロジスティック回帰を使用しましたが、サバイバルパッケージのモデルを使用できるかどうか、サバイバル ROCはこれが可能であるというヒントを示していますが、通常のCox回帰でそれを機能させる方法を理解できません。
この例についてROC分析を行う方法を誰かに教えてもらえれば幸いです。
library(survival)
data(veteran)
attach(veteran)
surv <- Surv(time, status)
fit <- coxph(surv ~ trt + age + prior, data=veteran)
summary(fit)
可能であれば、生のc-statics出力と素敵なグラフの両方に感謝します
ありがとう!
更新
回答ありがとうございます。@Dwin:私はあなたの答えを選択する前に、私がそれを正しく理解していることを確認したいと思います。
DWinの提案によると、私が理解している計算:
library(survival)
library(rms)
data(veteran)
fit.cph <- cph(surv ~ trt + age + prior, data=veteran, x=TRUE, y=TRUE, surv=TRUE)
# Summary fails!?
#summary(fit.cph)
# Get the Dxy
v <- validate(fit.cph, dxy=TRUE, B=100)
# Is this the correct value?
Dxy = v[rownames(v)=="Dxy", colnames(v)=="index.corrected"]
# The c-statistic according to the Dxy=2(c-0.5)
Dxy/2+0.5
検証機能とブートストラップに慣れていませんが、profを見たところです。R-helpに関するフランクハレルの回答ここでは、おそらくDxyを取得する方法だと考えました。状態を検証するためのヘルプ:
...各リサンプルで計算されるSomersのDxyランク相関(これは、尤度ベースの統計よりも少し時間がかかります)。行Dxyに対応する値は2 *(C-0.5)に等しく、CはCインデックスまたは一致確率です。
私は主に列に混乱していると思います。私は修正された値が私が使用すべきものであることを理解しましたが、検証の出力を本当に理解していません:
index.orig training test optimism index.corrected n
Dxy -0.0137 -0.0715 -0.0071 -0.0644 0.0507 100
R2 0.0079 0.0278 0.0037 0.0242 -0.0162 100
Slope 1.0000 1.0000 0.2939 0.7061 0.2939 100
...
ではR-ヘルプの質問私は地層持っているが、私は検証機能の「uが= 60」パラメータの目的が何であるかの不確実だ場合、私はCPHに「surv = TRUE」を持つべきであることを理解しました。これらを理解して、間違いがないことを確認していただけると助かります。
index.corrected
強調すべきことです。これらは、予想される将来のパフォーマンスの見積もりです。 階層u=60
がないため、は必要ありませんvalidate
。階層がある場合、生存曲線は交差する可能性があり、一般化されたROC領域を取得するために特定の時点を指定する必要があります。
cph()
コマンドを見てみましょう。