Top 5 This Week

関連記事

【医療統計版】3. 生存関数とハザード関数:ハザード比の正しい読み方

- 本サイト運営者のサービスの紹介 -

共著者に草稿を見せたら、こう聞かれたとします。「HR 0.70と書いてあるけど、これは死亡が30%減るということでいいんですか」。Resultsに書いたのは確かにハザード比0.70で、95%信頼区間も添えてあります。それでも、この質問に「はい」と答えると正確ではありません。

ハザード比は率の比であって、確率の比ではありません。そして同じ0.70でも、5年生存率の差が3ポイントになる研究と12ポイントになる研究があります。

ここでは生存関数、ハザード関数、累積ハザード関数の関係を整理したうえで、ハザード比から臨床的な意味を読むときに何が足りないのかを見ていきます。定義そのものより、定義から何が言えて何が言えないのかに重心を置きます。

同じ分布を3つの角度から見ている

生存時間$T$を非負の連続確率変数とすると、その分布は密度$f(t)$で決まります。生存時間解析ではこれを直接使わず、3つの派生した関数で扱います。

生存関数$S(t) = \Pr(T > t)$は、時刻$t$を超えて生き延びる確率です。ハザード関数は、$t$まで生き延びた人がその直後にイベントを起こす瞬間的な率で、密度を生存確率で割った形になります。

$$h(t) = \frac{f(t)}{S(t)} = -\frac{d}{dt}\log S(t) \tag{1}$$

式(1)の右側は、ハザードが生存関数の対数の傾きにあたることを表しています。生存曲線が急に落ちている時点では対数の傾きが大きく、そこでのハザードも高くなります。この関係を積分すれば累積ハザード$H(t)$が出てきます。

$$H(t) = \int_0^t h(u)\,du = -\log S(t), \qquad S(t) = \exp(-H(t)) \tag{2}$$

式(2)は、累積ハザードと生存関数が対数と指数で行き来できる同じ情報だということを表しています。$H(t)$は確率ではないので1を超えます。累積ハザードが2.0でも、生存率は$\exp(-2.0) = 0.135$であって、負にはなりません。

ワイブル分布を例に、生存関数、ハザード関数、累積ハザード関数、密度関数の4つを2行2列で並べた図。生存関数は単調に減少し、ハザード関数は単調に増加し、累積ハザードは加速的に増え、密度は12か月付近に山を持つ。
図1 ワイブル分布(形状1.5、尺度24か月)を4通りに描いたものです。同じ分布でも、生存関数は右下がり、ハザードは右上がり、密度は山型と見た目がまったく違います。論文に載るのは左上だけですが、モデルが仮定しているのは右上の形です。

この4枚は同じ分布を表していますが、答えている質問が違います。「5年後に何割生きているか」なら生存関数、「今この時点でどれくらい危ないか」ならハザード、「治療効果を1つの数字にまとめたい」なら累積ハザードの比、つまりハザード比を使うことになります。

ハザードは確率ではなく率である

冒頭の質問に戻ります。ハザード比が確率の比でないことは、ハザードの単位を見ると分かります。式(1)は$\Delta t$で割った極限なので、単位は時間の逆数です。「月あたり0.05」というハザードは、月5%の確率という意味ではありません。

この区別が効いてくる場面は2つあります。1つは値が1を超えられることです。追跡単位を月から年に変えれば同じ現象のハザードは12倍になり、簡単に1を超えます。確率なら起こりえません。

もう1つ、そしてこちらのほうが実務では重要ですが、ハザードは条件付きの量です。時刻$t$のハザードは、そのときまだイベントを起こしていない人だけを分母にしています。追跡が進むほど分母の集団は入れ替わり、予後の悪い患者から先に抜けていきます。治療効果が変わっていなくても、両群の残存集団の性質が変われば、観察されるハザード比は動きます。

だから、有意でないハザード比を見て「治療効果はなかった」と書くのは飛躍になります。言えるのは、この追跡期間とこのイベント数のもとで、比例ハザードを仮定した単一の要約値が1から離れていると言い切れなかった、というところまでです。

同じハザード比でも臨床的な利益は違う

比例ハザードを仮定すると、2群の生存関数は次の関係になります。

$$S_1(t) = S_0(t)^{\,\mathrm{HR}} \tag{3}$$

式(3)は、治療群の生存率が対照群の生存率のべき乗になることを表しています。ハザード比が一定でも、生存率の差は対照群の生存率$S_0$に依存する、というのがこの式の含意です。実際に数字を入れてみます。

hr <- 0.70
for (s0 in c(0.90, 0.50, 0.20)) {
  s1 <- s0^hr
  cat(sprintf("S0=%.2f  S1=%.3f  絶対差=%.3f\n", s0, s1, s1 - s0))
}
#> S0=0.90  S1=0.929  絶対差=0.029
#> S0=0.50  S1=0.616  絶対差=0.116
#> S0=0.20  S1=0.324  絶対差=0.124

ハザード比はどれも0.70です。それでも、対照群の5年生存率が0.90の集団では絶対差が2.9ポイント、0.50の集団では11.6ポイントになります。4倍の開きです。

左は同じハザード比0.70のもとで予後良好群と予後不良群の生存曲線を描いた図。右は対照群の生存率を横軸にとり、生存率の絶対差を縦軸にとった曲線で、対照群の生存率が0.3付近で絶対差が最大になる。
図2 左の4本はすべてハザード比0.70ですが、実線どうしの間隔と破線どうしの間隔が違います。右のカーブは絶対差を$S_0$の関数として描いたもので、$S_0$が0.3付近のときに最大になり、両端では0に近づきます。予後がよすぎる集団でも悪すぎる集団でも、同じハザード比から得られる上乗せは小さくなります。

ここから実務上の結論が出ます。ハザード比だけを報告して臨床的な意義を論じるのは勧めません。読者が知りたいのは「自分の患者集団で何ポイント変わるか」であり、それは対照群の生存率がないと計算できないからです。Resultsにはハザード比と95%信頼区間に加えて、両群の特定時点の生存率を信頼区間つきで書く。これだけで、読者が式(3)を自分で使えるようになります。

平均生存期間を報告できない理由

生存期間の要約として、平均を出したくなる場面があります。平均生存期間は生存関数の積分で書けます。

$$\mathbb{E}[T] = \int_0^{\infty} S(t)\,dt \tag{4}$$

式(4)は、平均生存期間が生存曲線の下の面積にあたることを表しています。ただし積分の上限が無限大です。実データの生存曲線は最終観察時点で途切れるので、その先の面積は観測されていません。追跡5年の研究から平均生存期間を出すには、6年目以降を何らかの形で仮定する必要があります。

これが、臨床論文で平均ではなく中央値が報告されてきた理由です。中央値なら$S(t)$が0.5を下回った時点を読むだけで済み、裾の形に依存しません。

ただし中央値にも弱点があります。追跡期間内に生存率が0.5を下回らなければ推定できず、Resultsが「未到達(NR)」だらけになります。予後の良い集団を扱う近年の試験ではこれが起きやすくなっています。

ここで使えるのが制限付き平均生存時間です。積分の上限を$\tau$で切ります。

$$\mathrm{RMST}(\tau) = \int_0^{\tau} S(t)\,dt \tag{5}$$

式(5)は、時点$\tau$までに限った生存曲線の下の面積で、「$\tau$年間で平均何年生きたか」と読めます。観測されている範囲だけを使うので外挿が要らず、比例ハザードも仮定しません。survivalパッケージでは上限を渡すだけで計算できます。

library(survival)

fit <- survfit(Surv(time, status) ~ sex, data = lung)
print(fit, rmean = 365)
#>         n events rmean* se(rmean) median 0.95LCL 0.95UCL
#> sex=1 138    112    241      10.4    270     212     310
#> sex=2  90     53    297      10.8    426     348     550
#>     * restricted mean with upper limit = 365
lungデータの男女別Kaplan-Meier曲線。男性の曲線の下、365日までの領域が塗られており、その面積が制限付き平均生存時間にあたることを示している。
図3 塗った部分の面積が男性の241日です。女性は297日で、差は56日。365日という区切りのなかで平均56日長く生きた、と読めます。ハザード比0.59という数字より、この56日のほうが患者への説明には使いやすいでしょう。

同じデータをCox回帰にかけるとハザード比は0.59(95% CI 0.42-0.82)です。0.59という数字が何日ぶんの違いなのかは、この比だけからは出てきません。$\tau$は事前に決めておく必要があり、追跡期間の分布を見てから決めると恣意的になります。Uno et al.(J Clin Oncol 2014;32:2380-2385)は、この点を含めてRMSTの使い方を整理しています。

累積ハザードは仮定の点検に使う

累積ハザードは論文に載ることが少ない関数ですが、解析の途中では出番があります。式(2)から$H(t) = -\log S(t)$なので、両辺の対数をとると比例ハザードの仮定が直線関係に化けます。

$$\log H_1(t) = \log \mathrm{HR} + \log H_0(t) \tag{6}$$

式(6)は、比例ハザードが成り立つなら、両群の$\log(-\log S(t))$を時間に対して描いたときに2本の曲線が上下に平行移動した関係になる、ということを表しています。平行でなければ、単一のハザード比で全期間をまとめる前提が崩れています。

私なら、Cox回帰にかける前にこのプロットを見ます。数値の検定より先に形を見ておくと、あとで検定が有意になったときに何が起きているのかを説明できるからです。曲線が交差していれば、治療効果の向きが時期によって逆転している可能性があり、そのときは全期間の要約値を1つ出すこと自体を考え直すことになります。この判断の詳細は比例ハザード仮定の検証で扱います。

結果を書くときに決めること

ハザード比を主要な効果指標にするなら、比例ハザードが妥当かどうかを先に確かめ、そのうえで両群の特定時点の生存率を併記します。比が一定でない場合は、RMSTの差や時点別の生存率差のほうが読者に伝わります。中央値が未到達なら空欄にせず、そう書いたうえで別の要約値を出します。

推定量の性質を推定する話に移る前に、まずデータから$S(t)$をどう推定するかが必要です。打ち切りを含む標本からの推定はKaplan-Meier推定量、累積ハザードの側からの推定はNelson-Aalen推定量で扱います。共変量を入れた比較に進む場合はCox比例ハザードモデルが続きです。

自分の研究でハザード比とRMSTのどちらを主要な報告にするか、$\tau$をどこに置くか。ここは研究目的と追跡の設計を見ないと決まりません。Dr.データサイエンスでは、こうした報告指標の選択についてのご相談を承っています。

参考文献

Cox DR. Regression models and life-tables. Journal of the Royal Statistical Society: Series B. 1972;34(2):187-202.

Uno H, Claggett B, Tian L, et al. Moving beyond the hazard ratio in quantifying the between-group difference in survival analysis. Journal of Clinical Oncology. 2014;32(22):2380-2385.

Hernán MA. The hazards of hazard ratios. Epidemiology. 2010;21(1):13-15.

Royston P, Parmar MKB. Restricted mean survival time: an alternative to the hazard ratio for the design and analysis of randomized trials with a time-to-event outcome. BMC Medical Research Methodology. 2013;13:152.

Klein JP, Moeschberger ML. Survival Analysis: Techniques for Censored and Truncated Data. 2nd ed. Springer; 2003.

Popular Articles