廿TT

譬如水怙牛過窓櫺 頭角四蹄都過了 因甚麼尾巴過不得

Rによる打ち切りデータの箱ひげ図

今日の川柳

右打ち切りのあるデータを視覚化するのにはカプラン・マイヤープロットが便利です。

しかし層の数が多くなると判例と見比べるのが大変になる。

f:id:abrahamcow:20180123230036p:plain

そこである程度情報を落としてプロットしてもいいかなと思い、打ち切りデータの箱ひげ図を提案にします。

make_q_df.R · GitHub


興味があるのは生存時間の長さなので、箱ひげ図の髭の下、箱の下、中央の線、箱の上、髭の上にそれぞれ10%の患者が死亡した時点、25%の患者が死亡した時点、50%の患者が死亡した時点、75%の患者が死亡した時点、90%の患者が死亡した時点を対応させてプロットしたのが以下の図です。

f:id:abrahamcow:20180123230439p:plain

四角い枠が観測期間の終了を示しています。

実用性あるか等、コメントいただけると嬉しいです。

以下 R のコードです。

library(survival)
library(tidyverse)
source("https://gist.githubusercontent.com/abikoushi/db838b6477b0b612d4da1343a0fa3f46/raw/a6c0a6b8a24d1769c070156de227f678026651c7/make_q_df.R")

lung2 <- lung %>% 
  filter(ph.ecog!=3)
sf <-survfit(Surv(time,status)~sex+ph.ecog,data=lung2)
q_df<-make_q_df(sf)

plot(sf,col=1:6)
legend("topright",legend = names(sf$strata),col=1:6,lty=1)

ggplot(q_df,aes(x=strata))+
  geom_boxplot(aes(lower=q0.25,upper=q0.75,middle=q0.5,ymin=q0.1,ymax=q0.9),stat = "identity")+
  scale_y_continuous(limits = c(0,max(lung2$time[lung2$status==1])),
                     expand = c(0, 0))+
  coord_flip()+
  xlab("")+ylab("")+
  theme_rect()

abrahamcow.hatenablog.com

abrahamcow.hatenablog.com