EZR で IPTW(逆確率重み付け)カプランマイヤー曲線の生存期間中央値と 95 % 信頼区間を計算する方法を紹介する
IPTW カプランマイヤー曲線とは何か?
IPTW(逆確率重み付け) カプランマイヤー曲線とは、傾向スコアの逆数を用いた IPTW で交絡因子を調整した、群間比較カプランマイヤー曲線のことである
書き方の具体的な方法は、過去記事参照
IPTW カプランマイヤー曲線の生存期間中央値と 95 %信頼区間を計算する方法
EZR で、IPTW カプランマイヤー曲線の生存期間中央値と 95 %信頼区間を計算する方法を解説する
方針としては、一部 EZR の統計解析メニューで出力される R スクリプトを借りる
一部加筆することで計算する
まず、通常のカプランマイヤー曲線を書く
統計解析 → 生存期間の解析 → 生存曲線の記述と群間の比較(Logrank 検定)を選択する
時間変数、イベント変数、群別変数を選択して、OK をクリックすると、以下のように書ける
同時に、生存期間中央値と 95% 信頼区間は以下のように計算される
IPTW を指定して再度実行する
IPTW を survfit に書き入れて、再度実行する
具体的には、weights を追記する(前提として、IPTW が計算されていて、weight.ATE.GLM.1 という名前である)
R スクリプト枠内に以下のスクリプトを見つけて、最後の部分に、weights = weight.ATE.GLM.1(IPTW の変数名に適宜変更)加筆する
km <- survfit(Surv((time/1),status01==1)~ph.ecog01, data=lung_rev, na.action = na.omit, conf.type="log-log", weights=weight.ATE.GLM.1)
上記を選択して実行後、以下の部分を選択し再度実行すると、その下のようなグラフが書ける
plot(km, bty="l", col=1:32, lty=1, lwd=1, conf.int=FALSE, mark.time=TRUE, xlab="time", ylab="Probability") xticks <- axTicks(1) n.atrisk <- nrisk(km, xticks) for (i in 1:length(km$strata)){axis(1, at = xticks, labels = n.atrisk[i,], line=3+i, tick = FALSE)} for (i in 1:length(km$strata)){mtext(legend[i], at=-(xticks[2]-xticks[1])/2, side=1, line=4+i, cex=1)} title(xlab = "Number at risk", line = 3.5, adj = 0) legend ("topright", legend, col=1:32, lty=1, lwd=1, box.lty=0, title="ph.ecog01")
Number at risk が整数ではなく、小数点以下があるため、症例一人一人に重みがかかったことがわかる
生存期間中央値と 95 %信頼区間は、以下の箇所を選択し実行すると、計算される
km.summary.table <- summary.km(survfit=km, survdiff=res) km.summary.table
生存期間中央値と 95 %信頼区間は、以下のように少しだけ変わった
ちなみに、P 値(ログランク検定)は、IPTW 前のままなので、使わないように注意
IPTW ログランク検定は、こちらを参照のこと
まとめ
EZR で IPTW カプランマイヤー曲線の生存期間中央値と 95 %信頼区間を計算する方法を解説した
最初に、通常のカプランマイヤー曲線を書き、その時に生成された R スクリプトに IPTW を指定するように加筆するだけで、簡単に計算できる
survfit という関数の引数として、weights を指定するだけ
参考になれば
コメント