Syleir’s note

2020.4.1より統計検定やE資格の勉強の進捗を報告しています。統計検定準1級、E資格、G検定取得しました!当ブログへのリンクはご自由にどうぞ。

MENU

カプランマイヤー曲線の作成(打ち切りのある場合)【Part5】【統計検定1級、凖1級対策】

1. はじめに

前回の記事はこちらです。
syleir.hatenablog.com

前回は、打ち切りのない場合でカプランマイヤー曲線を作成してみました。
今回は、打ち切りのある場合でも生存曲線をカプランマイヤー法で作成できるようになるべく、解説していきます。

本稿では

これらの本から統計検定対策として必要十分なように要約、加筆しています。
わからないところがあれば原著にあたってみてください。

3. 打ち切りのある場合

適宜、前パートと対応しているので、2タブで開きながら見てみてください。

3.1 打ち切りとは

前回述べたように、打ち切りデータは、観察期間外にイベントが起きていることを指します。最もこの中で多い例は、観察期間が終了した時点でイベントが発生していない、という例であり、「右側打ち切り」という概念に含まれます。現状試験対策では右側、左側などの理解は不要ですが、重要な概念なのでいずれ補足記事を書きます。

「観察期間が終了した時点でイベントが発生していない」というのは、例えば、治験などで、死亡をイベントとしたときに、「観察期間が終了した時点で被験者がまだ生存している」といった状況を指します。イベントが起きる前に実験期間が終了してしまうケースは非常によくあることです。
打ち切りのないデータを得るには患者全員が亡くなるのを待つ必要がありますが、到底(経済的や時間的制約により)現実的ではありません。

3.2 打ち切りのあるデータの取り扱い

理想的には、打ち切りのないデータを集めるのが理想ですが、多くの実験の場合、それが難しいことは想像に難くありません。
ではどのように対応したら良いでしょうか。
例えば、打ち切りが発生したデータをそもそもそのような人がいなかったこととして、データが無かったことにした場合どのような問題があるでしょうか。
この場合は、「少なくとも打ち切られるまではイベントが起きることなく推移した」という情報を失うので、イベントの発生率やハザードを過大評価してしまいます。特に打ち切りが多ければ多いほどそのようになってしまい、解析に必然的に打ち切りが絡む生存時間解析では無視することはできない影響を与えてしまいます。

そこで、打ち切りを含むデータは生存時間解析において特別な扱いが必要で、これを考慮に入れた生存関数の推定を可能にするのがカプランマイヤー推定量であり、それに引き続くカプランマイヤー法です。

3.3 カプランマイヤー推定量とは?

まずは定義を出します。

\hat{S}(t_{(f)}) = S(t_{(f-1)}) \times (1 - \dfrac{n_f}{r_f})

ここで、
r_fは時間t_{(f)}の直前まで生存している人数
n_fは時間t_{(f)}でのイベント(例えば死亡)数
を表しています。

さて、この式はすでに既出です。1章の最後と比較して全く同じ式です。そう、カプランマイヤー統計量とは、生存関数の推定値を出すための補正を行ったものなのでした。

カプランマイヤー統計量の更新は上と同じようにイベントが発生するごとに情報を更新していきます。伏線回収ですね。打ち切りがあっても情報の更新を行わず、イベントが発生した際に情報の更新を行います。

情報の更新の仕方も全く前と同じです。
①' T = tの直前のS(t)の値
②' T = tでのイベントの発生率
を情報として持っておき、①'×②' とすることで生存確率を更新します。
イベントの発生率も同じ計算でよく、その時点での 1 - \dfrac{死亡人数}{直前生存人数}です。

唯一打ち切りのない場合と違うのは、「直前生存人数r_f」にイベント間に発生した打ち切りの影響が含まれることです。このおかげで、前述したイベントの発生率やハザードを過大評価してしまうことを防ぐことができます。なお、補足ですが、この「直前生存人数r_fのことをリスクセットと言います。

4 練習問題

さて、ここまでの知識を整理するために練習問題として以下のデータを使ってカプランマイヤー曲線を作成してみましょう。

t イベント発生数 打ち切り数 リスクセット
0 0 0 6
1 2 0 6
2 0 0 4
3 0 1 4
4 1 0 3
5 1 0 2
6 0 0 1
t = 0

t = 0では、\hat{S}(0) = 1です。

t = 0
t = 1

\hat{S}(0) = 1であり、t = 1での直前生存人数:リスクセットは6 ,イベント発生数は2なのでt = 1でのイベント発生率は1/3ですから、推定されるt = 1での生存率\hat{S}(1)は1×(1 - 1/3) = 2/3となります。

t = 1
t = 2

 t = 2ではイベント、打ち切り共にありませんので、そのまま\hat{S}(2)は2/3のままです。

t = 3

 t = 3では打ち切りが1件あります。
イベントはないので生存関数の値の更新はありません。
リスクセットが1減って4 → 3に変わります。

t = 3
t = 4

 t = 4ではイベントが1件、リスクセットは3件なので、 t = 4でのイベント発生率は1/3です。
よって推定されるt = 4での生存率\hat{S}(4)は2/3 ×(1 - 1/3) = 4/9となります。

t = 4
t = 5

同様にt = 5ではリスクセット2件、イベント1件なのでイベント発生率は1/2
よってt = 5での\hat{S}(5)は4/9 × (1 - 1/2) = 2/9 となります。

t = 5
t = 6

 t = 6ではイベント、打ち切り共にありませんので、そのまま\hat{S}(6)は2/9のままです。

完成
完成!

ということで完成になります。

実際はステップ関数の形で表しますのでこれを折れ線のように表して

このようになります。

なお、過去問の解答ではそういう表記はないのですが、一般的には打ち切りがある場合は上髭をつけて表記することが多く、

このように表記します。

おわりに

今回は打ち切りのある場合についてもカプランマイヤー曲線の作成ができるようになりました。
次回は、実際の解析を行うためのログランク検定について解説をします。