R言語は生存分析モデルの時間依存(相関)roc曲線と時間依存(相関)cindex曲線を描画します

ROC 曲線と cindex 曲線は一貫性の指標に属します。背景の一部のファンから、cox 回帰で時間相関 roc 曲線と時間相関 cindex 曲線を描く方法を尋ねられたので、今日はそれを実演しましょう。
ここに画像の説明を挿入
ここに画像の説明を挿入
まずデータと R パッケージをインポートします

library(survival)
library("survminer")
library(foreign)
bc <- read.spss("E:/r/test/Breast cancer survival agec.sav",
                use.value.labels=F, to.data.frame=T)
bc <- na.omit(bc)
names(bc)

ここに画像の説明を挿入
これは私たちがよく使用する乳がんデータです(公式アカウントからの返信: 乳がん、このデータを入手できます)、age は年齢、pathsize は病理学的腫瘍サイズ (cm)、lnpos は腋窩リンパ節陽性、histgrad は組織病理学的グレードを意味します、er はエストロゲン受容体の状態を示し、pr はプロゲステロン受容体の状態、状態結果イベントが死亡かどうかを示し、pathscat は病理学的腫瘍サイズのカテゴリー (グループ化変数) を示し、ln_yesno はリンパ節腫大があるかどうかを示し、時間は生存を示します。時間、agec は私たちのものです。ご自身で設定してください。心配する必要はありません。
一部の変数はカテゴリ変数です。最初にそれらを因子に変換します。

bc$histgrad<-as.factor(bc$histgrad)
bc$er<-as.factor(bc$er)
bc$pr<-as.factor(bc$pr)
bc$ln_yesno<-as.factor(bc$ln_yesno)

まず、カジュアルに構築された 3 つのコックス回帰方程式を確立します。

f1<-coxph(Surv(time,status)~er+histgrad+pr+age+ln_yesno,bc,x=TRUE,y=TRUE)
f2<-coxph(Surv(time,status)~er+histgrad+ln_yesno,bc,x=TRUE,y=TRUE)
f3<-coxph(Surv(time,status)~ln_yesno,bc,x=TRUE,y=TRUE)

多くの R パッケージは時間依存の ROC を実行できますが、今回は RiskRegression パッケージを紹介しますが、興味があれば他のパッケージも次回紹介できます。

library(riskRegression)

f1 の時間相関 roc を理解したいとします。ここで、1 を共変量に変更することが重み付けに等しい場合、formula=Surv(time,status)~1 は重みなしと等しいという事実に注意する必要があります。

A3<- riskRegression::Score(list("f1"=f1),
                           formula=Surv(time,status)~1,
                           data=bc,
                           metrics="auc",
                           null.model=F,
                           times=seq(3,132,1))
plotAUC(A3)

ここに画像の説明を挿入
このようにして、グラフが生成されますが、これは非常に簡単で、データを抽出して ggplot に配置して描画することもできます。

auc<-plotAUC(A3)
ggplot()+geom_line(data=auc, aes(times,AUC),linetype=1,size=1,alpha = 0.6,colour="red")+
  geom_ribbon(data=auc, aes(times,ymin = lower, ymax = upper),alpha = 0.1,fill="red")+
  geom_hline(yintercept=1, linetype=2,size=1)+theme_classic()+ 
  labs(title = "时间相关性ROC", x="times", y="AUC")

ここに画像の説明を挿入
f1 と f2 の時間相関 roc を知りたいとします。

A3<- riskRegression::Score(list("f1"=f1,"f2"=f2),
                           formula=Surv(time,status)~1,
                           data=bc,
                           metrics="AUC",
                           null.model=F,
                           times=seq(3,132,1))
auc<-plotAUC(A3)
ggplot()+geom_line(data=auc, aes(times,AUC,group=model,col=model))+
  geom_ribbon(data=auc, aes(times,ymin = lower, ymax = upper,fill=model),alpha = 0.1)+
  geom_hline(yintercept=1, linetype=2,size=1)+theme_classic()+ 
  labs(title = "时间相关性ROC", x="times", y="AUC")

ここに画像の説明を挿入
時間依存の cindex を導入しましょう。これは pec パッケージを使用する必要があります。最初に f1 を描画します。

library(pec)
A1<-pec::cindex(list("f1"=f1),
                formula=Surv(time,status)~er+histgrad+pr+age+ln_yesno,
                data=bc,
                eval.times=seq(3,132,1))
plot(A1)

ここに画像の説明を挿入
f1、f、f3 の cindex を知りたいとします。

A1<-pec::cindex(("f1"=f1,"f2"=f2,"f3"=f3),
                formula=Surv(time,status)~er+histgrad+pr+age+ln_yesno,
                data=bc,
                eval.times=seq(3,132,1))
plot(A1)

ここに画像の説明を挿入
色やラベルなどを変更することもできますが、ここでは行いません。

Supongo que te gusta

Origin blog.csdn.net/dege857/article/details/129808677
Recomendado
Clasificación