Cox比例ハザードモデル入門〜数式から実務応用まで〜

記事の目次
Toggleはじめに
生存時間解析は、製薬業界の臨床試験や観察研究において欠かせない統計手法です。特に、治療効果や予後因子を評価する際に、打ち切りデータ(censored data)を適切に扱える点が大きな強みです。
その中でもCox比例ハザードモデル(Cox Proportional Hazards Model)は、共変量を考慮しつつイベント発生リスクを推定できる柔軟な回帰モデルとして広く用いられています。
本稿では、数式による導入から、比例ハザード性の仮定、製薬業界での典型的な利用場面、そして図を用いた直感的理解までを網羅します。
なお、生存時間解析の土台となるカプランマイヤー法による生存曲線の推定や、2群の生存曲線に差があるかを調べるログランク検定を先に押さえておくと、本記事の理解がよりスムーズになります。Cox比例ハザードモデルは、これらに「共変量による調整」と「効果量(ハザード比)の推定」を加えた多変量手法と位置づけられます。
Cox比例ハザードモデルとは?
Cox比例ハザードモデルは、時間 t におけるハザード関数 h(t|X) を次のように表します。
\[h(t|X) = h_0(t) \exp(\beta_1 X_1 + \beta_2 X_2 + \dots + \beta_p X_p)\]
- \(h(t|X)\):共変量 X を持つ被験者の時点 t におけるハザード(単位時間あたりのイベント発生率)
- \(h_0(t)\):ベースラインハザード(共変量がゼロのときのハザード関数)
- \(X_j\):共変量(例:治療群、年齢、性別、バイオマーカー値など)
- \(\beta_j\):回帰係数\((\exp(\beta_j)\) がハザード比)
- セミパラメトリックモデル:\(h_0(t)\) の形は仮定せず、\(\beta\) のみを推定するため、柔軟性が高い。
- ハザード比(Hazard Ratio, HR):\(\exp(\beta_j)\) は、他の変数を固定したときの \(X_j\) の単位変化に伴う相対的リスク。
ここで、2群のハザード関数(共変量はそれぞれ\((X_{1},…,X_{p}) , (Z_{1},…,Z_{p})\))とすると、ハザード比は下記のようになる。
$$
\begin{eqnarray}
\frac{h(t|X)}{h(t|Z)} &=& \frac{exp(\beta_{1}X_{1} + \dots + \beta_{p}X_{p})}{exp(\beta_{1}Z_{1} + \dots + \beta_{p}Z_{p})}\\
&=& exp(\beta_{1}(X_{1} – Z_{1}) + \dots + \beta_{p}(X_{p} – Z_{p}))
\end{eqnarray}
$$
上記式からも分かるように、時点tに関係なく一定の値をとるため、比例ハザードと呼ばれています。
部分尤度によるパラメータ推定
Cox比例ハザードモデルの最大の特徴は、ベースラインハザード \(h_0(t)\) の形を一切仮定せずに回帰係数 \(\beta\) を推定できる点です。これを可能にするのが部分尤度(partial likelihood)という考え方です。
イベントが時点 \(t_{(1)} < t_{(2)} < \dots < t_{(k)}\) で観測されたとします。各イベント時点 \(t_{(i)}\) の直前まで観測されている(まだイベントも打ち切りも起きていない)被験者の集合をリスク集合(risk set) \(R(t_{(i)})\) と呼びます。部分尤度は「リスク集合の中で、実際にその時点でイベントを起こしたのがその被験者である条件付き確率」をすべてのイベント時点で掛け合わせたものです。
\[ L(\beta) = \prod_{i=1}^{k} \frac{\exp(\beta^{\top} X_{(i)})}{\sum_{j \in R(t_{(i)})} \exp(\beta^{\top} X_j)} \]
この式にはベースラインハザード \(h_0(t)\) が現れません。分子と分母で \(h_0(t)\) が打ち消し合うため、イベントが起きた「順序」だけを使って \(\beta\) を推定できます。これがCoxモデルが「セミパラメトリック」と呼ばれる理由であり、分布を仮定するパラメトリックな生存モデル(指数分布・Weibull分布など)にはない柔軟性の源泉です。
- リスク集合:各イベント時点で「まだイベントが起きていない被験者」の集合。時間が進むほど小さくなる。
- 部分尤度:ベースラインハザードを推定せず \(\beta\) だけを推定する。打ち切りは「その時点まではリスク集合に寄与する」形で自然に扱われる。

同順位(タイ)の扱い:Efron法とBreslow法
実データでは観測の都合上、同じ時点で複数のイベントが起こる「タイ(ties, 同順位)」がしばしば発生します。タイがあると上式の分母の組み合わせが一意に決まらないため、近似計算が必要になります。代表的な方法は次の3つです。
| 方法 | 概要 | 備考 |
|---|---|---|
| Efron法 | タイを精密に近似する。Rの coxph() の既定。 | 多くの場面で推奨。 |
| Breslow法 | 計算が単純な近似。SAS PROC PHREG の既定。 | タイが多いと推定が偏りやすい。 |
| Exact法 | すべての順序を厳密に評価する。 | 計算負荷が大きい。タイが極端に多いとき向け。 |
Rの coxph() は既定でEfron法を採用しており、通常はこのままで問題ありません。一方でSASの PROC PHREG の既定はBreslow法のため、RとSASで結果を厳密に一致させたい場合は ties= オプションを揃えておきます。
Cox比例ハザードモデルの仮説検定、信頼区間
ここで、\(X_{1}\)を治療変数として、A治療群:\(X_{1}=1\)、B治療群:\(X_{1}=0\)とすると、\(\beta_{1}\)が治療Aの治療Bに対する治療効果を表します。なぜなら、他の共変量\((X_{2},…,X_{p})\)が同じであるA治療群とB治療群のハザード比は時間に関係なく一定であり、下記のようになる。
\[\frac{h(A治療群,X_{2}, … ,X_{p})}{h(B治療群,X_{2}, … ,X_{p})} = exp(\hat{\beta})\]
A治療群とB治療群を比較するために、以下のような帰無仮説、対立仮説を立てる。
\[H_{0}: \beta_{1} = 0\]
\[H_{1}: \beta_{1} \neq 0\]
この時の検定は、\(H_{0}\)の下でZ値が近似的に正規分布に従うことを利用する。
\[ Z = \frac{\hat{\beta_{1}}}{SE(\hat{\beta_{1}})} \approx {N}(0,1) \]
これより、95%信頼区間は以下のようになる。
\[ exp(\hat{\beta_{1}} \pm 1.96SE(\hat{\beta_{1}})) \]
ハザード比(HR)の解釈
Cox回帰の出力で最も重要な指標がハザード比(Hazard Ratio, HR) \(\exp(\hat{\beta})\) です。他の共変量を一定にしたとき、その変数が1単位変化することで各時点のイベント発生リスク(ハザード)が何倍になるかを表します。
- HR > 1:その変数が大きいほどイベントリスクが高い(予後が悪い)。
- HR < 1:その変数が大きいほどイベントリスクが低い(予後が良い・保護的)。
- HR = 1:その変数はリスクに影響しない。
- 95%信頼区間が1をまたぐ:統計的に有意とは言えない。
たとえば後述のRの解析例では、性別(男性=1)の \(\exp(\hat{\beta}) = 0.59\)、95%信頼区間が 0.42〜0.82 でした。これは「他の共変量を同じとしたとき、男性は女性に比べて各時点での死亡ハザードが約41%低い(=0.59倍)」と解釈します。信頼区間が1を含まないため、この差は統計的に有意です。逆に区間が1をまたいでいれば、点推定がHR=0.8でも「有意な差とは言えない」と読みます。

ハザード比は相対リスクともオッズ比とも違う
ハザード比は瞬間的なイベント発生率(ハザード)の比であり、一定期間における累積発生割合の比である「相対リスク(リスク比)」や、ロジスティック回帰で得られる「オッズ比」とは概念が異なります。臨床的な解釈の際は、HRを「相対リスク」と言い換えないよう注意します。なお、共変量で調整せず単純に2群の生存曲線を比較したい場合はログランク検定が、群ごとの生存率や生存期間中央値を知りたい場合はカプランマイヤー法が適しています。
比例ハザード性の仮定
Cox比例ハザードモデルで重要なのは、2群間のハザードが時間によらず一定である、比例ハザード性が成り立つことです。
\[\frac{h(t|X_a)}{h(t|X_b)} = \text{一定} \quad (\forall t)\]
例えば、2群間でカプランマイヤー曲線が交差したり、交絡因子が調整されていない場合は比例ハザード性が成り立たない場合があります。そのため、下記のように比例ハザード性が成り立っているか検証することが大切です。
- Schoenfeld残差の検定・プロット
- log(-log S(t)) プロットの平行性確認
比例ハザード性が成り立たないと判断された場合の対処にはいくつかの選択肢があります。怪しい変数を層別化因子として扱う層別Cox比例ハザードモデル、効果が時間とともに変化することを明示的にモデル化する時間依存性共変量を用いたCoxモデル、そしてハザード比に依存しない要約指標であるRMST(制限付き平均生存時間)への切り替えなどです。検証から切り替え判断までの一連の流れはCox比例ハザード性のチェックとRMSTへの切り替え判断でR・SASのコードつきで詳しく解説しています。
Rによる実践例
#パッケージ読み込み
install.packages(“survival”)
install.packages(“survminer”) # 図示用
install.packages(“gtsummary”) # 表形式出力用
library(survival)
library(survminer)
library(gtsummary)
#データ確認
head(lung)
# Survオブジェクト作成
# status: 1=打ち切り, 2=死亡 → 死亡をイベント(=1)に変換
lung$status <- ifelse(lung$status == 2, 1, 0)
#単変量モデル(治療群はないので性別で例示)
cox_uni <- coxph(Surv(time, status) ~ sex, data = lung)
summary(cox_uni)
# 多変量モデル
cox_multi <- coxph(Surv(time, status) ~ age + sex + ph.ecog, data = lung)
summary(cox_multi)
# ハザード比を表形式で出力
tbl_regression(cox_multi, exponentiate = TRUE)
# カプラン–マイヤー曲線(性別)
fit <- survfit(Surv(time, status) ~ sex, data = lung)
ggsurvplot(fit, data = lung, pval = TRUE, risk.table = TRUE)
# 比例ハザード性の検証
cox.zph(cox_multi)
plot(cox.zph(cox_multi))
| 変数 | coef | exp(coef) | se(coef) | z | p値 |
| age | 0.019 | 1.019 | 0.009 | 2.11 | 0.035 |
| sex(男性=1) | -0.531 | 0.588 | 0.167 | -3.18 | 0.001 |
| ph.ecog | 0.454 | 1.575 | 0.114 | 3.98 | <0.001 |
- 年齢:10歳増加でHRは約1.02(リスク増加)
- 性別:男性のHRは女性の約0.59(リスク低下)
- ECOG PS:1ポイント悪化でHRは約1.58(リスク増加)
モデルの予測性能:C-index(一致度)
Cox回帰の予測性能(識別能)は、HarrellのC-index(concordance index, 一致度)で評価します。これは「実際にイベントが早く起きた人ほど、モデルが高いリスクを予測できているか」を表す指標で、0.5が偶然(無情報)、1.0が完全一致を意味します。実務では0.7前後で実用的な識別能とされます。
# C-index(一致度)の算出
concordance(cox_multi)
# summary()の出力にも Concordance として表示される
summary(cox_multi)$concordance
ハザード比を視覚的に伝えたい場合は、survminer::ggforest(cox_multi, data = lung) でフォレストプロットを描くと、各共変量のHRと95%信頼区間が一目で比較でき、報告資料にも適します。
SASによる実装(PROC PHREG)
製薬企業の承認申請業務では解析にSASが用いられることが多く、Cox回帰は PROC PHREG で実行します。先ほどのRコードと対応させながら示します。
proc phreg data=lung;
class sex ph_ecog;
model time*status(0) = age sex ph_ecog / ties=efron rl;
hazardratio sex;
assess ph / resample;
run;
status(0):値が0の観測を打ち切りとして指定(Rのstatus定義と揃える)。ties=efron:タイの扱いをRの既定(Efron法)に合わせる。rl:ハザード比の信頼区間(risk limits)を出力。hazardratio文でHRを明示的に算出。assess ph / resample;:比例ハザード性を数値・グラフで検証(Rのcox.zph()に相当)。
| 項目 | R(survival) | SAS(PROC PHREG) |
|---|---|---|
| モデル推定 | coxph(Surv(time,status)~...) | model time*status(0)=... ; |
| タイの既定 | Efron | Breslow(ties=efron推奨) |
| HRと信頼区間 | summary() / tbl_regression(exponentiate=TRUE) | hazardratio 文 / rl オプション |
| PH仮定の検証 | cox.zph() | assess ph / resample; |
| 生存曲線 | survfit() + ggsurvplot() | PROC LIFETEST |
実務上の注意点
1. 比例ハザード性の検証は必須
Coxモデルの根幹仮定である比例ハザード性(PH仮定)が破れると、推定されたハザード比は時間全体の平均的な効果を表すに過ぎず、臨床的な意味づけが難しくなります。
- 検証方法
- Schoenfeld残差:時間との相関を検定(
cox.zph()関数など) - log(-log S(t))プロット:群間の曲線が平行であればPH仮定はおおむね成立
- Schoenfeld残差:時間との相関を検定(
- PH仮定が破れた場合の対応
- 時間依存共変量モデル:例)
coxph(Surv(time, status) ~ trt + tt(trt), tt=function(x,t,...) x*(t>6)) - 層別Coxモデル:PH仮定が怪しい変数を層別化因子として扱い、ベースラインハザードを群ごとに別推定
- 時間依存共変量モデル:例)
- 製薬業界での注意
- 承認申請資料(CTD)では、主要解析のPH仮定検証結果を添付することが望ましい
- PH仮定が破れている場合は、代替解析(RMSTなど)を併記することが多い
2. 共変量の選択は臨床的妥当性を優先
モデルに含める変数は、統計的有意性だけでなく、臨床的・薬理学的な妥当性を重視します。
- 選択基準
- 事前にプロトコルやSAP(Statistical Analysis Plan)で定義
- 臨床的に重要とされる既知の予後因子(例:年齢、性別、ECOG PS)
- 試験デザイン上の層別化因子
- 過剰な変数投入のリスク
- イベント数に対して変数が多すぎると推定が不安定(経験則:10イベント/変数以上)
- 多重共線性による係数の不安定化
- 製薬業界での注意
- 観察研究では交絡因子の調整が必須だが、RCTでは必要最小限に留めることが多い
- 規制当局は「変数選択の恣意性」に敏感なため、事前指定が重要
3. 打ち切りの独立性仮定に注意
Coxモデルは、打ち切り(censoring)が独立であることを前提とします。
つまり、打ち切りの発生がイベント発生リスクと無関係である必要があります。
- 独立性が破れる例
- 病状悪化による試験中止(実質的にはイベントに近い)
- 治療中止後の追跡不能(治療効果と関連)
- 影響
- 生存時間の推定がバイアスを受ける
- 対策
- 打ち切り理由の詳細記録と分類
- 感度分析(例:Worst-caseシナリオ、複数の打ち切り扱い方で解析)
- 製薬業界での注意
- PMDAやFDAは、打ち切り理由の分布が群間で大きく異なる場合、その解釈に慎重
- 特にPFS解析では、画像評価スケジュールや欠測の扱いが重要
4. 多重共線性の確認
共変量間に強い相関があると、回帰係数の推定が不安定になり、解釈が困難になります。
- 確認方法
- 相関係数行列(Pearson/Spearman)
- VIF(Variance Inflation Factor)> 5〜10で要注意
- 影響
- 推定値の標準誤差が大きくなり、有意性が失われる
- 係数の符号が臨床的直感と逆になることも
- 対策
- 高相関の変数は1つに絞る
- 主成分分析(PCA)や合成スコア化
- 製薬業界での注意
- バイオマーカー解析では、多数の相関変数が同時に入ることが多く、事前の変数選択や次元削減が必須
Cox比例ハザードモデルに関するよくある質問
必要なサンプルサイズ・イベント数の目安は?
サンプルサイズそのものよりもイベント数が重要です。経験則として、共変量1つあたり10イベント以上(EPV:events per variable ≧ 10)が推定の安定の目安とされます。イベントが少ないのに変数を多く入れると、係数や信頼区間が不安定になります。
ログランク検定とCox回帰はどう使い分ける?
単純な2群比較で「差があるか」だけを知りたいならログランク検定、共変量で調整したうえで効果量(ハザード比)まで求めたいならCox回帰が適しています。両者は比例ハザード性が成り立つとき整合的な結論になります。
比例ハザード性が破れていたらどうする?
層別Coxモデル・時間依存性共変量モデル・RMSTへの切り替えが代表的な対処です。さらに、イベントの種類が複数ある(例:他原因死亡)場合は競合リスク(Competing Risks)とFine-Grayモデルの検討も必要です。
まとめ
今回はCox比例ハザードモデルについて解説してきました。製薬業界の臨床試験・観察研究において、打ち切りデータを扱える、共変量を調整できる、HRという直感的な指標を提供という理由で不可欠な手法です。
RやSASを用いれば、モデル構築から可視化、仮定検証まで一貫して実施できます。
- カプランマイヤー法による生存時間推定 ― 生存曲線と中央生存期間の基礎
- ログランク検定 ― 群間差を調べるノンパラメトリック手法
- 層別Cox比例ハザードモデル ― 比例ハザード性が怪しい変数の扱い
- 時間依存性共変量を考慮したCoxモデル ― 効果が時間で変わる場合
- 競合リスク(Competing Risks)とFine-Grayモデル ― 複数のイベントが競合する場合
- RMST(制限付き平均生存時間) ― 非比例ハザードへの対応
- Cox比例ハザード性のチェックとRMSTへの切り替え判断 ― 診断から切り替えまでの実務フロー
参考書籍

著者:辻谷將明・池亀和博/出版社:共立出版












