生存時間

ログランク(log-rank)検定を徹底解説

はじめに

生存時間解析は、がん領域や慢性疾患の臨床試験で不可欠な統計手法です。
群間比較の代表的なノンパラメトリック検定として、ログランク検定(Log-rank testがあります。これは「生存曲線の差を検出する」という目的の検定手法となります。
本記事では、数式的導出から実装例までを体系的に整理します。

前提条件と仮定

2つの生存時間の差の検定を考えていく。第1群の生存関数を\(S_{1}(t)\)、第2群の生存関数を\(S_{2}(t)\)とする。この時、帰無仮説\(H_{0}\)、対立仮説\(H_{1}\)を下記のように設定する。

\[H_{0}: S_{1}(t) = S_{2}(t)\]

\[H_{1}: S_{1}(t) \ge S_{2}(t)\]

ログランク検定の導出

イベント発生の有無と第1群と第2群をイベントが発生した時間で層別した2×2分割表を考えていきます。例えばイベントが\(t_{1},…,t_{r}\)が起こったとすると、層はr個となります。

\(T=t_{s}\)第1群第2群
死亡数\(d_{1s}\)\(d_{2s}\)\(d_{s}\)
生存数\(n_{1s} – d_{1s}\)\(n_{2s} – d_{2s}\)\(n_{s} – d_{s}\)
リスクセットサイズ\(n_{1s}\)\(n_{2s}\)\(n_{s}\)
時刻\(t_{s}\)でイベントが発生した時の2×2分割表

ここで、周辺和の\(d_{s}\)、\(n_{s} – d_{s}\)、\(n_{1s}\)、\(n_{2s}\)を固定した場合を考えていくと、\(d_{1s} (or d_{2s})\)は帰無仮説の下で、超幾何分布に従う。

超幾何分布について

確率密度関数:
\[P(d_{2s}) = \frac{\dbinom{d_{.s}}{d_{2s}}\dbinom{n_{.s} – d_{.s}}{n_{2s} – d_{2s}}}{\dbinom{n_{.s}}{n_{2s}}}\]

期待値:
\[E(d_{2s}) = n_{2s}\frac{d_{.s}}{n_{.s}}\]

分散:
\[Var(d_{2s}) = \frac{n_{1s}n_{2s}d_{.s}(n_{.s} – d_{.s})}{n^{2}_{.s}(n_{.s}-1)}\]

r個の層別した時の全体の結果を考えていくために、マンテル・ヘンテル(Mantel-Henszel)検定を考えていく。

ここからMantel-Henszel検定について解説していく。
Mantel-Henszel検定は各層のオッズ比が全て1であるか、そうでないかを検定する手法である。帰無仮説\(H_{0}\)、対立仮説\(H_{1}\)は下記のようになる。

\[H_{0} : OR_{1} = OR_{2} = \cdots = OR_{r} = 1 (i = 1,…r)\]

\[H_{1} : OR_{1} = OR_{2} = \cdots = OR_{r} \neq 1 (i = 1,…r)\]

第s層におけるデータを下記のようにする。

\(x_{11s}\)\(x_{12s}\)\(x_{1.s}\)
\(x_{21s}\)\(x_{22s}\)\(x_{2.s}\)
\(x_{.1s}\)\(x_{.2s}\)\(N_{s}\)

この時のMantel-Henszel検定統計量について導出していく。

各層における確率変数\(x_{11i} (i=1,…,r)\)が独立であるとする。このとき確率変数\(\sum^{r}_{i=1}x_{11i}\)は中心極限定理により正規分布となる。その時の期待値と分散は下記のようになる。

期待値:

\[E(\sum^{r}_{i=1}x_{11i}) = E(x_{111}) + \cdots + E(x_{11r}) = \sum^{r}_{i=1}\frac{x_{1.i}x_{.1i}}{N_{i}}\]

分散:

\[V(\sum^{r}_{i=1}x_{11i}) = Var(x_{111}) + \cdots + Var(x_{11r}) = \sum^{r}_{i=1}\frac{x_{1.i}x_{2.i}x_{.1i}x_{.2i}}{N_{i}^{2}(N_{i} – 1)}\]

したがって、

\[\sum^{r}_{i=1}x_{11i} \approx N \left(\sum^{r}_{i=1}\frac{x_{1.i}x_{.1i}}{N_{i}} , \sum^{r}_{i=1}\frac{x_{1.i}x_{2.i}x_{.1i}x_{.2i}}{N_{i}^{2}(N_{i} – 1)}\right)\]

上記を標準化すると下記のようになる。

$$
\frac{\sum_{i=1}^r x_{11i} \;-\; \sum_{i=1}^r \frac{x_{1.i}\,x_{.1i}}{N_i}}
{\sqrt{\sum_{i=1}^r \frac{x_{1.i}\,x_{2.i}\,x_{.1i}\,x_{.2i}}{N_i^{2}\,(N_i – 1)}}}
\;=\;
\frac{\sum_{i=1}^r \bigl( x_{11i} – \tfrac{x_{1.i}\,x_{.1i}}{N_i} \bigr)}
{\sqrt{\sum_{i=1}^r \frac{x_{1.i}\,x_{2.i}\,x_{.1i}\,x_{.2i}}{N_i^{2}\,(N_i – 1)}}}
\;\approx\; \mathcal{N}(0,1)
$$

したがって、この統計量を2乗すると、下記のMantel-Henszel検定統計量が得られる。

$$
X^{2}_{MH}
\;=\;
\frac{\sum_{i=1}^r \bigl( x_{11i} – \tfrac{x_{1.i}\,x_{.1i}}{N_i} \bigr)^{2}}
{\sum_{i=1}^r \frac{x_{1.i}\,x_{2.i}\,x_{.1i}\,x_{.2i}}{N_i^{2}\,(N_i – 1)}}
\;\approx\; \mathcal{X}^{2}(1)
$$

ログランク検定もこのMantel-Henszel検定と同様に考えることができ、確率変数\(d_{i} (i=1, … r)\)に対して独立かつ同一の分布として、\(d_{i}\)はすべて超幾何分布に従うため、ログランク検定の統計量は下記のようになる。

$$
Z
\;=\;
\frac{\sum_{i=1}^r \bigl( d_{2i} – n_{2i}\frac{n_{.i}}{d_{.i}} \bigr)}
{\sqrt{\sum_{i=1}^r \frac{n_{1i}\,n_{2i}\,d_{.i}\,(n_{.i} – d_{.i})}{n_{.i}^{2}\,(n_i – 1)}}}
\;\approx\; \mathcal{N}(0,1)
$$

$$
X^{2}
\;=\;
\frac{\sum_{i=1}^r \bigl( d_{2i} – n_{2i}\frac{n_{.i}}{d_{.i}} \bigr)^{2}}
{\sum_{i=1}^r \frac{n_{1i}\,n_{2i}\,d_{.i}\,(n_{.i} – d_{.i})}{n_{.i}^{2}\,(n_i – 1)}}
\;\approx\; \mathcal{X}^{2}(1)
$$

Rでの実装例

library(survival)

#サンプルデータ
set.seed(123)
time <- c(6, 7, 10, 15, 19, 25, 32, 40, 45, 50,
5, 8, 12, 18, 22, 28, 35, 42, 48, 55)
status <- c(1,1,1,0,1,0,1,0,1,0,
1,1,0,1,0,1,0,1,0,1)
group <- factor(rep(c(“Treatment”,”Control”), each=10))

df <- data.frame(time, status, group)

#ログランク検定
survdiff(Surv(time, status) ~ group, data = df, rho = 0)

ログランク検定の解釈

  • Treatment群:観測イベント数 6、期待値 4.53 → 期待よりやや多い
  • Control群:観測イベント数 4、期待値 5.47 → 期待よりやや少ない
  • カイ二乗値 1.0、p=0.316 → 有意差なし(5%水準では棄却できない)
  • 意味:全期間を通じた生存曲線の差は統計的に有意とは言えない

まとめ

今回はログランク検定について紹介いたしました。ログランク検定は、二つ以上の生存曲線を比較し、全観測期間を通じて統計的に有意な差が存在するかを検証するための代表的なノンパラメトリック検定です。実務では、ログランク検定は規制当局でも主要解析として広く採用されており、Cox比例ハザードモデルと併用してハザード比や信頼区間を提示するのが一般的です。また、検定結果の有意性だけでなく、Kaplan–Meier曲線を併せて確認し、差が現れる時期や臨床的な意義を総合的に評価することが重要です。

ABOUT ME
tomokichi
外資系製薬会社で生物統計家として働ている1児のパパ。生物統計家とは何か、どのようなスキルが必要か、何を行っているのかを共有していきたいと思っております!生物統計に関する最新情報を皆様にお届けすべく、日々奮闘中です。趣味は筋トレ、温泉巡り、家族と散歩。
RELATED POST