トップページ | ひとつ上のページ | 目次ページ | このサイトについて | ENGLISH

生存時間分析

生存時間分析は、 時間解析 の一種です。 扱う時間が「生存時間(寿命)」の時に、生存時間のデータから知りたいことを調べられるようになっています。

名前は「生存時間」ですが、生存時間分析の方法は、文字通り「生存時間」の分析の他に、 「薬の効き方」、「イベント発生までの時間」、「故障までの時間」、「退会までの時間」といった時間の分析にも使えます。 さらには、「長さ」のような物理量を扱う方法として、時間以外にも、応用が広げられる方法です。

生存時間分析では、このようなデータから、 「〇〇時間後の生存率」、「条件による寿命の違い」、「瞬間死亡率は増加傾向か?」、といったことが調べられます。

生存時間分析のデータ

生存時間分析のデータには、独特の特徴があります。

生存時間のデータ

生存時間は、一般には「寿命」とも呼ばれます。 「寿命」の場合は、生物だけでなく、工業製品にも使われます。

生存時間分析の基本は、複数のサンプルの生存時間という、1次元データの分析になります。

打ち切りデータ

生存時間のデータは、測定開始と測定終了の時刻の差として求まります。 例えば、「生まれた・死んだ」が開始と終了の時刻です。 また、「入会・退会」、「服用開始・効き目が出た」、「使用開始・故障」等も、開始と終了にすることができます。

「途中で来院しなくなったので、経過がわからなくなった」、「長過ぎるので測定をやめた」、「実験期間が終わった」等の理由で、 開始は記録しているけれども、終了が記録されていないデータが発生することがあります。 こうしたデータは、「打ち切りデータ」と呼ばれます。 打ち切りデータは、 欠損値 の一種です。

打ち切りがあったとしても、打ち切りの時刻が記録されていれば、その打ち切りデータは、「その時刻までは生存していた」というデータにはなります。 生存時間分析には、打ち切りデータも活用できるようになっている方法もあります。

打ち切りがある場合とない場合が混ざったデータの場合、「時間」と「打ち切りの有無」の2つが必要になります。 そのため、打ち切りがあると、2次元データの分析になります。

条件のデータ

分析の目的によっては、条件の違いで生存時間に違いがあるのかを調べたいことがあります。 その場合、条件を示す変数が必要になるので、3次元以上のデータになります。

生存関数・生存率の計算

A、Bという2人がいて、Aが2年で退会、Bが3年で退会したとします。

このデータを使うと、 1年目の生存率は1.0、2年目の生存率は0.5、3年目以上の生存率は0.0という計算ができます。

生存率は、生存関数と呼ばれます。
S(t)
と書きます。

上記の例だと、
S(1) = 1.0
S(2) = 0.5
S(3) = 0.0
S(4) = 0.0
といった使い方になります。

ハザード関数

ある瞬間の瞬間死亡率(瞬間故障率)は、「ハザード関数」と呼ばれています。
h(t)
と書きます。

ハザード関数の一番簡単な形は、定数の時です。 例えば、「0.1」で1日を単位としたデータでしたら、この意味は、「1日当たり壊れていないものの10台に1台が壊れる」になります。 その時に壊れていないものの中の内訳を表しています。 そのため、「1日に0.1だから、10日で全部が壊れる」という計算にはなりません。 1日ごとに、その時に壊れていないものの中で、どうなっていくのかを表しています。 全体の数は、指数関数の逆数の形になって来ます。

累積ハザード関数

ハザード関数h(t)の、時刻0からある時刻までの積分は、累積ハザード関数と呼ばれています。
H(t)
と書きます。 ハザード関数を「瞬間死亡率」と上記で書きましたが、累積ハザード関数は死亡率ではないです。

累積ハザード関数と生存関数(生存率)には、
H(t) = -log(S(t))

S(t) = exp(-H(t))
という関係があります。

死亡率 = 1 - 生存率
なので、だいぶ違います。

生存率の変化の分析

「生存時間の平均値」は、持っているデータに対してひとつ求まります。

一方、生存率は、だんだん変化する性質がありますので、持っているデータに対してひとつが求まるようなものではないです。 上記の、A、Bのように、 2人だけなら、生存率の変化の計算は簡単ですが、人数が増えたり、打ち切りデータも含まれていると大変になって来ます。

カプラン・マイヤー法

カプラン・マイヤー法では、上記のA、Bの例の計算と同様の計算をする方法です。

「生存率が0.5になるまでの時間」、「生存率がほぼ0になるまでの時間」と言ったことが調べられます。

ソフトで簡単に計算できます。 左から右が時間の流れになっていて、生存率がだんだん下がっていく様子がグラフになります。
survival
実線が生存率で、点線が信頼区間です。

カプラン・マイヤー法は、生存時間のデータをそのままグラフにする方法になっています。 生存時間のデータは、ヒストグラムや棒グラフで表現することもできますが、 カプラン・マイヤー法を使うと、縦軸を生存率にして、横軸を生存時間にしたグラフで表現できます。

パラメトリックモデル

パラメトリックモデルは、生存関数に数式を仮定します。 この点が、カプラン・マイヤー法と異なります。

例えば、
S(t) = exp(-λt)
と仮定すると、
S(0) = 1
S(∞) ≒ 0
となり、指数関数的に、生存率が低くなっていく様子を表現できます。 λの大きさで、実際のデータへの当てはまり方を調整できます。

パラメトリックモデル(ワイブル分布)

指数分布を仮定する時は、ハザード関数(H(t))が一定値(λ)の時、つまり、瞬間死亡率に変化がない時です。

ワイブル分布を仮定すると、工業製品の初期の故障のように、瞬間死亡率(故障率)がだんだん低くなっていったり、 使い古した頃の故障のように、瞬間死亡率がだんだん高くなっていくような現象を表せるようになります。 工業製品の寿命を分析する 信頼性工学 という分野では、ワイブル分布が使われます。

ちなみに、ワイブル分布は、 極値統計 の分布でもあります。

生存率の違いの分析

医学の分野では、「薬の違いで、生存率に違いはあるか?」ということを調べることが、研究のテーマとして重要です。

例えば、下記のような2種類の変化がある時に、これらを同じものと考えるか、別のものと考えるのか、という分析になります。
survival

生存率は、だんだん変化する性質のあるものなので、単純に2つの値を比較するような方法が使えません。 そこで、生存率の違いを分析する方法が考案されています。

ログランク検定と一般化ウィルコクソン検定

ログランク検定や一般化ウィルコクソン検定は、 分割表 にデータをまとめて、 独立性の検定 をする方法の発展版です。

時点毎に分割表を作って、統計量を求めます。 その点は、ログランク検定と一般化ウィルコクソン検定は同じです。

一般化ウィルコクソン検定の方は、時点が進むほど、確かなデータが少なくなることを考慮できるようになっていて、 生存率の違いが重視されない計算方法になっています。

コックス回帰分析

コックス回帰分析は、「比例ハザードモデル」とも呼ばれます。 ハザード関数の比が、一定であることを前提にした方法です。

コックス回帰分析は、 ハザード関数は、ノンパラメトリックの部分とパラメトリックの部分の積になっているので、「セミパラメトリックモデル」として分類されます。 時間に依存して変わる部分が、ノンパラメトリックです。 生存率の違いに影響する部分が、パラメトリックになっています。

例えば、生存率の違いに影響する部分は、
exp(a * x)
という式にします。 例えば、xを薬Aの有無で0と1のどちらかを使うようにします。

さらに、生存率の違いに影響する部分は、
exp(a1 * x1 + a2 * x2 +・・・)
という式にすることもできます。 こうすると、生存率の違いの要因が2個以上あっても扱えるようになります。

使い分け

コックス回帰分析は、 要因が2個以上扱えるのが、ログランク検定や一般化ウィルコクソン検定との違いになっています。 この点が、コックス回帰分析の良いところです。

一般化ウィルコクソン検定では、時間の経過とともに、信頼できるデータが減ることを考慮できます。 この点が、一般化ウィルコクソン検定の良いところです。

コックス回帰分析を、回帰分析の一種として分類すると

コックス回帰分析には、「回帰分析」と入っていますが、 expの中を見ると、確かに 回帰分析 の形になっています。

コックス回帰分析で使う変数は、生存時間、打ち切りか否かがわかる変数、要因の変数の3種類あり、 要因の変数が複数あっても使えるようになっています。

要因の変数が、回帰分析でいうところの説明変数Xになります。

目的変数は、元のデータがそのまま使われるのではなく、生存時間から加工して作られる感じなので、 ロジスティック回帰分析 と似ています。 打ち切りか否かがわかる変数は、この加工の時に補助的な役割で使われます。

ソフト

Rによる実施例は、 Rによる生存時間分析 にあります。





参考文献

カプラン・マイヤー法

Rと生存時間分析(1)
Rの分析が詳しくのっています。
https://www1.doshisha.ac.jp/~mjin/R/Chap_36/36.html


ログランク検定や一般化ウィルコクソン検定

ログランク検定と一般化ウィルコクソン検定とは?p値やカプランマイヤー曲線の解釈
ログランク検定と一般化ウィルコクソン検定のそれぞれと、両者の違いについて、簡単に理解できるような説明になっています。
https://best-biostatistics.com/surviv/logrank.html


生存時間解析法
ログランク検定と一般化ウィルコクソン検定の詳しい説明があります。
http://halbau.world.coocan.jp/review/EBNursing4(3)2004.pdf


ワイブル解析

入門信頼性 技術者がはじめて学ぶ」 田中健次 著 日科技連出版社 2008
信頼性工学 の本です。確率紙を使ったワイブル解析があり、理論や手順だけでなく、下記のような実務向きの知識も紹介されています。
・寿命データの解析では、ワイブル分布や指数分布が用いられ、修理時間の解析では、対数正規分布が使われている。
・ワイブル解析は、寿命時間のデータに限らず、衝撃試験での印加回数や自動車の走行距離などを横軸にとり、破壊あるいは故障にいたるまでの平均回数や、平均距離などを推定することができる。
・加速試験の妥当性は、形状パラメータが一致するかどうかで判断することができる。 また、尺度パラメータの比で、加速係数を求めることができる。


【初心者向け】ワイブル分布ってなに?〜高校数学でわかるワイブル分布〜
ワイブル分布の数式が、どのようにして求められたのかが、わかりやすく書かれています。
https://sts-presents.com/STS01/shikujiri/wible/


疲労や破壊現象とワイブル分布
製造業でよく説明される書き方で書かれています。
http://www.mogami.com/notes/weibull.html


コックス回帰分析

医学統計勉強会 生存時間解析」 宮田 敏 著 2013
説明が丁寧でわかりやすかったです。
https://www.cardio.med.tohoku.ac.jp/2005/news/pdf/20131017_slide.pdf


Rと生存時間分析(2)
Rの分析が詳しくのっています。 ワイブル解析もあります。
https://www1.doshisha.ac.jp/~mjin/R/Chap_37/37.html


生存時間分析の色々なアルゴリズムをまとめてみました
コックス回帰分析の高度なものも紹介されています。
https://qiita.com/saltcooky/items/409329485be499a5b270


イベント・ヒストリー分析」 Paul D. Allison 著 福田亘孝 訳 共立出版 2021
離散時間モデル( ロジスティック回帰分析 )や、コックス回帰分析が紹介されています。


縦断データの分析 2 イベント生起のモデリング」 Judith D.Singer, John B.Willett 著 菅原ますみ 監訳 朝倉書店 2014
「イベント生起」とは、「薬の効き目が出る」や、「死亡」になります。 イベント生起として、現象を捉える時のポイントについて説明してから、 コックス回帰分析の説明になります。



順路 次は 経時解析

Tweet データサイエンス教室