JoVE Logo

サインイン

このコンテンツを視聴するには、JoVE 購読が必要です。 サインイン又は無料トライアルを申し込む。

この記事について

  • 要約
  • 要約
  • 概要
  • プロトコル
  • 結果
  • ディスカッション
  • 開示事項
  • 謝辞
  • 資料
  • 参考文献
  • 転載および許可

要約

本プロトコルは、競合するリスクモデルの識別および較正能力を評価するためのRのコード、およびその内部および外部の検証のためのコードを記述しています。

要約

Cox比例ハザードモデルは、臨床現場での生存分析に広く適用されていますが、複数の生存結果に対処することはできません。従来のCox比例ハザードモデルとは異なり、競合するリスクモデルは、競合するイベントの存在と、臨床医が正確な予後予測を行うための有用なツールであるノモグラム(グラフィカル計算デバイス)との組み合わせを考慮します。本研究では、競合リスクノモグラム、すなわち、その識別能力(一致指数と曲線下面積)とキャリブレーション(検量線)能力の評価、および純利益(すなわち決定曲線分析)を確立するための方法を報告する。さらに、元のデータセットのブートストラップリサンプルを使用した内部検証と、確立された競合リスクノモグラムの外部データセットを使用した外部検証も実行され、その外挿能力が実証されました。競合リスクノモグラムは、臨床医が競合するリスクを考慮して予後を予測するための有用なツールとして役立つはずです。

概要

近年、プレシジョン・メディシンの発展に伴い、新たな予後因子が同定され、分子的要因と臨床病理学的因子を組み合わせた予後モデルが臨床現場でますます注目されています。ただし、係数値の結果を含むCox比例ハザードモデルなどの非グラフィカルモデルは、臨床医が理解することは困難です1。比較すると、ノモグラムは、回帰モデル(Cox回帰モデル、競合リスクモデルなどを含む)の視覚化ツールであり、数学関数の近似グラフィカル計算用に設計された2次元図です2。これにより、臨床モデル内のさまざまなレベルの変数の評価と、予後を予測するためのリスクスコア(RS)の計算が可能になります。

モデル評価はモデル構築に不可欠であり、評価には識別とキャリブレーションという2つの特性が一般的に受け入れられています。臨床モデルでは、識別とは、死亡した患者と生存している患者など、イベントを発症した個人と発症しない個人を分離するモデルの能力を指し、通常、一致指数(C-index)または受信者動作特性曲線(AUC)の下の領域を使用してそれを特徴付けます3,4.キャリブレーションは、モデルの予測確率と実際の確率を比較するプロセスであり、それを表すために検量線が広く使用されています。さらに、モデルの検証(内部および外部の検証)はモデル構築の重要なステップであり、検証されたモデルのみをさらに外挿することができます5

Cox比例ハザードモデルは、予後因子と生存状態との関連を調査するために医学研究で使用される回帰モデルです。しかし、Cox比例ハザードモデルは結果の2つのステータス[Y(0, 1)]のみを考慮しますが、被験者はしばしば2つ以上のステータスに直面し、競合するリスクが発生します[Y (0, 1, 2)]1。全生存期間(OS)は、起源(治療など)から何らかの原因による死亡日までの時間として定義され、生存分析において最も重要なエンドポイントです。しかし、OSはがん特異的死亡と非がん特異的死亡(例えば、心血管イベントやその他の無関係な原因)を区別できず、競合するリスクを無視している6。このような状況では、競合リスクを考慮した生存状態の予測には競合リスクモデルが好まれます7。Cox比例ハザードモデルの構築と検証の方法論は十分に確立されていますが、競合するリスクモデルの検証に関する報告はほとんどありません。

先行研究では、特定の競合リスクノモグラム、ノモグラムと競合リスクモデルの組み合わせ、競合リスクモデルに基づくリスクスコア推定を確立しました8。この研究は、確立された競合リスクノモグラムの評価と検証のさまざまな方法を提示することを目的としており、臨床医が予測するための有用なツールとして役立つはずです 競合するリスクを考慮して。

Access restricted. Please log in or start a trial to view this content.

プロトコル

Surveillance, Epidemiology, and End Results(SEER)データベースは、匿名化された患者データのみを含むオープンアクセスのがんデータベースです(SEER ID:12296-Nov2018)。したがって、この研究は、浙江大学医学部附属金華病院の審査委員会の承認を免除されました。

1. データの準備と R パッケージの準備

  1. データを準備してインポートします。
    > データセット <- read.csv(".../Breast cancer Data.xlsx") #Import データ。
    注:データは 補足ファイル1にアップロードされます。
  2. R パッケージをインストールして読み込みます。
    > パッケージ <- c("rms","cmprsk","mstate","survival","riskRegression","
    プロドリム」)
    > req.pcg <- function(pcg){
    新しい<- PCG[!(pcg %in% installed.packages()[, "Package"]]
    if (length(new)) install.packages(new, dependencies = T)
    sapply(pcg, require, ch = T)
    }
    > req.pcg(パッケージ)

    注: R ソフトウェア (バージョン 3.6.2) に基づいて、rms、 cmprskmstatesurvivalriskRegression、および prodlim (http://www.r-projectrg/) パッケージを使用して、次の手順を実行します。

2. 競合するリスクノモグラムを2つの異なる方法で確立する

  1. 競合するリスクノモグラムを直接法で確立します。
    > mod_cph <- cph(Surv(生存月数、ステータス)~ファクター1+ ファクター2+...、
    x=T, y=T, surv=T, data=Dataset)
    > nom <- nomogram(mod_cph, fun=list(function(x) 1-surv_cph(36, x)...),
    funlabel=c("3 年 event1 Prob."...)、lp = F)
    #Take 例として36か月目です。
    > mod_crr <- crr(サバイバル月、ステータス、フェイルコード= 1、cov1 = cov)
    > スコア <- log(log((1-real.3y),(1-cif.min36))))/(maxbeta/100)
    >プロット(名目)
  2. 重み付けされた方法で競合するリスクノモグラムを確立します。
    > df.w <- crprep("Survivalmonths"", fstatus",
    データ=データセット, トランス=c(1,2), cens=0,
    keep=c("factor1"," factor2"...))
    > mod.w <- cph(Surv(Tstart, Tstop, status==1) ~ factor1+factor2+...,
    data=df.w, weight=weight.cens, subset=failcode==1, surv=T)
    > nom.w <- nomogram(mod.w...)

3. 競合リスクノモグラムの識別能力

  1. 識別のためのCインデックス
    1. 行列 cov を競合するリスクモデル mod_crr に適合させ、予測行列 suvを取得します。
      > SUV <- predict.crr(mod_crr, cov)
    2. suv から特定の月の累積発生率を取得し、関数 rcorr.censを使用して C インデックスを計算します。
      > CIF36 <- SUV[which(suv[,1]==36),][-1]
      > rcorr <- rcorr.cens(1-cif36,Surv(Dataset$Survivalmonths,Dataset$tumordeath))
      > CINDEX <- rcorr[1]
  2. 差別のためのAUC
    1. 関数 Score (riskRegression パッケージ) を使用して、競合するリスク モデルの予測パフォーマンスをスコアリングします。
      > fgr.w <- FGR(Hist(生存月数, fstatus) ~ 因子1+ 因子2+..., データ=データセット, 原因=1)
      >スコア<-スコア(リスト("ファイングレー" = fgr.w),
    2. 「スコア」からAUCを抽出します。
      >スコア$AUC

4. 競合するリスクモデルの較正能力

  1. 競合リスクモデルの95%信頼区間を持つ検量線
    1. 特定の故障時間における各個人の累積発生率を含むデータフレームを取得します。
      > cif36 <- data.frame(cif36) #Take 例として 36 か月目です。
      > colnames(cif36.36_o)<-c("36m")
    2. 推定累積発生率に従ってコホートを5つのサブグループに分割し、各サブグループの平均予測累積発生率を計算します。
      >グループ36<カット(CIF36$'36M'、
      分位点(CIF36$'36M', seq(0, 1, 0.2)),
      インクルード.最低 = TRUE、ラベル = 1:5)
      > mean36 <- as.vector(by(cif36 $'36m', group36, mean))
    3. 関数 cuminc を使用して観測された累積発生率、つまり実際の累積発生率を計算し、特定の故障時間に 95% の信頼区間で観測された累積発生率を取得します。
      > cum36 <- cuminc(Dataset$Survivalmonths,Dataset$fstatus,group36)
      > obs36 <- timepoints(cum36,Dataset$Survivalmonths)$est[c(1:5),36]
      > obs36var <- timepoints(cum36,Dataset$Survivalmonths)$var[c(1:5),36]
      > DF <- data.frame(mean36, obs36, obs36var)
    4. 関数 ggplotを使用して、予測累積発生率をx軸、観測された累積発生率をy軸として検量線をプロットします。
      > ggplot(df)+ geom_point(aes(x=mean36,y=obs36),col="red")+
      geom_point(aes(x=mean36,y=obs36),col="red",pch=4)+
      geom_line(col="red",aes(x=mean36,y=obs36))+
      geom_errorbar(col="red",aes(x=mean36,y=obs36+1.96
      *sqrt(obs36var)),
      ymin = obs36-1.96*sqrt(obs36var), ymax = obs36+1.96
      *sqrt(obs36var))
      geom_abline(lty=3,lwd=2,col=c(rgb(0,118,192,
      最大カラー値= 255)))
  2. 競合するリスクモデルのリスクスコアを含む検量線
    1. すべての変数の各水準を評価し、合計RSを取得します。
      > Dataset$factor1[Dataset$factor1==1] <- factor1.scale["Factor1_level1"]
      >
      ... #For 例: Dataset$histology[Dataset$histology==1]<-histology.scale["histology1"]
      > Dataset$rs <- Dataset$factor1+Dataset$factor2+Dataset$factor3+...
      注:各変数の点を合計して、各患者の合計RSを取得します。
    2. 頻度をカウントし、さまざまな合計リスクスコアの観測された累積発生率を計算します。
      > rs.freq <- as.data.frame(table(Dataset$rs))
      > obs.36 <- vector(mode="numeric", length=nrow(rs.freq))
      > for (i in 1: nrow(rs.freq)) {
      データセット <- サブセット(Dataset,Dataset$rs== rs.freq [i,1])
      cif.dataset <- cuminc(dataset$Survivalmonths,dataset$death3)
      CIF36.データセット <- タイムポイント(CIF.データセット,36)
      obs.36[i] <- cif36.dataset$est[1]}
    3. X 軸の範囲を設定し、合計リスク スコアの予測累積発生率を計算します。
      > RS <- 範囲(nom$total.points)
      > x.36 <- seq(min(rs),max(RS),0.01)
      > 36 より前 <- 1-(1-CIF.min36)^exp(x.36*maxbeta/100)
    4. リスクスコアを含む検量線をプロットします。
      > プロット(x.36, pre.36, type='l'...)
      > par(new=TRUE)
      > plot(as.vector(rs.freq[,1]), obs.36...)

5. 競合リスクモデルの決定曲線分析

  1. stdca 関数をソースにして、決定曲線分析を実行します。
    > source("stdca.R")
  2. ノモグラムから多項式方程式を抽出して、生存確率を計算します。
    > ノモグラムEx(ノモ=ノム)
    > データセット$予測変数 <- A * (データセット$rs ^3) + B * (データセット$rs ^2) + C * データセット$rs + D
    #predictors は、確立されたノモグラムによって計算されたがん特異的死亡の予測確率です
  3. ディシジョンカーブ分析を実行します。
    > stdca(data = Dataset, result = "status", ttresult = "Survivalmonths", timepoint = 36,
    予測変数 = "予測変数", cmprsk = 真, 平滑 = 偽, 確率 = 偽)

    注: 競合するリスクが存在する場合に結果を評価するには、 cmprsk に対して TRUE を選択する必要があります。

6. ブートストラップ方式による内部バリデーション

  1. ブートストラップ法を使用して、予測される平均累積発生率を取得します。
    1. 元のデータセット (Dataset) を replace でリサンプリングして、ブートストラップ データセット (Dataset_in) を生成します。ブートストラップデータセットを使用して競合リスクモデル(mod.in_crr)を確立します。 関数 predict.crr を使用してmod.in_crrを予測し b 回ループして suvall.in を生成します。
      B=b
      suvall.in <- リスト()
      for(j in 1:B){
      Dataset_in <- Dataset[sample(c(1:nrow(Dataset))),nrow(Dataset),
      置換 = TRUE),]
      アタッチ(Dataset_インチ)
      cov.in <- model.matrix(~factor1+ factor2+...)[,-1]
      モッズ。in _crr <- crr(Survivalmonths, fstatus, failcode = 1, cov1=cov.in)
      デタッチ(データセット内部)
      スーブ。in <- predict.crr(mod. in _crr, cov)
      suvall.in[[j]] <- suv.in}
    2. 特定の月の平均予測累積発生率を取得します。
      CIF36すべて。 内部 <ベクトル(モード="数値", 長さ=nrow(データセット))
      for (k in 1:B) {
      CIF36すべて。内部< - CIF36すべて。インナー+スバル。inner[[k]][which(suvall. inner[[k]][,1]==36),][-1]
      }
      cif36.in <- cif36all.in/B
  2. 関数 rcorr.censによる内部交差検証を使用してCインデックスを計算します。
    rcorr.inner <- rcorr.cens(1-cif36.in,Surv(Dataset$Survivalmonths,Dataset$tumordeath))
    cindex.インナー<-rcorr。インナー[1]
  3. 交差内部検証を使用して校正します。
    注:内部検証を伴う競合リスクモデルの検量線のコードはセクション4のコードと同様ですが、 SUVsuv.in に置き換えられました

7. 競合リスクモデルの外部検証

  1. 外部データを使用して予測された累積発生率を取得します。外部データ変数の行列 (cov.ex) を使用して、予測された累積発生率を取得します。
    suv.ex <- predict.crr(mod_crr,cov.ex)
    cif36.ex <- suv.ex [which(suv.ex $time=="36"),][-1]
  2. 外部検証を使用して C インデックスを計算します。
    rcorr.ex <- rcorr.cens(1-cif36.ex,Surv(Dataset.ex$Survivalmonths,Dataset.ex$tumordeath))
    cindex.ex <- rcorr.ex[1]
  3. 外部検証を使用して調整します。
    注:内部検証を伴う競合リスクモデルの検量線のコードはセクション4のコードと同様ですが、 suvsuv.exに置き換えられています。

Access restricted. Please log in or start a trial to view this content.

結果

本研究では、SEERデータベースから乳がん患者のデータを取得し、サンプルデータとして提供した。SEERデータベースは、米国の人口の約34.6%を占めるがんに関するデータを提供し、データベースにアクセスする許可を得ました(参照番号12296-Nov2018)。

組織型,分化グレード,T期,N期を含む2つのノモグラム(図1)を,それぞれ直接法と重み付け法を用いて樹立...

Access restricted. Please log in or start a trial to view this content.

ディスカッション

本研究では、2つの異なる方法で確立された競合するリスクノモグラムを比較し、確立されたノモグラムの評価と検証を実施しました。具体的には、この研究では、直接法に基づいてノモグラムを確立するためのステップバイステップのチュートリアルを提供し、Cインデックスを計算し、検量線をプロットしました。

Rソフトウェアのrmsパッケージは、Cox比例ハザ?...

Access restricted. Please log in or start a trial to view this content.

開示事項

著者は、競合する利益がないことを宣言します。

謝辞

この研究は、浙江省の医療科学技術計画プロジェクト(助成金番号2013KYA212)、浙江省自然科学財団の一般プログラム(助成金番号Y19H160126)、および金華市科学技術局の主要プログラム(助成金番号2016-3-005、2018-3-001d、および2019-3-013)からの助成金によって支援されました。

Access restricted. Please log in or start a trial to view this content.

資料

NameCompanyCatalog NumberComments
R softwareNoneNot ApplicableVersion 3.6.2 or higher 
Computer systemMicrosoft Windows 10 Windows 10 or higher

参考文献

  1. Andersen, P. K., Gill, R. D. Cox's regression model for counting processes: A large sample study. The Annals of Statistics. 10 (4), 1100-1120 (1982).
  2. Lubsen, J., Pool, J., vander Does, E. A practical device for the application of a diagnostic or prognostic function. Methods of Information in Medicine. 17 (2), 127-129 (1978).
  3. Harrell, F. E., Lee, K. L., Mark, D. B. Multivariable prognostic models: Issues in developing models, evaluating assumptions and adequacy, and measuring and reducing errors. Statistics In Medicine. 15 (4), 361-387 (1996).
  4. Hung, H., Chiang, C. -T. Estimation methods for time-dependent AUC models with survival data. The Canadian Journal of Statistics / La Revue Canadienne de Statistique. 38 (1), 8-26 (2010).
  5. Moons, K. G. M., et al. Risk prediction models: I. Development, internal validation, and assessing the incremental value of a new (bio)marker. Heart. 98 (9), 683-690 (2012).
  6. Fu, J., et al. Real-world impact of non-breast cancer-specific death on overall survival in resectable breast cancer. Cancer. 123 (13), 2432-2443 (2017).
  7. Fine, J. P., Gray, R. J. A proportional hazards model for the subdistribution of a competing risk. Journal of the American Statistical Association. 94 (446), 496-509 (1999).
  8. Wu, L., et al. Establishing a competing risk regression nomogram model for survival data. Journal of Visualized Experiments. (164), e60684(2020).
  9. Zhang, Z., Geskus, R. B., Kattan, M. W., Zhang, H., Liu, T. Nomogram for survival analysis in the presence of competing risks. Annals of Translational Medicine. 5 (20), 403(2017).
  10. Zhang, Z. H., et al. Overview of model validation for survival regression model with competing risks using melanoma study data. Annals Of Translational Medicine. 6 (16), 325(2018).
  11. Newson, R. Confidence intervals for rank statistics: Somers' D and extensions. Stata Journal. 6 (3), 309-334 (2006).
  12. Davison, A. C., Hinkley, D. V., Schechtman, E. Efficient bootstrap simulation. Biometrika. 73 (3), 555-566 (1986).
  13. Roecker, E. B. Prediction error and its estimation for subset-selected models. Technometrics. 33 (4), 459-468 (1991).
  14. Steyerberg, E. W., Harrell, F. E. Prediction models need appropriate internal, internal-external, and external validation. Journal of Clinical Epidemiology. 69, 245-247 (2016).
  15. Zhang, Z., Chen, L., Xu, P., Hong, Y. Predictive analytics with ensemble modeling in laparoscopic surgery: A technical note. Laparoscopic, Endoscopic and Robotic Surgery. 5 (1), 25-34 (2022).

Access restricted. Please log in or start a trial to view this content.

転載および許可

このJoVE論文のテキスト又は図を再利用するための許可を申請します

許可を申請

さらに記事を探す

187

This article has been published

Video Coming Soon

JoVE Logo

個人情報保護方針

利用規約

一般データ保護規則

研究

教育

JoVEについて

Copyright © 2023 MyJoVE Corporation. All rights reserved