Coffee and Research
  • Home
  • cifmodeling
  • A Conversation (EN)
    • Index
    • Study design
    • Frequentist Thinking
  • A Conversation (JP)
    • Index
    • Study Design
    • Frequentist Thinking
    • Frequentist Experiments
    • Effects and Time
  • 8 Elements (EN)
  • 8 Elements (JP)

On this page

  • Effects and Time V − A First Note on Cox Regression
    • Cox回帰はハザード比ではなく比例ハザード性のモデル
    • 次のエピソードとRスクリプト

A First Note on Cox Regression

Effects and Time V − A First Note on Cox Regression

Keywords: effect measure, probability model, survival & competing risks


Cox回帰はハザード比ではなく比例ハザード性のモデル

私「お父さん、正直にいうと生存曲線とかの数式はわからなかったんだけど、ひとつだけすごく気になったことがあって。それが。ハザード\(\lambda_1\)と\(\lambda_2\)の比をとったこの式なの。\(HR\)はハザード比(hazard ratio)だよね」

  • 指数分布のハザード比 \[ HR=\frac{\lambda_1}{\lambda_2} \]

私「この式はCox回帰(Cox regression)でもおなじ?ちがう?」

お父さん「ごめん、これはCox回帰の式じゃないね。Cox回帰のハザード比はこういう式で表す」

  • Cox回帰のハザード比 \[ HR=\frac{\lambda_1(x)}{\lambda_2(x)} \]

私「うん、こんな感じの式になるって思ったんだ。さっき生存関数を教えてくれたのと同じで\(x\)は時間だよね。ハザード関数は時間とともに変化できて、\(\lambda_1(x)\)と\(\lambda_2(x)\)は2群それぞれのハザード関数だっていうことはわかるよ。指数分布ではハザードは定数だった。でも、不思議なのは、どうみても上も下も同じ計算じゃない?割り算しただけ」

お父さん「ああ、文脈がないとそう読むのが普通かもね。指数分布の式の方はね、“この式以前に”もともとハザードが一定なんだ。下のCox回帰をみると、\(\lambda_1(x)\)と\(\lambda_2(x)\)は時間\(x\)の関数で、ハザード比だけが一定っていうある種の制約を表している」

私「つまり?」

お父さん「つまりこの式が出た時点で、はじめて比例ハザード性が仮定された、あるいは構造が決まったっていうようなロジックでとらえてほしいんだ」

私「やっぱり違うのか。まってね、ということは、この式はcoxph()の中で\(\lambda_1(x)\)と\(\lambda_2(x)\)の比をとっているっていう意味じゃないよね。仮定を置いたってことは、それが成り立たないと困るわけだ。ハザード比の定義でもなさそうな口ぶりだよね」

お父さん「その通り。比例ハザード性は成り立たないと困るし、この式はハザード比の定義ではない。この式は、単純に2群比較するときのCox回帰のモデルそのものを表している」

私「これがCox回帰の式だったんだね。割り算じゃなくてモデル…。ロジスティック回帰の式に比べてシンプルすぎて見てて不安になるな。比例ハザード性っていう聞き覚えのある単語で説明されてやっと安心する」

お父さん「この式は本質的なところしか書いてないからね。でも、教科書に書いてあるCox回帰の式と、比例ハザード性というエッセンスは同じ。教科書は対数ハザード比を回帰係数ベクトル\(\beta\)に置き換えて、ベクトル表記してあるだけだ」

\[ \lambda(x)=\lambda_0(x)\exp(Z \beta) \]

お父さん「Cox回帰のよさはいくつもあるけど、\(\lambda_1(x)\)と\(\lambda_2(x)\)はどんな関数でもいいという点が、とても実用的なんだ。比例ハザード性という仮定はあるけどね。その点、指数分布はハザードが定数だから、ずっと融通が利かない。データへの当てはまりが悪いんだ」

私「つまりCox回帰を使えばいいってことね」

お父さん「他のモデルに比べたら、ね。それでもデータに100%当てはまっている保証はない。だからCox回帰の結果を論文や学会で報告する前には、比例ハザード性のチェックが求められる。生存曲線がクロスしているか、とか、2重対数プロットがだいたい並行かどうか、とか。まずはその辺を目安にするんだ。2重対数プロットは、Kaplan-Meier曲線を補2重対数変換して描く」

補2重対数変換: ハザード比を抽出する変換

あまり知られていませんが、Cox回帰に代えて一般化線型モデルでも(離散時間の枠組みで)ハザード比を推定できます。リンク関数として補2重対数変換(glmでいえば binomial(link = "cloglog"))を選びます。Cox回帰の構造を深堀するために、指数分布のもとで「生存関数に log(-log) を当てる」と何が起きるかを見てみましょう。指数分布のハザード比と回帰係数を\(\beta=\log(HR)\)と表すことにします。

2群の生存関数を、ハザード\(\lambda_1\)と\(\lambda_2\)を使って

\(S_1(x)=\exp(-\lambda_1 x)\)

\(S_2(x)=\exp(-\lambda_2 x)\)

とします。それぞれ対数をとって符号を変えます。

\(-\log\{S_1(x)\}=\lambda_1 x\)

\(-\log\{S_2(x)\}=\lambda_2 x\)

もう一度対数をとり、さらに差をとってみます。

\(\log[-\log\{S_1(x)\}]-\log[-\log\{S_2(x)\}]=\log(\lambda_1 x)-\log(\lambda_2 x)=\log(HR)=\beta\)

この結果は、比例ハザード性の下では常に成り立ちます。つまり、同じ時点\(x\)の下で2群の差をとると、時間\(x\)がキャンセルして回帰係数\(\beta\)だけが残ります。生存時間解析の裏では、生存関数から回帰係数(対数ハザード比)を抽出するために、この変換が使われています。その一例は、比例ハザード性の図示(いわゆる2重対数プロット)です。Kaplan–Meier曲線の補2重対数変換をとると、曲線間の比例ハザード性が、曲線の平行移動に置き換わるのです。

このエピソードに関係するクイズです

この人は誰でしょう。

  1. Kaplan
  2. Meier
  3. Cox
  4. Wilcoxon
答えはこちら
  • 正解は3です

この方がCox先生です。

David Cox (statistician)

次のエピソードとRスクリプト

  • After Cox Regression: A Case Study and R Demonstration
  • effects.R
他のエピソードはこちら

このシリーズのエピソード

  • Silent Confusions Hidden in Percentages
  • Who Is This Percentage About? Target Populations and Attributable Fractions
  • When Odds Ratios Approximate Risk Ratios—and When They Fail
  • From Risk and Rate to Survival and Hazard
  • A First Note on Cox Regression
  • After Cox Regression: A Case Study and R Demonstration

過去のシリーズ

  • Study Design I
  • Frequentist Thinking I
  • Frequentist Experiments I

用語集

  • Statistical Terms in Plain Language