生存時間分析 のRによる実施例です。
下記は、コードのメモとして書いたもので、「分析」というほど、詳しくないです。
下記のコードで使っているデータは、「gehan」というRのサンプルデータをcsvファイルにして、ローカルPCに置いたものです。
変数名は下記になります。
time : 生存時間
cens : 1 = 完全データ、 0 = 打ち切りデータ
treat : 要因のカテゴリーデータ
setwd("C:/Rtest")
library(survival)
Data <- read.csv("Data.csv", header=T)
ge.sf<-survfit(Surv(time,cens)~1, data=Data)
plot(ge.sf,xlab="Time", ylab="Overall Survivial")
点線は、
信頼区間
です。
setwd("C:/Rtest")
library(survival)
Data <- read.csv("Data.csv", header=T)
ge.sf<-survfit(Surv(time,cens)~treat, data=Data)
plot(ge.sf, col=2:3,xlab="Time", ylab="Overall Survivial")
legend("topright", paste(c("A","B")), lty=1, col=2:3)
setwd("C:/Rtest")
library(survival)
Data <- read.csv("Data.csv", header=T)
summary(survreg(Surv(time,cens)~1,Data,dist="weibull"))
この結果の見方ですが、「m」や「β」という記号で説明されることの多い形状パラメータは、「Scale」というところの数値の逆数です。 この例だと、0.73ですが、逆数は1.37(= 1 / 0.73)で、1より大きくなるので、摩耗故障期(バスタブ曲線の右側で、故障率がどんどん高くなっていく期間)と解釈できます。
カプラン・マイヤー法で計算した結果と、ワイブル解析で計算した結果を重ね合わせたグラフを作ります。
Rでは、カプラン・マイヤー法のグラフを作るのは簡単です。 一方、ワイブル解析の方は、コードが複雑です。 いろいろと調べてみたところ、下記の参考文献の内容が一番シンプルでした。 この方法だと、カプラン・マイヤー法のグラフを作ってから、それに重ねることで簡単にしています。
setwd("C:/Rtest")
library(survival)
Data <- read.csv("Data.csv", header=T)
sr <- survreg(Surv(time,cens)~1,Data,dist="weibull")
sf <-survfit(Surv(time,cens)~1, Data)
plot(sf)
curve(1-pweibull(x,shape=1/sr$scale, scale=exp(coef(sr)[1])),add=TRUE)
setwd("C:/Rtest")
library(survival)
Data <- read.csv("Data.csv", header=T)
sr <- survreg(Surv(time,cens)~treat,Data,dist="weibull")
sf <- survfit(Surv(time,cens)~treat, Data)
plot(sf, col=2:3,xlab="Time", ylab="Overall Survivial")
legend("topright", paste(c("A","B")), lty=1, col=2:3)
curve(1-pweibull(x,shape=1/sr$scale, scale=exp(coef(sr)[1])),add=TRUE, col=2)
curve(1-pweibull(x,shape=1/sr$scale, scale=exp(coef(sr)[1]+coef(sr)[2])),add=TRUE, col=3)
setwd("C:/Rtest")
library(survival)
Data <- read.csv("Data.csv", header=T)
summary(coxph(Surv(time, cens) ~ treat, data=Data))
上記の例だと、要因の変数がtreatの1個だけです。 例えば、treat2という変数もあって、それも要因に加えたい場合は、treat + treat2と書きます。
「Rと生存時間分析(1)」
カプラン・マイヤー法がのっています。
https://www1.doshisha.ac.jp/~mjin/R/Chap_36/36.html
「統計ソフトRを使ったグループごとのカプランマイヤー曲線の描き方」
カプラン・マイヤー法がのっています。
https://toukeier.hatenablog.com/entry/2019/07/28/204607
「Rと生存時間分析(2)」
コックス回帰分析、ワイブル解析について詳しくのっています。
https://www1.doshisha.ac.jp/~mjin/R/Chap_37/37.html
「survreg と weibreg」
survregとweibregという、ワイブル解析ができる2つのライブラリを比較した記事です。
この中で、カプラン・マイヤー法とワイブル解析のグラフを併記する方法は、このページを参考にさせていただきました。
http://aaaaushisan.blogspot.com/2011/12/survreg-weibreg.html
「survival」
CRANにあるsurvivalのマニュアルです。
「survreg's scale = 1/(rweibull shape)
survreg's intercept = log(rweibull scale)」
とありますので、survregの結果は、逆数や指数にすると、一般に使っているワイブル分布の係数が計算できることが書かれています。
https://cran.r-project.org/web/packages/survival/survival.pdf