書記が数学やるだけ#843 カプラン=マイヤー曲線
生存時間解析の基本事項についていくつか扱っていく。
問題
説明
生存時間解析とは,1つの事象(イベント)が発生するまでの予想される期間を分析する手法であり,特に医学分野で頻用される。
推定の対象には生存関数やハザード関数などがある。基本的な計算については以下を参照:
カプラン=マイヤー推定量は一連の減少する水平ステップの系列であり,これは右側打ち切りデータを考慮に入れることができる。
解答
カプラン=マイヤー推定量の導出にはいろいろあるが,ここではハザード関数の最尤推定を用いる。
具体例として薬剤師国家試験の問題を解いてみる。
・t=0のときは全員生存のためS=1である。
・t=2のとき,5人中1人死亡のため,S=0.8となる。
・t=4のとき,1人打ち切りのため,Sは変わらず3人が残る。
・t=6のとき,1人打ち切りのため,Sは変わらず2人が残る。
・t=8のとき,2人中1人死亡のため,S=0.4となる。
あとはこれをグラフに表せば良い。
最後に,実際のデータからカプラン=マイヤー曲線を描画してみる。load_ddデータセットには,世界の政治リーダーの在任期間についてまとめられている。
from lifelines.datasets import load_dd
data = load_dd()
data
今回の場合,「各リーダーの在職期間;T」と「退任が観測されたかどうか;E」の関係を示すために,KaplanMeierFitterのfitを用いる。
from lifelines import KaplanMeierFitter
kmf = KaplanMeierFitter()
T = data["duration"]
E = data["observed"]
kmf.fit(T, event_observed=E)
あとはカプラン=マイヤー曲線を可視化すれば良い。
from matplotlib import pyplot as plt
kmf.plot()
「at_risk_counts=True」を加えることでイベント数などを同時に示すこともできる。
kmf.plot(at_risk_counts=True)
本記事のもくじはこちら: