生存分析は、あるイベント (死亡、再発、故障など) が発生するまでの時間を分析する統計手法です。 医学研究や信頼性工学などで広く使われており、打ち切りデータ (観察期間終了時点でイベントが発生していないケース) を適切に扱うことができます。
ハザード比が1より大きい場合は処置群の予後が悪く、1より小さい場合は予後が良いことを示します。
グループ | サンプルサイズ | イベント数 | 打ち切り数 |
---|---|---|---|
処置群 | {{ treatmentEvents + treatmentCensored }} | {{ treatmentEvents }} | {{ treatmentCensored }} |
対照群 | {{ controlEvents + controlCensored }} | {{ controlEvents }} | {{ controlCensored }} |
指標 | 値 |
---|---|
一般統計指標 | |
ログランク検定 p値 | {{ logRankP.toFixed(4) }} |
ハザード比 (95% CI) | {{ calculatedHR.toFixed(2) }} ({{ hrLowerCI.toFixed(2) }} - {{ hrUpperCI.toFixed(2) }}) |
自然打ち切り率 (理論値) | {{ calculateNaturalCensoringRate() }}% |
{{ survivalThreshold }}%生存時間比較 | |
処置群 vs 対照群 | {{ medianTreatment.toFixed(1) }} vs {{ medianControl.toFixed(1) }} |
差 (95% CI) | {{ survivalTimeTest.timeDifference.toFixed(1) }} ({{ (survivalTimeTest.timeDifference - 1.96 * survivalTimeTest.standardError).toFixed(1) }} - {{ (survivalTimeTest.timeDifference + 1.96 * survivalTimeTest.standardError).toFixed(1) }}) |
p値 | {{ survivalTimeTest.pValue.toFixed(2) }} {{ survivalTimeTest.isSignificant ? '(有意差あり)' : '' }} |
{{ timeThreshold }}時間単位後の生存率比較 | |
処置群 vs 対照群 | {{ calculateSurvivalAtTime(kmCurves.treatment, timeThreshold).toFixed(2) }} vs {{ calculateSurvivalAtTime(kmCurves.control, timeThreshold).toFixed(2) }} |
差 | {{ ((calculateSurvivalAtTime(kmCurves.treatment, timeThreshold) - calculateSurvivalAtTime(kmCurves.control, timeThreshold)) * 100).toFixed(1) }}% |
カプランマイヤー法は、生存時間データを分析するノンパラメトリックな手法です。 イベント発生時点ごとに生存率を段階的に計算し、打ち切りデータを適切に扱うことができます。
カプランマイヤー推定量:
\[ \hat{S}(t) = \prod_{t_i \leq t} \left(1 - \frac{d_i}{n_i}\right) \]ここで、\(d_i\)は時間\(t_i\)でのイベント発生数、\(n_i\)は時間\(t_i\)直前のリスク集合のサイズです。
ハザード比は、処置群と対照群のイベント発生リスク (ハザード) の比率です。 例えば、ハザード比が0.5の場合、処置群は対照群の半分のリスクでイベントが発生します。
コックスの比例ハザードモデル:
\[ h(t|X) = h_0(t) \exp(\beta X) \]ここで、\(h_0(t)\)はベースラインハザード関数、\(\beta\)は回帰係数、\(X\)は共変量 (この場合は処置群か対照群か) です。
打ち切りデータは、観察期間中にイベントが発生しなかった、または追跡不能になったケースです。 生存分析では、このような不完全なデータを適切に扱うことが重要です。
右側打ち切り: イベントが観察期間後に発生する場合
左側打ち切り: イベントが観察開始前に発生していた場合
区間打ち切り: イベントが2つの時点の間で発生した場合
ログランク検定は、2つ以上の生存曲線を比較するためのノンパラメトリックな検定法です。 帰無仮説は「群間で生存曲線に差がない」というものです。
ログランク統計量:
\[ Q = \frac{(\sum_{j=1}^J (O_{1j} - E_{1j}))^2}{\sum_{j=1}^J V_{1j}} \]ここで、\(O_{1j}\)は群1での観測イベント数、\(E_{1j}\)は期待イベント数、\(V_{1j}\)は分散です。
特定の生存率 (例: 50%) における生存時間の群間比較は、臨床的に重要な意味を持ちます。 このシミュレーターでは、Z検定を用いて処置群と対照群の生存時間の差が統計的に有意かどうかを評価します。
Z検定統計量:
\[ Z = \frac{T_1 - T_2}{\sqrt{SE(T_1)^2 + SE(T_2)^2}} \]ここで、\(T_1\)と\(T_2\)は各群の指定された生存率における生存時間、\(SE(T)\)はその標準誤差です。
基準ハザード率は単位時間あたりのイベント発生確率を表し、値が大きいほどイベントが早く発生します。 自然打ち切り率は、基準ハザード率と最大追跡期間から理論的に計算される、観察期間終了時点でイベントが発生していない確率です。
自然打ち切り率 (指数分布モデルでの理論値):
\[ P(\text{打ち切り}) = \exp(-\lambda \cdot T_{max}) \]ここで、\(\lambda\)は基準ハザード率、\(T_{max}\)は最大追跡期間です。この式は一定のハザード率 (指数分布) を仮定した場合の計算式です。
注意点: このシミュレーターは教育目的であり、結果の解釈には注意が必要です。実際の臨床研究や統計分析では、より複雑なモデルや前提条件の検証が必要になる場合があります。また、生存曲線の差と特定の生存率における生存時間の差は異なる概念であり、それぞれの検定結果が一致しない場合もあります。