これまでリスク数とともに生存曲線を描くのは手間がかかりました。以前に“survminier”を使った方法を紹介しました。しかしggplot2という作図パッケージを動かすため自由度が増す分、多少使いにくい面もあり初心者にはおすすめしにくい面がありました。
今回ご紹介するRの追加パッケージ”packHV”は、本来のsurvivalパッケージを生かしており、臨床医学研究に使う解析が網羅されており重宝します。
使用するデータセットはcolonです。これは”suvival”に入っているサンプルデータセットです。元データ[Laurie JA JCO1989. PMID:2778478]は大腸癌の術後補助化学療法の古いデータです。当たり前の話ですが、survivalパッケージが入っていれば自動的に入っています。パッケージの読み込みから、
library(packHV)
次に患者背景のまとめを作ってみます。
まずデータ型の確認、調整をします。
str(colon)
するとsex, obstruct, adhereなどが数字型になっていることが分かります。これをまとめようとすると数字として扱われます。わかっている人にはくどいですが男=1、女=0とすると、平均性別が0.5となり無意味な解析となるということです。これまでは一つ一つの因子について変換し、再度data.frameでまとめる必要がありました。しかしpackHVでは必要なものを因子型にして同じデータベース内に再格納する機能が備わっています。地味に便利な機能です。
colon<-convert_factor(colon,c(“rx”,”sex”,”obstruct”,”nodes”,”differ”,”surg”))
その上で患者背景表を作ります。
desc(colon,c(“age”,”sex”,”obstruct”,”differ”,”surg”),group=”rx”,whole=F)
私はこれが今まで出来そうで出来なかったので感動しましたが、レベルが低いでしょうか?サブグループ解析など人数を多面的に見たいときなどは
plot_multi.table(colon,c(“rx”,”sex”,”surg”,”obstruct”))
も役立ちそうです。
さて本題のリスクテーブル付きの生存曲線です。
plot_km(Surv(time,status)~rx,data=colon,col=c(“blue”,”red”,”pink”),mark.t=T,legend=”topright”)
私が知っている中で最も簡単にリスクテーブル付きの生存曲線が描けました。
また多変量解析として、コックス比例ハザードモデルでの95%信頼区間も一発で表示されます。これまでも2行ではあるものの結構面倒なことをしていました。
例としてsex,obstruct,surgを説明変数として採用した場合、
IC_RR_coxph(coxph(Surv(time,status)~sex+obstruct+surg,data=colon),alpha=0.05,sided=2)
オマケとして
散布図から回帰直線を書くには、通常回帰直線を定義してplot図にablineで上書きするのが普通です。このpackHVでは一発です。
なおcgdも”suvival”に入っているサンプルデータセットです。
plot_reg(cgd$age,cgd$height)
やや散漫でしたが、今回は自分のメモ書きとして記事にしました。以上のコマンドをすべてまとめておきます。*いつものことですが、うまくいかない場合一度テキストに張り付けて、再度コピペしてください
1 2 3 4 5 6 7 8 9 |
par(ask=T) #コマンドが流れないように library(packHV) str(colon) colon<-convert_factor(colon,c("rx","sex","obstruct","nodes","differ","surg")) desc(colon,c("age","sex","obstruct","differ","surg"),group="rx",whole=F) plot_multi.table(colon,c("rx","sex","surg","obstruct")) plot_km(Surv(time,status)~rx,data=colon,col=c("blue","red","pink"),mark.t=T,legend="topright") IC_RR_coxph(coxph(Surv(time,status)~sex+obstruct+surg,data=colon),alpha=0.05,sided=2) plot_reg(cgd$age,cgd$height) |