生存時間分析は、「いつ」イベントが起こるかを扱う統計手法です。医療データ特有の「打ち切り(情報が不完全な患者)」を、情報を捨てずに正しく分析するのが核心です。
5年研究で「3年再発」「5年無事」「2年脱落」が混在。従来の分析では「2年無事だった」情報が失われます。生存時間分析は、この不完全な時間情報を正しく活用します。
カプラン=マイヤー(KM)法:
打ち切りを公正に扱い、「階段状」の生存曲線(S(t))を描画します。
ログランク検定:
2群の生存曲線に「統計的な有意差」があるか (p値) を検定します。
「年齢」や「病期」など交絡因子の影響を”調整”した上で、治療法などが「瞬間のリスク(ハザード)」を何倍にするか=ハザード比 (HR)を推定します。
PH仮定:
Coxモデルは「HRが時間で一定」と仮定します (Schoenfeld残差で要確認)。
競合リスク:
「がん死 vs 心疾患死」など。KM法は使えず、CIFやFine-Grayモデルが必要です。
医療の現場は、「時間」との密接な対話の連続です。
「この新しい治療法は、患者さんの生存期間をどれくらい延ばせるだろうか?」
「術後、再発というイベントが起こるまでの期間は、従来法と比べてどう違うか?」
「新しい薬剤を導入した後、平均してどれくらいの期間で特定の副作用が現れるのか?」
私たちが臨床現場や研究で本当に知りたいのは、単に「イベントが起きたか、起きなかったか」という二択の結果だけではありませんよね。多くの場合、「いつ、そのイベントが起こるのか」という、時間軸を含めた情報こそが、治療の評価や予後の予測において決定的に重要です。
しかし、この「時間」を統計モデルで扱うのは、実は非常に厄介なんです。
なぜなら、臨床研究や実臨床のデータには、「打ち切り(Censoring)」という特有の壁が立ちはだかるからです。
ちょっと想像してみてください。ある新しい治療法の効果を見るために、5年間の追跡研究(マラソン中継)を始めたとします。
- 患者Aさん: 3年目で残念ながら再発(イベント発生=ゴール)しました。この方のイベント発生時間は「3年」と確定します。
- 患者Bさん: 5年間の研究期間が終了した時点で、再発なく生存(まだ元気に走っている)しています。
- 患者Cさん: 2年目の時点で、遠方に引っ越してしまい、連絡が取れなくなりました(途中で中継から消えた)。
さて、このデータをどう分析すればよいでしょう?
もし、「5年間での再発率」のような単純な割合(ロジスティック回帰分析など)で評価しようとすると、大きな問題にぶつかります。
この分析手法では、結果は「5年以内に再発した(1)」か「しなかった(0)」の二択にしかできません。
患者Bさん(5年間再発なし)は、単純に「再発しなかった(0)」という結果(ラベル)になります。
患者Cさん(2年目で追跡不能)は、5年後どうなったか不明なため、(1)にも(0)にも分類できず、分析から「欠損(Missing)」として除外せざるを得ません。
もしそうしてしまうと、患者Cさんが「少なくとも2年間は無事だった」という貴重な情報が、統計モデルから完全に捨てられてしまいます。
また、患者Bさんが「5年間も無事だった」という情報も、単なる「(0)」という結果として扱われ、3年で再発したAさんとの「時間」の違いを十分に評価できません。これは、データの価値を大きく損うことになります。
Bさんは「5年間」は大丈夫だった(でも6年目、7年目にどうなるかは分からない)。Cさんは「2年間」は大丈夫だった。
この「〜年間は大丈夫だった」という不完全ながらも決定的に重要な時間情報を、統計的に正しく、かつ公平に扱うために設計された専門の手法。
それが、今回学ぶ生存時間分析 (Survival Analysis) なのです。この分析手法は、時間とイベント発生、そして「打ち切り」という現実をすべて考慮に入れて、未来を予測するための強力な武器となります。
「打ち切り」と「切断」:生存時間分析が生まれた理由
生存時間分析の核心は、まさにこの「不完全な時間データ」をどう公正に扱うかにあります。ここで非常に重要なマインドセットの転換が必要です。
「打ち切り」データは、「情報がない欠損値」ではありません。むしろ、「その時点までは、イベントが起きていないことが分かっている」という非常に価値のある情報(Known Survival)を提供してくれているのです。
臨床研究で遭遇する、この「不完全なデータ」のパターンを少し整理してみましょう。大きく「打ち切り」と「切断」に分けられます。
この中で、臨床研究で圧倒的によく遭遇し、まず理解すべきなのが「右側打ち切り (Right Censoring)」です。
右側打ち切り (Right Censoring):未来がわからない
これは、私たちが知りたいイベント(死亡、再発など)が、追跡期間の「右側」(つまり未来)で起こる可能性がある、あるいは何らかの理由で追跡できなくなった状態を指します。
主な理由は3つあります。
右側打ち切りの主な理由
- 研究期間の終了(Type I Censoring):
研究(観察)が「5年間」と決まっていて、その5年間の観察期間が終了した時点で、まだイベントが発生していないケース。冒頭の患者Bさん(5年間無事だった)がこれにあたります。- 追跡不能(脱落 / Lost to Follow-up):
患者さんが引っ越しや自己都合で通院しなくなった、あるいは研究への同意を撤回したケース。冒頭の患者Cさん(2年目までは無事だった)がこれです。- 競合リスク (Competing Risks):
これは少し厄介です。例えば「がんによる死亡」を追跡している研究で、ある患者さんが「交通事故」で亡くなった場合です。この方は、もはや「がん死」というイベントを経験することはできません。単純な生存時間分析(Kaplan-Meier法など)では、この方も「打ち切り」として扱われることが多いのですが、厳密にはこれは「競合するイベントが起きた」という別の事象です。これを「打ち切り」として扱うと、本来の「がん死の確率」の推定にバイアス(過大評価)が生じる可能性があり、後述する競合リスク分析という専門的な手法が必要になります (Austin et al., 2016)。
遅延エントリー(左切断):過去がわからない
「打ち切り」が追跡の「終わり」に関する問題だったのに対し、「左切断 (Left Truncation)」または「遅延エントリー (Delayed Entry)」は、追跡の「始まり」に関する問題です。
これは、患者さんが本来のリスクに晒された時点(例:診断日、手術日)と、私たちがその患者さんを研究コホートとして観察し始めた時点(例:コホート登録日、当院への転院日)が異なる場合を指します。
例えば、ある疾患のコホート研究で、診断から3年経った患者さん(Aさん)が、あなたの病院に転院してきて、その時点(診断から3年後)で初めて研究に登録されたとします。
- 間違った扱い: Aさんの追跡開始時点を「0年」として、新しく診断された患者さんと同列に扱う。
- 正しい扱い: Aさんは「診断から3年間は生存していた」という事実を観測しています。したがって、Aさんは、モデルの「3年目」の時点から初めてリスク集団(Risk Set)に加わるべきです (Harrell, 2015)。
もしAさんを「0年目」として扱ってしまうと、生存期間を不当に長く見せる(左側の安全な期間を水増しする)バイアス(Immortality Bias)を生み出してしまいます。生存時間分析では、この「遅延エントリー」を正しく処理することが、偏りのない結果を得るために不可欠なのです。
時間の経過とリスクを「見える化」する3つの尺度
さて、この「打ち切り」や「切断」といった厄介なデータを考慮しながら、「時間とイベント」のダイナミックな関係性を表現するために、私たちは主に3つの重要な「関数(ものさし)」を使います。この3つは互いに深く関連しており、生存時間分析の「三種の神器」と言ってもいいかもしれません。
1. 生存関数 (Survival Function) – \(S(t)\)
これは、最も直感的で、臨床的にもイメージしやすい基本的な尺度です。論文などで目にする、あの「階段状のグラフ」(カプラン=マイヤー曲線)が描いているのが、まさにこの生存関数です。この概念をデータから推定する代表的な手法が、KaplanとMeierによって1958年に発表されたカプラン=マイヤー法です (Kaplan and Meier, 1958)。
- 定義: ある集団が、ある時点 \(t\) を超えて「生存」(イベントが起きていない状態)している確率。
- 数式: \[ S(t) = P(T > t) \] (\(T\) はイベントが発生するまでの時間を表す確率変数です。\(P(T > t)\) は、その時間 \(T\) が特定の時点 \(t\) よりも長い(つまり、\(t\) を超えて生存している)確率を示します。)
- たとえ話: 「フルマラソンにおける完走者の割合」を想像してみてください。
- スタート時(\(t=0\))は、全員がまだ走っています(イベント未発生)。このため、生存確率(残存率)は100%です。これが \(S(0) = 1\) の状態です。
- レースが進むにつれて、残念ながらリタイア(イベント発生)する人が出てきます。一人リタイアするたびに、集団全体のうち「まだ走り続けている人」の割合は少しずつ減っていきます。
- 誰もリタイアしない区間(イベントが発生しない間)は、その割合は変わりません(グラフが横ばいになります)。
- 一度リタイアした人がレースに復帰することはないため、この割合が時間と共に上がることはありません。必ず下がるか、横ばいになるかのどちらかです(これを単調非増加と呼びます)。
- 臨床的な意味: 私たちがよく耳にする「5年生存率」というのは、まさにこのグラフの \(t=5\text{年}\) の時点での値、つまり \(S(5 \text{年})\) のことを指しているわけですね。
2. ハザード関数 (Hazard Function) – \(h(t)\)
生存関数 \(S(t)\) が「今までの累積的な結果(どれだけ生き残ったか)」を示すのに対し、ハザード関数 \(h(t)\) は「今、この瞬間の危険度」に焦点を当てます。これは少し抽象的ですが、生存時間分析の核心とも言える概念です。
- 定義: 時点 \(t\) まで生存していた人が、その次のごく僅かな瞬間にイベントを経験する「瞬間的なリスク(危険度)」または「瞬間発生率」。
- 数式 (概念): \[ h(t) = \lim_{\Delta t \to 0} \frac{P(t \le T < t + \Delta t \mid T \ge t)}{\Delta t} \] (これは条件付き確率です。\(T \ge t\)(時点 \(t\) まで生存していた)という条件のもとで、ごく短い \(\Delta t\) の間にイベントが起こる確率を、その時間幅 \(\Delta t\) で割ったものです。時間で割っているため、これは「確率」ではなく「率 (rate)」になります。)
- 重要な注意点: \(h(t)\) は「率」なので、確率と違って 1 を超えることもあり得ます。例えば、時間単位が「年」で、イベントが「1年あたり平均2回」起こるような非常に高リスクな状況なら、ハザードは2になります。
- たとえ話: 「地雷原の危険度マップ」を想像してください。
- 生存関数 \(S(t)\) は、「地雷原を \(t\) メートル進んだ時点で、まだ無事である確率(累積の結果)」です。ハザード関数 \(h(t)\) は、「\(t\) メートル地点に今まさに立っている人が、次の一歩で地雷を踏む瞬間の危険度(その地点の地雷の密度)」です。
3. 累積ハザード関数 (Cumulative Hazard Function) – \(H(t)\)
最後は、ハザード関数 \(h(t)\) を「累積」したものです。
- 定義: 時点 0 から時点 \(t\) までに蓄積された「トータルのリスク量」。
- 数式: \[ H(t) = \int_{0}^{t} h(u) du \] (これは、瞬間のリスク \(h(u)\) を、時間 0 から \(t\) まで積分(合計)したものです。)
- たとえ話: 再び「地雷原」です。
- \(h(t)\) が「各地点の地雷の密度」だとすれば、
- \(H(t)\) は「\(t\) メートル地点までに通り過ぎてきた地雷の総量(累積リスク量)」に相当します。
3つの関数の関係性
この「生存」「瞬間リスク」「累積リスク」の3つは、実は裏側で密接に結びついています。この関係性こそが、生存時間分析の数学的な美しさであり、強力さの源です。
数式で書くと、このようになります。
\[ S(t) = \exp(-H(t)) = \exp\left(-\int_{0}^{t} h(u) du\right) \]
つまり、「瞬間のリスク」(\(h(t)\)) が分かれば、それを積分して「累積リスク」(\(H(t)\)) が計算でき、さらにそれを変換すれば「生存確率」(\(S(t)\)) が求められるのです。
逆に、「生存確率」(\(S(t)\)) が分かれば、それを微分することで「瞬間のリスク」(\(h(t)\)) を知ることもできます(\( h(t) = – \frac{d}{dt} \ln[S(t)] \))。
この強固な関係性があるからこそ、私たちは状況に応じて最も分析しやすい関数(例えばCoxモデルでは \(h(t)\))に注目し、そこから他のすべての情報(生存曲線 \(S(t)\) など)を引き出すことができるのです。
生存時間分析の実践的ツール:データから曲線とp値を導く
さて、先ほど私たちは生存時間分析の「三種の神器」として、生存関数 \(S(t)\)(フルマラソンにおける完走者の割合)、ハザード関数 \(h(t)\)(瞬間の危険度)、そして累積ハザード \(H(t)\)(累積リスク)という3つの強力な概念を学びました。
これらは理論的な「ものさし」です。では、実際の臨床現場で得られた、あの「打ち切り」だらけの不完全なデータセットから、これらを具体的にどうやって計算し、比較するのでしょうか?
ここで、生存時間分析における最も重要で実践的な2つのツールが登場します。
- カプラン=マイヤー(Kaplan-Meier)法: 生存曲線(\(S(t)\))を「描く」ためのツール
- ログランク検定 (Log-rank Test): 2つの生存曲線を「比べる」ためのツール
Kaplan-Meier(カプラン=マイヤー)法:生存曲線を描く
私たちが医学論文で目にする、あの特徴的な「階段状の生存曲線」。あれこそが、カプラン=マイヤー(KM)法によって推定された生存関数 \(\hat{S}(t)\) の姿です。(\(\hat{S}\) はデータから計算した「推定値」であることを示す記号です)
この手法は、1958年にEdward L. Kaplan氏とPaul Meier氏によって発表された、生存時間分析の金字塔とも言えるノンパラメトリック(特定の確率分布を仮定しない)な推定法です (Kaplan and Meier, 1958)。
- 目的: 打ち切りデータを適切に(公正に)処理しながら、生存関数 \(\hat{S}(t)\) をステップバイステップで推定すること。
- なぜ「階段状」なのか?: KM法は、「イベント(死亡や再発)が発生した瞬間」にのみ、生存確率がガクッと下がる(階段が一段下がる)と考えるからです。イベントとイベントの間は、生存確率は変わらない(水平なまま)と見なします。
- 原理 – 「生存の連鎖」としての計算:
KM法の核心は、生存確率を「条件付き確率の掛け算(積)」で計算していく点にあります。そのため、「積-極限推定量 (Product-Limit Estimator)」とも呼ばれます。
数式で書くと、以下のようになります。 \[ \hat{S}(t) = \prod_{i: t_i \le t} \left( 1 – \frac{d_i}{n_i} \right) \] これだけ見ると難解ですが、やっていることは「生存の連鎖」を計算しているだけで、非常に論理的です。- \(\prod\) は「掛け合わせる(Product)」という意味の記号です。
- \(t_i\) は、イベントが発生した各時点(例:3日目、10日目、25日目…)です。
- \(d_i\) は、その時点 \(t_i\) でイベントが発生した人数です。
- \(n_i\) は、その時点 \(t_i\) の直前まで生存(または追跡中)だった人数(=Risk Set、リスクに晒されている集団)です。
- \((d_i / n_i)\) は、時点 \(t_i\) での「瞬間的なイベント発生割合」です。
- \((1 – d_i / n_i)\) は、その時点 \(t_i\) で「イベントを乗り越えて生存する割合」を意味します。
- 開始時 (t=0): 100人 (\(n=100\)) でスタート。生存率 \(\hat{S}(t) = 1.0\) (100%)。
- 5日目 (t=5): 100人中 (\(n_1=100\))、3人がイベント発生 (\(d_1=3\))。
- 5日目を乗り越える確率は \( (1 – 3/100) = 0.97 \)。
- 全体の生存率 \(\hat{S}(5)\) = \(1.0 \times 0.97 = 0.97\)。
- (この時点で、2人が「打ち切り」で脱落したとします)
- 10日目 (t=10): 次のイベント発生時点。
- リスクセット(\(n_2\))は何人でしょう? 100人からイベントの3人と打ち切りの2人を除いた、95人です。
- この95人中 (\(n_2=95\))、5人がイベント発生 (\(d_2=5\))。
- 10日目を乗り越える確率は \( (1 – 5/95) \approx 0.947 \)。
- 全体の生存率 \(\hat{S}(10)\) =(直前の生存率)\(\times\)(今回の生存率)= \(0.97 \times 0.947 \approx 0.919\)。
- 「打ち切り」の華麗な扱い:
KM法の最も優れた点は、この「打ち切り」の扱いです。
上の例の「5日目に打ち切りになった2人」は、どう扱われたでしょうか?- イベント発生(\(d_i\))ではないので、生存確率の分子には影響しません(=曲線は下がりません)。
- しかし、次の10日目の計算では、分母(\(n_i\))であるリスクセットから静かに除外されます。
- (補足)Nelson-Aalen推定量:
ちなみに、三種の神器の「累積ハザード \(\hat{H}(t)\)」を直接推定する方法(\( \hat{H}(t) = \sum_{i: t_i \le t} (d_i / n_i) \))もあり、これを Nelson-Aalen(ネルソン=アーレン)推定量と呼びます (Aalen, 1978)。先ほどの関係式 \(\hat{S}(t) = \exp(-\hat{H}(t))\) を使えば、こちらから生存曲線(KM曲線とは微妙に異なるが、ほぼ一致する)を導出することも可能です。
ログランク検定 (Log-rank Test):2群の生存曲線を比べる
さて、KM法によってA群(新薬)とB群(プラセボ)の2本の生存曲線が描けたとします。
A群の曲線がB群よりも上にあるように見えます。しかし、臨床家として私たちが直面するのは、「その差は、本当に新薬の効果によるものなのか、それとも、たまたまA群の調子が良い患者さんが多かっただけの「単なる偶然のバラツキ」なのか?」という問いです。
この統計的な問いに答えるための、最も標準的な検定方法が「ログランク検定」です (Mantel, 1966; Peto and Peto, 1972)。
- 目的: 2つ(あるいはそれ以上)の群の生存曲線全体を比較し、その差が統計的に有意(偶然とは言いにくい)かどうかを、単一のp値として算出すること。
- 帰無仮説(検定が否定したい仮説):
「2つの群のハザード(瞬間の危険度)は、すべての時点において等しい(差がない)」 - 原理(概念) – イベントごとの「期待値」との比較:
ログランク検定のロジックは、非常に巧妙です。
「もし帰無仮説が正しい(A群もB群もハザードが同じ)としたら、どうなるはずか?」という世界をシミュレーションします。- KM法と同じように、まず全患者(A群B群ごちゃ混ぜ)のイベント発生時間で区切ります。
- 最初のイベント発生時点で、時計を止めます。
- A群のリスクセット(生存者)が \(n_A\) 人、B群が \(n_B\) 人いたとします。
- 合計 \(N = n_A + n_B\) 人のリスクセットから、合計 \(D\) 人のイベントが発生しました。
- もし「差がない」なら、この \(D\) 人のイベントは、A群とB群の人数比(\(n_A/N\) と \(n_B/N\))に応じてランダムに配分されるはずです。
- この「差がない場合に期待されるイベント数(期待値 E)」を計算します。
- A群の期待値 \(E_A = D \times (n_A / N)\)
- B群の期待値 \(E_B = D \times (n_B / N)\)
- 次に、「実際に観測されたイベント数(観測値 O)」(\(O_A\) と \(O_B\)) と比較します。
- この「(O – E) のズレ」を、すべてのイベント発生時点で計算し、全期間にわたって合計していきます。
- 最終的に、全期間で合計した「(O – E) のズレ」が、偶然の範囲(統計的な誤差)を大きく超えていれば、「やはり最初の仮定(差がない)がおかしかった」となり、帰無仮説は棄却されます(=有意差あり、p < 0.05)。
- 補足(重み付け):
ログランク検定は、追跡期間の最初から最後まで、すべてのイベント発生時点を「平等」に重み付けします。もし、臨床的な仮説として「新薬の効果は特に初期に強く現れるはずだ」と考えるなら、初期のイベントのズレを重視する「Gehan-Wilcoxon検定」 (Gehan, 1965) のような、重み付けを変えた検定手法を選ぶこともあります。 - ログランク検定の「限界」:
この検定は非常に強力ですが、万能ではありません。- 「差がどれくらいか」は言えない:
p値(例:p=0.03)は、「差があるかどうか」の確信度を示すだけで、「差がどれくらい大きいか(例:リスクが半分になるのか、10%減るだけなのか)」は教えてくれません。「交絡因子」を調整できない:
もしA群(新薬)がB群(プラセボ)より有意に生存率が高かったとしても、A群の患者さんがたまたまB群より「若い」人が多かったら、その差が「新薬の効果」なのか「年齢の効果」なのか、ログランク検定では区別がつきません。
- 「差がどれくらいか」は言えない:
影響する要因を解き明かす:Cox比例ハザードモデル
さて、ログランク検定は「2群間に差があるか(p値)」は教えてくれますが、大きな限界がありました。
- 差の大きさ(効果量)が分からない。
- 交絡因子(例:年齢、性別、病期)の影響を調整できない。
臨床現場では、「A群(新薬)とB群(プラセボ)で差がある(p<0.05)」と出ても、もしA群に若い患者さんが多く、B群に高齢の患者さんが多ければ、その差が「新薬」によるものか「年齢」によるものか区別がつきません。これでは意味がないですよね。
私たちが本当に知りたいのは、「年齢や病期などの影響を(統計的に)揃えた上で、なお、新薬はプラセボに比べて、ハザード(瞬間の危険度)をどれだけ(何倍)減らすことができるのか?」ということです。
この、医学研究における最も重要な問いに答えるための標準的な武器が、1972年にDavid Cox卿によって提唱された「Cox比例ハザードモデル」という回帰分析の手法です (Cox, 1972)。
なぜCoxモデルが必要か?
- 目的: 複数の要因(共変量)の影響を同時に調整 (Adjust) した上で、私たちが注目する特定の要因(例:新薬)がハザードに与える「差の大きさ=ハザード比 (Hazard Ratio, HR)」を算出すること。
- たとえ話: ここで、非常に直感的な比喩を使ってみましょう。「浴槽に溜まった水」を「生存している患者さんの集団」だと想像してください。
- そして、「浴槽の底から水が抜ける穴」が、死亡や再発といった「イベント」だと考えます。
- この「穴から水が抜ける勢い(=瞬間の水の減少率)」こそが、「ハザード(瞬間の危険度)」です。穴が大きければ(ハザードが高ければ)、水位(生存率)は急速に下がっていきます。
- 当然ながら、この「穴の大きさ(ハザード)」には、私たちが注目する「治療法(新薬かプラセボか)」以外にも、「年齢」「病期」「併存疾患」といった様々な要因が影響しています。
- ログランク検定の限界:
- ログランク検定は、単純に2つの浴槽(例:A群=新薬、B群=プラセボ)を用意し、その「水位の減り方(生存曲線)」を比べるだけです。
- もし、A群の水位の減り方がB群より遅かった(A群の生存率が高かった)とします。素晴らしい結果に見えますよね。
- しかし、もしA群の浴槽にはたまたま「病期が早い(=元の穴がとても小さい)」人ばかりが集まり、B群の浴槽には「病期が進行した(=元の穴がとても大きい)」人ばかりが集まっていたとしたら、どうでしょう?
- その水位の差が、「新薬が穴を小さくした効果」によるものなのか、単に「A群の浴槽の元の穴が小さかった(=患者さんの条件が良かった)」だけなのか、区別がつきません。これが臨床研究で最も避けたい「交絡(Confounding)」です。
- Coxモデルの役割:
- Coxモデルは、この交絡の問題を見事に解決します。
- 統計的な処理によって、「年齢」や「病期」といった、浴槽ごとの「元の穴の大きさの違い」を、もし全員が同じ条件(同じ元の穴の大きさ)だったら、という状態に仮想的に揃えて(調整して)くれるのです。
- その調整を行った上で、「新薬」という要因が、純粋に「穴の大きさ(ハザード)」を正確に何倍(または何分の一)にしたか、その「倍率(ハザード比, HR)」だけをピンポイントで推定してくれます。
- 例えば、Coxモデルの結果が「HR=0.7」と出たとします。これは、「たとえA群とB群で年齢や病期に差があったとしても、その影響を調整すれば、新薬はハザード(水が抜ける勢い)を30%減少させる(0.7倍にする)純粋な効果がある」と結論づけることができる、非常に強力な結果なのです。
Cox比例ハザードモデルの「中身」
では、Coxモデルはどのような「からくり」でこれを実現しているのでしょうか。これが驚くほどエレガントなんです。
Coxモデルは、ある人のある瞬間 \(t\) におけるハザード関数 \(h(t)\) を、次の2つの部分の「掛け算」としてモデル化します。
\[ h(t, \mathbf{X}) = h_0(t) \times \exp(\beta_1 X_1 + \beta_2 X_2 + \dots + \beta_p X_p) \]
この数式を分解してみましょう。
- \(h_0(t)\) (ベースライン・ハザード関数)
- これは「時間で変化する基準リスク」の部分です。
- 全ての要因(\(X_1, X_2, \dots\))がゼロ(=基準となる人。例:プラセボ群で、年齢が基準値で、病期がステージI)の人の、時間経過に伴うハザード(瞬間の危険度)を示します。
- 例えば、術後ハザードなら \(t\) が小さい(術直後)時に高く、時間と共に下がるかもしれません。この「時間の効果」を全てこの \(h_0(t)\) が引き受けてくれます。
- (ここがスゴイ)Coxモデルの最大の功績は、この \(h_0(t)\) の具体的な形状(関数形)を、私たちが一切仮定しなくても良い(知らなくても良い)点です。この柔軟性こそが、Coxモデルが「セミパラメトリック(半母数)」モデルと呼ばれ、世界中で広く使われている理由です。
- \(\exp(\beta_1 X_1 + \dots + \beta_p X_p)\) (共変量によるリスク倍率)
- これは「要因によるリスクの倍率」の部分です。
- \(X_1\)(例:新薬投与=1, プラセボ=0)や \(X_2\)(例:年齢)といった要因が、ベースライン・ハザードを「何倍」にするかを示します。
- なぜ \(\exp\)(指数関数)を使うかというと、(1) ハザード(リスク)は必ず正の値でなければならないため(\(\exp\) は必ず正になる)、(2) 要因が何もない(全てのX=0)のとき、\(\exp(0) = 1\) となり、ベースラインの「1倍」になる、という美しい数学的性質があるからです。
- \(\beta_i\) が、私たちが推定したい「回帰係数」です。
🤿 Deep Dive! 統計モデルで頻出する「exp()」って、いったい何者?
Cox比例ハザードモデルの数式 \(h(t, \mathbf{X}) = h_0(t) \times \exp(\beta_1 X_1 + \dots)\) を見て、「うっ…」とアレルギー反応が出そうになった方もいらっしゃるかもしれません。この見慣れない「\(\exp\)」とは一体何者なのでしょうか。
このexp()という関数は、数学や統計学の世界では(\(\pi\)(円周率)と同じくらい)超有名な「指数関数(Exponential Function)」を指す記号です。
結論から言えば、exp(x) とは、\(e^x\)(\(e\) の \(x\) 乗)という意味です。

そもそも「e」って何?
「なぜ \(2^x\) や \(10^x\) のようなキリの良い数字ではなく、わざわざ \(e\) という謎の文字を使うの?」と思いますよね。
この \(e\) は「ネイピア数(Napier’s number)」(またはオイラー数)と呼ばれる、数学的に非常に重要な「定数」です。\(\pi\) が \(3.14159…\) と続く無理数であるように、\(e\) も \(2.71828…\) と永遠に続く無理数です。
この \(e\) は、ひと言でいえば「自然界における “成長” の基本単位」のようなものです。「自然対数(natural logarithm)」の「自然」も、この \(e\) に由来しています。
\(e\) の正体:連続する成長
\(e\) の本質を理解するために、よく「複利計算(銀行の利息)」のたとえ話が使われます。
- 元金100万円に「年利100%」という(ありえない)利息がつくとします。
- 1年に1回(単利): 1年後、100万円の利息がつき、合計は \(100 \times (1 + 1) = 200\) 万円です。
- 半年に1回(複利):
- 半年後:年利100%の半分(50%)がつき、\(100 \times (1 + 0.5) = 150\) 万円。
- 1年後:その150万円にさらに50%がつき、\(150 \times (1 + 0.5) = 225\) 万円。(\(100 \times (1+0.5)^2 = 225\))
- 1ヶ月に1回(複利): \(100 \times (1 + 1/12)^{12} \approx 261.3\) 万円。
- 毎日(複利): \(100 \times (1 + 1/365)^{365} \approx 271.4\) 万円。
では、この利息がつく間隔を「1秒ごと」「0.01秒ごと」…と、限りなく「連続的(Continuous)」に、瞬間瞬間で利息が元本に組み入れられながら成長し続けたら、1年後はいくらになるでしょう?
その答えこそが、\(e\)(\(e^1\))です。
1年後に、元金は \(e\) 倍(約2.718倍) になります。これが「100%の連続成長」の結果です。
この「連続的な成長率」こそが \(e\) の本質です。
関数 \(y = e^x\) は、「その瞬間の “成長速度”(グラフの傾き)が、その瞬間の “現在の値”(グラフの高さ)に等しい」という、とんでもなくユニークで「自然」な性質を持っています。
生物の細胞分裂や、感染症の流行初期、放射性物質の崩壊(減衰)など、「現在の量」に比例して「次の瞬間の変化量」が決まるような現象は、すべてこの \(e\) を使った指数関数で記述されます。
なぜCoxモデルで \(\exp()\) が必須なのか?
では、なぜCoxモデルは \(10^x\) でも \(2^x\) でもなく、この \(\exp(x)\) を使うのでしょうか。それには、統計モデルを作る上で「最高に都合が良い」3つの理由があるからです。
- 【最重要】必ず「正の値」を返す
ハザード(瞬間の危険度)は、「率」ですから、マイナス(例:-0.5)になることはありえません。最低でも0です。
Coxモデルが計算する \(\beta_1 X_1 + \dots\) のスコア(「線形予測子」と呼びます)は、\(\beta\) や \(X\)の値によっては平気でマイナスになります。
しかし、exp(x)は、入力 (x) がどんなに小さなマイナスの値(例:-100)であっても、出力 \(y\) (\(e^x)\)は決して0にならず、必ず0より大きい正の値を返します。
(\(e^{-100}\) は \(1/e^{100}\) であり、非常に0に近いですが、決して0やマイナスにはなりません)
これにより、モデルが計算するハザードが数学的に破綻しないことが保証されます。 - 基準値(スコア=0)を「1倍」に変換する
もし要因(\(X\))が何の影響も与えない、あるいは全ての (X) が0だった場合、\(\beta_1 X_1 + \dots\) のスコアは「0」になります。
これをexp()に入れると、\(\exp(0) = 1\) となります(\(e^0 = 1\) ですね)。
これは、「もし要因が何もなければ、ハザードはベースライン \(h_0(t)\) の “1倍” です」という、非常に直感的で美しい基準(ベースライン)を作ってくれることを意味します。 - 「足し算」の世界を「掛け算」の世界に変換する
これは少し高度ですが、Coxモデルの本質に関わります。- モデルが計算するスコア: \(\beta_1 X_1 + \beta_2 X_2\) (足し算の世界)
- これを
exp()に入れると: \(\exp(\beta_1 X_1 + \beta_2 X_2)\) - 指数法則(\(e^{a+b} = e^a \times e^b\))により、これは \(\exp(\beta_1 X_1) \times \exp(\beta_2 X_2)\) と分解できます。(掛け算の世界)
\(h(t) = h_0(t) \times (\text{要因Aの倍率}) \times (\text{要因Bの倍率})\)exp()は、私たちが扱いやすい線形(足し算)のモデルを、この比例(掛け算)のモデルに変換する「橋渡し役」として、完璧な役割を果たしているのです。
ハザード比 (HR) の鮮やかな導出
このモデルの真価は、2群を比較したときに発揮されます。
例えば、「新薬」(\(X_1=1\))と「プラセボ」(\(X_1=0\))の効果を、他の要因(\(\mathbf{X}_{\text{other}}\))を全て同じ値に揃えて比較してみましょう。
- プラセボ群のハザード (\(Hazard_0\)): \[ \text{Hazard}_0(t) = h_0(t) \times \exp(\beta_1 \times 0 + \dots) = h_0(t) \times \exp(\dots) \]
- 新薬群のハザード (\(Hazard_1\)): \[ \text{Hazard}_1(t) = h_0(t) \times \exp(\beta_1 \times 1 + \dots) = h_0(t) \times \exp(\beta_1) \times \exp(\dots) \]
ここで、両者の「比」をとってみます。これがハザード比 (Hazard Ratio, HR)です。
\[ \text{HR} = \frac{\text{Hazard}_1(t)}{\text{Hazard}_0(t)} = \frac{h_0(t) \times \exp(\beta_1) \times \exp(\dots)}{h_0(t) \times \exp(\dots)} \]
どうでしょう。私たちが形を知らなくて困っていた \(h_0(t)\) と、揃えた他の要因 \(\exp(\dots)\) が、分母と分子で見事に打ち消し合います。
\[ \text{HR} = \exp(\beta_1) \]
これこそがCoxモデルの核心です。ベースライン・ハザード \(h_0(t)\) がどんな複雑な形であっても、それとは関係なく、新薬の効果(\(\beta_1\))から導出されるハザード比 \(\exp(\beta_1)\) だけを、クリーンに推定することができるのです。
この \(\exp(\beta_1)\) の解釈は、臨床試験で最もよく目にする指標の一つです (Spruance et al., 2004):
- HR = 1 (\(\beta_1=0\)): ハザードは変わらない(新薬もプラセボも同じ)。
- HR > 1 (\(\beta_1>0\)): ハザードが増加する(リスク要因)。例:HR=1.5 なら、リスクが1.5倍高い。
- HR < 1 (\(\beta_1<0\)): ハザードが減少する(保護要因)。例:HR=0.7 なら、リスクが30%減少する(0.7倍になる)。
最重要チェック:「比例ハザード性」の仮定
しかし、このCoxモデルが正しく機能するためには、私たちが今まさに目の当たりにした「ある前提」をクリアしなければなりません。
先ほどのハザード比の導出 \(\text{HR} = \exp(\beta_1)\) を思い出してください。この結果には \(t\)(時間)が含まれていません。これが何を意味するか?
「新薬のハザードは、プラセボのハザードの『常に\(\exp(\beta_1)\)倍』である」
これが、Coxモデルがその名に冠する「比例ハザード性の仮定 (Proportional Hazards Assumption, PH仮定)」です。ハザードの「比」が、時間(\(t\))が経過しても一定(比例)である、という大前提です。
- 仮定が満たされる例: 新薬群(A群)のハザードが、プラセボ群(B群)の「常に0.7倍」である。
- 仮定が満たされない例: 「最初の6ヶ月は新薬が効いて0.7倍だが、1年経つと効果が薄れて1.0倍(差なし)になる」。この場合、ハザード比が時間と共に変化(0.7 → 1.0)するため、仮定は破れています。
なぜこの仮定が重要か?
もしこの仮定が破れているデータ(例:上記)に対して無理やりCoxモデルを適用すると、モデルは全期間を「平均」したような、中途半端なハザード比(例:HR=0.9)を算出してしまうかもしれません。その結果、「最初の大きな効果(HR=0.7)」も「後半の効果消失(HR=1.0)」も両方見逃し、臨床的に誤った結論を導く危険性があります (Perper et al., 2020)。
どう確認するか?
この仮定は「成り立つ」と信じるものではなく、「確認(検定)」するものです。
- 視覚的確認:
- 2群のカプラン=マイヤー曲線が交差している場合、リスクの大小が時間で逆転しているため、PH仮定が強く疑われます (In and Lee, 2019)。
- log-logプロット(\(\ln(-\ln(\hat{S}(t)))\) vs \(\ln(t)\))を描き、2本の線が「平行」であればOK、交差していればNG、という伝統的な方法もあります。
- 統計的検定:
- 最も標準的な方法は、Schoenfeld(シェーンフェルド)残差を用いた検定です (Schoenfeld, 1982)。
- これは、モデルの残差が「時間」と相関していないかをチェックするもので、この検定で有意差が出てしまった場合(p<0.05)、残念ながら「PH仮定が破れている」と判断されます。
仮定が満たされない時:「時間依存性共変量」
では、PH仮定が満たされない(例:新薬の効果が時間と共に薄れる)と分かったら、もうCoxモデルは使えないのでしょうか?
いいえ、そんなことはありません。Coxモデルは、この問題に対するエレガントな拡張機能(オプション)を持っています。それが「時間依存性共変量 (Time-dependent Covariates)」という概念です (Fisher and Lin, 1999)。
最も簡単な方法は、モデルに「治療 \(\times\) 時間の交互作用項」を組み込むことです。
例えば、\(\exp(\beta_1 X_1)\) の部分を \(\exp(\beta_1 X_1 + \gamma_1 X_1 \times t)\) のように、時間 \(t\)(または \(\ln(t)\) など)との掛け算の項を追加します。
これにより、係数 \(\beta\) が実質的に時間と共に変化する \(\beta(t)\) となり、ハザード比 \(\text{HR}(t)\) も「時間と共に変化するハザード比」として推定することができます。実装には、データを時間で細かく分割(タイムスプリット)するなど、やや高度な処理が必要になる場合がありますが、これにより「効果が時間と共にどう変化するか」という、さらに深い臨床的洞察を得ることが可能になります。
発展的トピック①:PH仮定が破れた時の「もう一つの視点」
Coxモデルの「比例ハザード(PH)仮定」、つまり「ハザード比(HR)は時間を通じて一定である」という大前提は、非常に強力であると同時に、最大の弱点にもなり得ます。
臨床現場では、この仮定が当てはまらないケースも少なくありません。
- 例1: 治療直後は新薬の効果が絶大(HRが非常に低い)だが、1年経つと耐性ができて効果が薄れ、プラセボ群に近づく(HRが1に近づく)。
- 例2: 免疫療法のように、効果発現までに時間がかかり、最初の3ヶ月は差がない(HR=1)が、1年後、2年後と時間が経つにつれて劇的に差が開いていく(HRが低下)。
このように、ハザード比が時間と共に変化してしまう場合、Coxモデルで無理やり「全期間の平均HR」を算出しても、臨床的な実態(「最初だけ効く」「後から効く」)を見誤ってしまいます (Perper et al., 2020)。
Schoenfeld残差検定などでPH仮定が棄却された(p<0.05)場合、どうすればよいでしょうか?
前述の「時間依存性共変量」でCoxモデルを拡張するのも一つの手です。
しかし、もう一つ、まったく異なる視点からアプローチする強力な代替案があります。それが「加速寿命(Accelerated Failure Time: AFT)モデル」です (Wei, 1992)。
AFTモデルの視点:「リスクの倍率」から「時間の倍率」へ
CoxモデルとAFTモデルの「視点」の違いを理解することが非常に重要です。
- Coxモデル (PH) の問い:
「要因X(新薬)は、ハザード(瞬間のリスク)を何倍にしますか?」
→ 答え: ハザード比 (HR) (例:HR=0.7、リスクが0.7倍) - AFTモデルの問い:
「要因X(新薬)は、イベント発生までの時間(寿命)を何倍にしますか?」
→ 答え: 時間比 (Time Ratio) (例:Time Ratio=1.2、時間が1.2倍に延びる)
AFTモデルは、共変量がハザード(リスク)を直接操作するとは考えません。代わりに、共変量は「時間の流れそのものを加速、あるいは遅延させる」と考えます。
この「時間比」という解釈は、HRよりもはるかに直感的で、患者さんへの説明にも使いやすいと思いませんか?
- 「この治療は、瞬間のリスクを30%減らします(HR=0.7)」
- 「この治療は、イベントが発生するまでの時間を(中央値で)20%延ばします(Time Ratio=1.2)」
後者の方が、臨床的なメリットとしてずっと分かりやすいはずです。
AFTモデルは「パラメトリック」
Coxモデルが「セミパラメトリック(ベースラインハザードの形を仮定しない)」だったのに対し、AFTモデルは「パラメトリック(Parametric)」な手法です。
これは、AFTモデルを当てはめる際に、「生存時間の(対数)が、特定の確率分布に従う」という、より強い「仮定」を私たちが置く必要があることを意味します。
- AFTモデルの数式 (概念): \[ \log(T) = \beta_0 + \beta_1 X_1 + \dots + \sigma \varepsilon \] (イベント発生時間Tの対数が、共変量Xの線形和で表される。 \(\varepsilon\) が仮定する確率分布)
- 代表的な分布の仮定:
- ワイブル (Weibull) 分布: 非常に柔軟性が高い分布。ハザードが時間と共に増加、減少、あるいは一定(指数分布)のいずれも表現できます。
- 対数正規 (Log-normal) 分布: 生存時間の「対数」が正規分布に従うと仮定します。
- 対数ロジスティック (Log-logistic) 分布: ハザードが一度増加してから減少するような、山なりのハザードを持つ場合に適しています。
- トレードオフ:
- 利点: もし仮定した分布(例:ワイブル分布)がデータにうまく適合していれば、AFTモデルはCoxモデルよりも統計的に効率的(=より少ないデータで、より正確な推定)になることがあります (Harrell, 2015)。
- 欠点: そもそも、仮定した分布が間違っていた場合、推定結果全体がバイアス(歪み)を持ってしまう危険性があります (Bradburn et al., 2003)。
特に、ワイブル分布は、AFTモデルであり、かつPHモデルでもある(両方の仮定を同時に満たすことができる)という特殊な性質を持っており、両モデルの適合性を比較する際にもよく用いられます。
AFTモデルは、PH仮定が破れた時の有力な避難先であると同時に、「時間の延長」という観点から、Coxモデルとは異なる豊かな臨床的示唆を与えてくれる、もう一つの強力な武器なのです。
🤿 Diip Dive! どの分布を選ぶか? — データが持つ「形」を見抜く
「ワイブル、対数正規、対数ロジスティック…と色々出てきたけれど、いったい自分のデータにどれを使えばいいの?」
これは、パラメトリックモデルを使う上で最も重要で、誰もが抱く疑問だと思います。結論から言えば、「当てずっぽうで選んではいけない」のですが、どの分布が最もデータにフィットしているかを判断する、客観的な方法がちゃんと存在します。
大きく分けて、「目で見る方法」と「数値で比較する方法」の2つがあります。
1. 目で見る方法(視覚的評価)
まず、私たちが既に学んだ「カプラン=マイヤー(KM)曲線」や「ネルソン=アーレン(NA)推定量による累積ハザード曲線」を描いてみます。これらは、データが持つ「ありのままの形(ノンパラメトリックな推定)」でしたね。
次に、AFTモデルで仮定する各分布(ワイブル、対数正規など)が持つ「理論上の曲線」と、データから描いた「ありのままの曲線」を重ね描きしてみます。
- もし、KM曲線(またはハザード曲線)が、ワイブル分布の理論曲線とピタッと重なれば、「このデータはワイブル分布に従っていそうだ」と判断できます。
- もし、ハザード(瞬間の危険度)が、術後すぐは高く、その後いったん下がり、慢性期にまた少し上がる…といった「山なり」や「U字型」の複雑な形をしていれば、単調なワイブル分布ではうまく説明できず、「対数ロジスティック分布の方がフィットしているかも」といった推測ができます。
この「目で見る」方法は、データの大まかな特徴を掴むのに非常に有効です。
2. 数値で比較する方法(AIC / BIC)
「目で見る」だけでは、AさんとBさんで「ワイブルの方が合ってる」「いや、対数正規の方が近い」と意見が分かれてしまうかもしれません。そこで、客観的な「審査員」が必要になります。
この審査員として最も一般的に使われるのが、「情報量規準(Information Criteria)」と呼ばれる指標、特に AIC(赤池情報量規準) や BIC(ベイズ情報量規準) です。
これらの指標は、モデルの「良さ」を単一の数値で評価してくれます。素晴らしいのは、AICやBICが単なる「当てはまりの良さ(尤度)」だけでなく、「モデルのシンプルさ(パラメータの少なさ)」も考慮してくれる点です。
- 複雑なモデル(例:パラメータが多い分布)を使えば、データにフィットさせるのは簡単です。
- しかし、AICやBICは、「少ないパラメータで、いかに上手くデータを説明できたか」という、モデルの「効率の良さ」を評価します。
実践的な使い方:
- データに対し、AFTモデルを「ワイブル分布」を仮定して構築し、そのAICの値(例: 500)を計算します。
- 同じデータで、今度は「対数正規分布」を仮定して構築し、そのAICの値(例: 480)を計算します。
- 同じく、「対数ロジスティック分布」で構築し、AICの値(例: 482)を計算します。
- すべてのAICの値を比較し、最も数値が小さいモデルを選びます。
発展的トピック②:競合リスク(Competing Risks)分析 – 「イベントの奪い合い」をどう扱うか
生存時間分析の実践において、CoxモデルのPH仮定と同じくらい(あるいはそれ以上に)頻繁に遭遇し、かつ重大な誤解を招きやすいのが、この「競合リスク (Competing Risks)」の問題です。
問題:なぜカプラン=マイヤー法ではダメなのか?
生存時間分析の実践で、非常に重要かつ、深刻な誤解を招きやすいのが、この「競合リスク (Competing Risks)」の問題です。
競合リスクとは、私たちが注目するイベントA(例:がんによる死亡)の発生を、別の種類のイベントB(例:心疾患による死亡、事故死)が実質的に妨げてしまう状況を指します。
なぜ「妨げる」のか?
これは非常に単純な話です。考えてみてください。ある患者さんが「心疾患」で亡くなった場合、その患者さんは、もはや私たちが注目していた「がん」で亡くなることは可能でしょうか?
不可能です。イベントB(心疾患死)が先に起こった時点で、イベントA(がん死)が発生する可能性は永久に失われます。イベントAの観測が不可能になるのです。
多くの人が犯す「重大な間違い」
ここで、多くの初学者が(そして、残念ながら一部の研究でも)犯してしまう典型的な間違いがあります。それは、
「競合イベントB(心疾患死)を、単純な『打ち切り』として扱って、カプラン=マイヤー(KM)法を適用してしまう」
ことです。一見、どちらも「がん死」ではないので、同じように扱えそうに見えます。しかし、これがなぜ根本的に間違っているのでしょうか?
「打ち切り」と「競合イベント」は全くの別物
思い出してください。KM法における「打ち切り(Censoring)」とは、本来どういう意味だったでしょうか?
- (本来の)打ち切り: 「研究期間が終了した」「引っ越して追跡不能になった」など。
- 本質: その時点ではまだ生存している(イベント未発生)が、その後の情報がない状態。「少なくとも t 時点までは無事だった」という情報。
- 競合イベント: 「心疾患で死亡した」
- 本質: その時点でイベント(死亡)が発生している(ただし、注目していた種類とは違う)。決して生存しているわけではない。
標準的なKM法は、「打ち切り」の人の情報を「その時点までは生存していた」という形で分母(リスクセット)に貢献させ、次の時点から静かに除外します。
もし、競合イベント(心疾患死)を「打ち切り」として扱ってしまうと、KM法は「この人は t 時点まで生存していた(本当は死亡しているのに!)」と誤解したまま計算を進めてしまいます。
なぜバイアス(歪み)が生じるのか?
この扱い方は、私たちが本当に知りたい「実際に(現実の臨床で)がん死する確率」の推定に、深刻なバイアス(歪み)をもたらします。
具体的には、カプラン=マイヤー法(の逆、つまり 1 - KM生存率)が計算するものは、
「もし競合リスク(心疾患死など)が “存在しなかったら”、その人ががん死するであろう(仮想的な)確率」
になってしまいます (Austin et al., 2016)。これは現実の臨床現場で知りたい予後とは全く異なります。競合する死因が多い集団では、この「仮想の確率」は、現実の発生確率よりも常に高く(過大に)推定されてしまうのです。
高齢者のがん研究での典型例
例えば、高齢のがん患者さんの集団を考えてみましょう。この集団では、「がん死」(イベントA)よりも先に「老衰や心疾患」(イベントB)で亡くなる人が多くなります(競合リスクが非常に高い)。
- 彼ら(イベントBで死亡)を、KM法で「打ち切り」として扱います。
- KM法の計算上、彼らは「生存者」として分母(リスクセット)にカウントされた後、次の計算から除外されます。
- 時間が経つにつれ、競合イベントで亡くなる人が増え、彼らが「打ち切り」として扱われるため、計算上の分母(リスクセット)が、本来あるべき(がん死のリスクがある)集団よりも不当に小さくなっていきます。
- 分母が不当に小さくなる一方で、分子(がん死)の数はそのままカウントされます。
- その結果、計算される「がん死のハザード(率)」が非現実的に高く計算されてしまいます。
解決策①:CIF(累積発生関数)– 現実の発生確率を推定する
さて、カプラン=マイヤー(KM)法では「もし競合イベントがなかったら」という非現実的な確率(過大推定)しか計算できない、という問題が分かりました。
では、私たちが本当に知りたい「競合リスク(心疾患死など)が現実にある中で、目的のイベント(がん死)が “実際に” 起こる確率」を正しく推定するには、どうすればよいのでしょうか。
そのための正しい指標が、「累積発生関数 (Cumulative Incidence Function: CIF)」です。
このグラフが、KM法(の逆)とCIFの違いを端的に示しています。競合リスク(心疾患死)が多ければ多いほど、KM法(\(1-KM\))は非現実的に100%に近づこうとしますが、CIF(がん死)は、競合リスクに”食われてしまう”分、現実的な低い値に抑えられます。
- CIFの定義:
時点 \(t\) までに、他の競合イベントに妨げられること(先に”食われる”こと)なく、目的のイベント(例:がん死)が起こる累積確率。
このCIFの考え方を、生存している患者さん全体(100%)を一つの「パイ」に例えてみましょう。
時間が経つにつれ、このパイは3つの運命に分かれていきます。
- 運命A(目的イベント): がん死
- 運命B(競合イベント): 心疾患死
- 運命C(生存/打ち切り): 追跡終了時点でまだ生存
CIF(がん死)とは、このパイのうち「運命A(がん死)に至った人」の割合(累積)を時系列で追ったものです。1-KM法は、運命B(心疾患死)の存在を無視して(打ち切りとして除外し)、運命A(がん死)の割合を計算しようとするため、パイ全体に対する割合ではなく、歪んだ(過大な)推定になってしまうのです。
- CIFの重要な特徴:
- 現実の発生確率を反映します:
CIFは、競合イベントBが現実の脅威として存在することを前提に、その中でイベントAがどれだけ発生したかを計算します。 - 全てのCIFの合計 = 全イベント発生率:
「がん死のCIF」と「心疾患死のCIF」を足し合わせたものは、何らかの理由で死亡した人の総割合を示します。競合リスクが多ければ、当然、目的のイベント(がん死)のパイの取り分は小さくなります。 - 競合リスクが多いほど、CIFは低く抑えられる:
カプラン=マイヤー法(\(1-KM\))とは対照的に、CIF(がん死)は、競合イベント(心疾患死)が多ければ多いほど、その値は低く(現実に即して)抑えられます。
- 現実の発生確率を反映します:
したがって、臨床現場での予後予測、例えば「A群とB群で、5年後までに “実際に” がん死する確率は何%か?」という問いに答えるためには、私たちは \(1-KM\) という仮想的な数字ではなく、この CIF を計算して比較しなければならないのです。
解決策②:Fine-Grayモデル – CIF(累積発生確率)に影響する要因を探る
CIFを使えば、「現実のがん死の確率(5年で20%)」が計算できることは分かりました。
では、次に私たちが知りたいのは、「そのCIF(現実のがん死確率)を、新薬や年齢、病期といった要因が、どれだけ増減させるのか?」ということです。
例えば、標準的なCoxモデル(原因別ハザード)では、「新薬は “がん死の瞬間の危険度” を30%減らす(HR=0.7)」という結果が出たとします。
しかし、もしその新薬が「”心疾患死”(競合リスク)を50%も増やしてしまう」という副作用を持っていたらどうでしょう?
瞬間の危険度は下がっても、多くの患者さんが競合イベントで亡くなってしまうため、「実際にがん死する確率(CIF)」は期待したほど下がらないかもしれません。
このように、競合リスクが存在する状況で、最終的な「CIF(累積発生確率)」そのものに与える影響を正しく推定するために開発された回帰モデルが、「Fine-Grayモデル」です (Fine and Gray, 1999)。
Coxモデルが「原因別ハザード」という「瞬間の危険度」をモデル化したのに対し、Fine-Grayモデルは「サブディストリビューション・ハザード (Subdistribution Hazard)」という、CIFに直接結びつく特殊なハザードをモデル化します。
Fine-Grayモデルの「特殊なトリック」
この「サブディストリビューション・ハザード」は、少し巧妙なトリックを使っています。
- 標準的なCoxモデル(原因別):
「心疾患死」(競合イベント)した人は、その瞬間に「打ち切り」として扱われ、リスクセット(分母)から除外されます。 - Fine-Grayモデル(サブ分布):
「心疾患死」(競合イベント)した人を、リスクセット(分母)から除外しません。あたかも「まだ “がん死” するリスクに晒され続けている」かのように、仮想的にリスクセットに居座らせます。
なぜこんな奇妙なことをするのでしょうか?
競合イベントで亡くなった人を分母に「居座らせる」ことで、彼らが本来がん死するはずだった “パイ” を奪っていったという事実を、モデルの計算(分母の大きさ)に反映させることができるからです。
この「競合リスクを考慮した特殊なリスクセット」に対するハザードを計算するからこそ、このモデルはCIF(現実の累積発生確率)への影響を直接推定できるのです。
- 目的:
競合リスク(パイの奪い合い)を考慮した上で、共変量(新薬、年齢など)が「CIF(最終的ながん死のパイの取り分)」に与える影響(倍率)を推定すること。 - 解釈:
このモデルから得られるハザード比は、SHR (Subdistribution Hazard Ratio) と呼ばれ、CoxのHRとは区別されます。このSHRは、予後予測の観点で非常に直感的な解釈を提供してくれます。- 例:SHR = 0.7
「他の要因(年齢、病期)の影響を調整した上で、この新薬を使用すると、“がん死” と診断される累積確率(CIF)が、プラセボ群に比べて0.7倍になる(30%減少する)」
- 例:SHR = 0.7
これは、「瞬間の危険度」ではなく、「最終的な累積発生率」がどうなるか、という臨床現場の知りたい問いに、より直接的に答えてくれる指標と言えるでしょう。
(補足)原因別ハザード vs サブディストリビューション・ハザード
競合リスク分析には、実は2つの主要なアプローチがあり、臨床的な「問い」によって使い分ける必要があります (Lau et al., 2007)。
先ほどの「パイの運命」の例えを思い出してください。患者さんの運命は3つに分かれます。
- 運命A(目的イベント): がん死
- 運命B(競合イベント): 心疾患死
- 運命C(生存/打ち切り): 追跡中
この2つのアプローチは、「どの “問い” に答えたいか」によって、運命B(心疾患死)の扱い方が根本的に異なります。
- 原因別ハザード (Cause-Specific Hazard) モデル
- 方法: 非常にシンプルです。
- 運命A(がん死)だけを「イベント (1)」として扱います。
- 運命B(心疾患死)と運命C(生存)を、両方とも「打ち切り (0)」として扱います。
- そして、標準的なCoxモデルをそのまま使います。
- 問い: 「”もし心疾患死という運命Bが存在しなかったら”、その瞬間の『がん死(運命A)の危険度(瞬間の力)』自体に、新薬はどう影響するか?」
- 適応:病因論(Etiology)、つまり「なぜ」そのイベントが起こるのか、そのメカニズム(瞬間のリスク)に興味がある場合に適しています。
- (例:「喫煙は、 “がん死” のハザード(瞬間の危険度)そのものを高めるか?」を知りたい。この問いは、その人が心疾患で死ぬかどうかとは別のメカニズムの問いです。)
- 方法: 非常にシンプルです。
- サブディストリビューション・ハザード (Fine-Gray) モデル
- 方法: Fine-Grayモデルを使います。
- 運命A(がん死)を「イベント (1)」とします。
- 運命C(生存)を「打ち切り (0)」とします。
- 運命B(心疾患死)の人を、「打ち切り」ではなく、”がん死のリスクに晒され続ける” 特別な集団として分母に残します(前のセクションで解説したトリックです)。
- 問い: 「運命B(心疾患死)との “パイの奪い合い” も含めた現実世界で、『実際にがん死(運命A)する累積確率(CIF)』に、新薬は最終的にどう影響するか?」
- 適応:予後予測(Prognosis)、つまり「どうなるか」という実際の確率(最終的なパイの取り分、CIF)に興味がある場合に適しています。
- (例:「この新薬を使ったら、5年後の “がん死のパイの割合” は、”心疾患死のパイの割合” と比べて、どう変わるか?」)
- 方法: Fine-Grayモデルを使います。
どちらが正しいというわけではなく、あなたの研究の「問い」が「病因論(なぜ)」なのか、「予後予測(どうなるか)」なのかによって、使うべきモデルが変わってくるのです (Lau et al., 2007)。
臨床的な予測モデルとしては、「最終的にどうなるか」が重要なので、Fine-Grayモデル(CIF)がより適切な解釈を提供することが多いでしょう。
発展的トピック③:モデルの性能評価 – その「予測」は本当に信頼できるか?
さて、私たちはこれまでに、カプラン=マイヤー法で曲線を描き、ログランク検定で群間差を調べ、さらにCoxモデルやAFTモデルいった高度な回帰分析を学びました。
例えば、Coxモデルを使って「年齢」「病期」「治療法」から、ある患者さんの「5年生存ハザード」を予測するモデルを構築したとします。モデルは立派なハザード比(HR)とp値を返してくれました。
では、それで終わりでしょうか?
もちろん、違います。モデルは「作った」だけでは何の役にも立ちません。私たちは、そのモデルが「どれだけうまく予測できているか」、つまりモデルの「性能 (Performance)」を厳密に評価する必要があります。予測の“精度”が分からなければ、そのモデルを臨床現場で使うことなどできませんよね。
モデルの性能評価は、大きく分けて2つの側面から行われます。
- 識別能 (Discrimination): 「順序」を正しく当てられるか?
- 較正 (Calibration): 「確率」そのものが現実に近いか?
この2つは全く異なる概念であり、両方が揃って初めて「良いモデル」と言えます。
1. 識別能 (Discrimination) – リスクの順序付け能力
識別能とは、「イベントが早く起こる人(高リスク)」と「イベントが遅く起こる人(低リスク)」を、モデルが正しく見分け、順序付けできる能力を指します。
例えば、Aさん(実際には3年で再発)とBさん(実際には10年生存)の2人がいたとして、モデルがAさんにより高いリスクスコア(悪い予測)を与え、Bさんにより低いリスクスコア(良い予測)を与えることができれば、「識別能が高い」と言えます。
C-index (Harrell’s C)
この識別能を測る最も標準的な指標が、C-index (Concordance Index)、特にHarrellのC統計量と呼ばれるものです (Harrell, 2015)。
- 本質: 生存時間データにおけるAUC(ROC曲線下面積)の親戚のようなものです。
- 解釈: 「ランダムに選んだ2人の患者(比較可能なペア)のうち、先にイベントが起こる人を正しく言い当てられる確率」と解釈できます。
- C-index = 1.0: 完璧な予測(順序を100%当てられる)。
- C-index = 0.5: 完全にランダム(コイン投げと同じ、全く役に立たない)。
- C-index = 0.8: 80%の確率で、高リスク/低リスクの順序を正しく当てられる、非常に良いモデル。
- 打ち切りの扱い: C-indexの計算は、打ち切りデータも賢く扱います。例えば、Aさん(5年で打ち切り)とBさん(3年でイベント発生)のペアは、5年時点でAさんが無事だったことが分からっているので「比較可能」と見なされます。
- 限界: C-indexは非常に便利ですが、あくまで「全追跡期間を通した平均的な識別能」を示します。
時間依存AUC (Time-dependent AUC)
C-indexの「平均的な識別能」という限界を克服するために、時間依存AUCという指標が使われることがあります。
- なぜ必要か?: モデルの予測性能は、時間と共に変化するかもしれません。例えば、術直後(1ヶ月以内)の死亡を予測するのは得意(AUC=0.9)だが、5年後の長期的な生存を予測するのは苦手(AUC=0.6)といった場合です。C-indexはこれを「平均」してしまうため、こうした時間的な特徴を見逃します。
- 解釈: 時間依存AUCは、「特定の時点 \(t\)(例:5年時点)で生存しているか否か」を、その時点までに得られた情報でどれだけ正確に予測できるか、を評価します (Heagerty and Zheng, 2005; Gerds and Schumacher, 2006)。
- 臨床的意義: 「短期予測」と「長期予測」でモデルの強さが違うかもしれない、という臨床的に重要な洞察を与えてくれます。
2. 較正 (Calibration) – 予測確率の「現実度」
識別能(C-index)が「順序」の問題だったのに対し、較正(キャリブレーション)は「予測された確率(数値)そのものが、現実とどれだけ一致しているか」という問題です。
これは、識別能と同じくらい(あるいはそれ以上に)臨床的に重要です。
- 例: あるモデルのC-indexが0.8と非常に高いとします。しかし、このモデルが予測する「5年生存確率」が、実際よりも常に2倍甘い(例:本当は30%なのに「60%」と予測する)としたらどうでしょう?
(識別能は「順序」なので、全員の予測値を2倍にしても順序は変わらず、C-indexは高いままなのです) - このようなモデルは、リスクの順序付けはできても、実際の確率が現実とズレているため、臨床的な意思決定(例:「生存率60%なら手術を推奨しよう」)に使うと、深刻なエラーを引き起こします。
「モデルが『5年生存率30%』と予測した患者群を集めてきたら、本当にその(約)30%が5年後に生存しているか?」— これが較正の問いです。これを視覚的に確認するのがCalibration Plot(較正プロット)で、予測確率と実際の発生確率が45度線上に乗っていれば「較正が取れている」と言えます。
時間依存Brierスコア (Time-dependent Brier Score)
この較正の「ズレ」を数値化する代表的な指標が、Brierスコアです (Graf et al., 1999)。
- 本質: 特定の時点 \(t\)(例:5年)における、「モデルの予測確率(例:0.3)」と「実際のイベント(生存=0, イベント発生=1)」との間の「ズレの二乗(平均二乗誤差)」です。
- 解釈:
- 0に近いほど良い(ズレが小さい=完璧な予測)。
- 最悪の値は、予測対象のイベント発生率によりますが、例えば50%のイベント発生率なら0.25(コイン投げ)になります。
- Brierスコアは、識別能と較正の両方の側面を同時に反映する、厳格な評価指標です。
モデルを構築したら、C-index(識別能)の高さに満足するだけでなく、必ずBrierスコアや較正プロット(較正)も確認し、そのモデルが「順序」と「確率」の両方で信頼に足るものかを検証する癖をつけましょう。
まとめ:時間を味方につける統計学
今回のセッション、C25「生存時間分析」の旅も、これで一区切りです。私たちは、単に「イベントが起きたか(1/0)」だけでなく、「いつ(Time)」それが起きるか、という時間軸を統計モデルに組み込む、非常に強力な手法群を学びました。
この分野の核心は、「打ち切り(Censoring)」や「切断(Truncation)」といった、臨床研究にはつきものの「不完全なデータ」を、欠損として捨て去るのではなく、「その時点までは無事だった」という貴重な情報として最大限に活用する点にあります。
基本:現象を捉える「3つの視点」
まず、時間とリスクを捉えるための基本的な「ものさし」を学びました。
- 生存関数 \(S(t)\): 「集団のバッテリー残量」。時間 \(t\) を超えて生存している累積的な確率 (Kaplan and Meier, 1958)。
- ハザード関数 \(h(t)\): 「瞬間の危険度」。\(t\) 時点で生存している人が、次の瞬間にイベントを経験する「率」。
この2つは \( S(t) = \exp(-\int h(t) dt) \) という強固な数学的関係で結ばれていましたね。
可視化と検定:差を見る「基本ツール」
次に、これらの概念をデータから描き出し、比較するツールを学びました。
- カプラン=マイヤー(KM)法: 打ち切りを公正に扱い、あの「階段状」の生存曲線 \(\hat{S}(t)\) を可視化する、ノンパラメトリックな標準手法です (Kaplan and Meier, 1958)。
- ログランク検定: 2群(例:新薬 vs プラセボ)の生存曲線全体を比較し、「差があるか」をp値で示すための検定です (Mantel, 1966; Peto and Peto, 1972)。
回帰モデル:真の「要因」を探る
しかし、「差があるか」だけでは不十分です。「年齢」や「病期」といった交絡因子の影響を排除し、「差の大きさ(効果量)」を知る必要があります。
そのための主力が「Cox比例ハザードモデル」です (Cox, 1972)。このセミパラメトリックな回帰モデルは、多変量の影響を「調整」した上で、特定の要因(例:治療法)がハザード(瞬間の危険度)を何倍にするか、という「ハザード比(HR)」を推定してくれます。
発展:現実の「複雑さ」に対応する
Coxモデルは強力ですが、万能ではありません。現実の複雑なデータに対応するため、私たちはさらに高度な武器を手に入れました。
- 重要チェック(PH仮定): Coxモデルは「ハザード比(HR)が時間を通じて一定である」という「比例ハザード性の仮定」に依存しています。これはSchoenfeld残差検定などで必ず確認しなければなりません (Schoenfeld, 1982)。
- もしPH仮定が破れたら: 慌てる必要はありません。
- (a) 時間依存性共変量を使い、Coxモデル自体を拡張して「時間で変化するHR」を推定する (Fisher and Lin, 1999)。
- (b) 視点を変え、「時間の倍率」を推定するパラメトリックなAFTモデル(加速寿命モデル)に切り替える (Wei, 1992)。
- もし「競合リスク」があったら: 「がん死」と「心疾患死」のようにイベントが奪い合いをする場合、KM法も標準Coxモデルも使ってはいけません。
- (a) 現実の発生確率を見る「CIF(累積発生関数)」を計算します。
- (b) CIFに影響する要因を探る「Fine-Grayモデル」を用います (Fine and Gray, 1999; Austin et al., 2016)。
- もし「モデルの性能」を評価したいなら: モデルを作って終わり、は許されません。
- (a) 順序付けの能力(識別能)を「C-index」で評価します (Harrell, 2015)。
- (b) 予測確率の現実性(較正)を「Brierスコア」などで評価します (Graf et al., 1999)。
これらの手法群—KM法からCoxモデル、AFT、競合リスク、そしてモデル評価まで—を正しく理解し、データと臨床的な「問い」に応じて適切に使い分けること。それこそが、臨床研究のデータを深く、かつバイアスなく読み解き、最終的に患者さんの利益につながる、信頼性の高い医療の意思決定を支える鍵となります (Clark et al., 2003; George et al., 2014)。
参考文献
- Aalen, O. (1978) ‘Nonparametric inference for a family of counting processes’, The Annals of Statistics, 6(4), pp. 701-726.
- Austin, P.C., Lee, D.S. & Fine, J.P. (2016) ‘Introduction to the analysis of survival data in the presence of competing risks’, Circulation, 133(6), pp. 601-609.
- Bradburn, M.J., Clark, T.G., Love, S.B. & Altman, D.G. (2003) ‘Survival analysis part II: multivariate data analysis–choosing a model and assessing its adequacy and fit’, British Journal of Cancer, 89(3), pp. 431-436.
- Clark, T.G., Bradburn, M.J., Love, S.B. & Altman, D.G. (2003) ‘Survival analysis part I: basic concepts and first analyses’, British Journal of Cancer, 89(2), pp. 232-238.
- Cox, D.R. (1972) ‘Regression models and life-tables’, Journal of the Royal Statistical Society: Series B (Methodological), 34(2), pp. 187-202.
- Fisher, L.D. & Lin, D.Y. (1999) ‘Time-dependent covariates in the Cox proportional hazards regression model’, Annual Review of Public Health, 20, pp. 145-157.
- Fine, J.P. & Gray, R.J. (1999) ‘A proportional hazards model for the sub-distribution of a competing risk’, Journal of the American Statistical Association, 94(446), pp. 496-509.
- Gehan, E.A. (1965) ‘A generalized Wilcoxon test for comparing arbitrarily singly-censored samples’, Biometrika, 52(1-2), pp. 209-226.
- George, B., Seals, S. & Aban, I. (2014) ‘Survival analysis and regression models’, Journal of Nuclear Cardiology, 21(4), pp. 686-694.
- Gerds, T.A. & Schumacher, M. (2006) ‘Consistent estimation of the expected Brier score in general survival models with right-censored data’, Biometrical Journal, 48(6), pp. 1029-1040.
- Graf, E., Schmoor, C., Sauerbrei, W. & Schumacher, M. (1999) ‘Assessment and comparison of prognostic classification schemes for survival data’, Statistics in Medicine, 18(17-18), pp. 2529-2545.
- Harrell, F.E. Jr. (2015) Regression modeling strategies: with applications to linear models, logistic and ordinal regression, and survival analysis. 2nd edn. Springer.
- Heagerty, P.J. & Zheng, Y. (2005) ‘Survival model predictive accuracy and ROC curves’, Biometrics, 61(1), pp. 92-105.
- Kaplan, E.L. & Meier, P. (1958) ‘Nonparametric estimation from incomplete observations’, Journal of the American Statistical Association, 53(282), pp. 457-481.
- Lau, B., Cole, S.R. & Gange, S.J. (2007) ‘Competing risk regression models for epidemiologic data’, American Journal of Epidemiology, 165(5), pp. 509-519.
- Mantel, N. (1966) ‘Evaluation of survival data and two new rank order statistics arising in its consideration’, Cancer Chemotherapy Reports, 50(3), pp. 163-170.
- Peto, R. & Peto, J. (1972) ‘Asymptotically efficient rank invariant test procedures’, Journal of the Royal Statistical Society: Series A (General), 135(2), pp. 185-198.
- Schoenfeld, D. (1982) ‘Partial residuals for the proportional hazards regression model’, Biometrika, 69(1), pp. 239-241.
- Spruance, S.L., Reid, J.E., Grace, M. & Samore, M. (2004) ‘Hazard ratio in clinical trials’, Antimicrobial Agents and Chemotherapy, 48(8), pp. 2787-2792.
- Wei, L.J. (1992) ‘The accelerated failure time model: a useful alternative to the Cox regression model in survival analysis’, Statistics in Medicine, 11(14-15), pp. 1871-1879.
- Collett, D. (2015) Modelling survival data in medical research. 3rd edn. CRC Press.
※本記事は情報提供を目的としたものであり、特定の治療法を推奨するものではありません。健康に関するご懸念やご相談は、必ず専門の医療機関にご相談ください。
ご利用規約(免責事項)
当サイト(以下「本サイト」といいます)をご利用になる前に、本ご利用規約(以下「本規約」といいます)をよくお読みください。本サイトを利用された時点で、利用者は本規約の全ての条項に同意したものとみなします。
第1条(目的と情報の性質)
- 本サイトは、医療分野におけるAI技術に関する一般的な情報提供および技術的な学習機会の提供を唯一の目的とします。
- 本サイトで提供されるすべてのコンテンツ(文章、図表、コード、データセットの紹介等を含みますが、これらに限定されません)は、一般的な学習参考用であり、いかなる場合も医学的な助言、診断、治療、またはこれらに準ずる行為(以下「医行為等」といいます)を提供するものではありません。
- 本サイトのコンテンツは、特定の製品、技術、または治療法の有効性、安全性を保証、推奨、または広告・販売促進するものではありません。紹介する技術には研究開発段階のものが含まれており、その臨床応用には、さらなる研究と国内外の規制当局による正式な承認が別途必要です。
- 本サイトは、情報提供を目的としたものであり、特定の治療法を推奨するものではありません。健康に関するご懸念やご相談は、必ず専門の医療機関にご相談ください。
第2条(法令等の遵守)
利用者は、本サイトの利用にあたり、医師法、医薬品、医療機器等の品質、有効性及び安全性の確保等に関する法律(薬機法)、個人情報の保護に関する法律、医療法、医療広告ガイドライン、その他関連する国内外の全ての法令、条例、規則、および各省庁・学会等が定める最新のガイドライン等を、自らの責任において遵守するものとします。これらの適用判断についても、利用者が自ら関係各所に確認するものとし、本サイトは一切の責任を負いません。
第3条(医療行為における責任)
- 本サイトで紹介するAI技術・手法は、あくまで研究段階の技術的解説であり、実際の臨床現場での診断・治療を代替、補助、または推奨するものでは一切ありません。
- 医行為等に関する最終的な判断、決定、およびそれに伴う一切の責任は、必ず法律上その資格を認められた医療専門家(医師、歯科医師等)が負うものとします。AIによる出力を、資格を有する専門家による独立した検証および判断を経ずに利用することを固く禁じます。
- 本サイトの情報に基づくいかなる行為によって利用者または第三者に損害が生じた場合も、本サイト運営者は一切の責任を負いません。実際の臨床判断に際しては、必ず担当の医療専門家にご相談ください。本サイトの利用によって、利用者と本サイト運営者の間に、医師と患者の関係、またはその他いかなる専門的な関係も成立するものではありません。
第4条(情報の正確性・完全性・有用性)
- 本サイトは、掲載する情報(数値、事例、ソースコード、ライブラリのバージョン等)の正確性、完全性、網羅性、有用性、特定目的への適合性、その他一切の事項について、何ら保証するものではありません。
- 掲載情報は執筆時点のものであり、予告なく変更または削除されることがあります。また、技術の進展、ライブラリの更新等により、情報は古くなる可能性があります。利用者は、必ず自身で公式ドキュメント等の最新情報を確認し、自らの責任で情報を利用するものとします。
第5条(AI生成コンテンツに関する注意事項)
本サイトのコンテンツには、AIによる提案を基に作成された部分が含まれる場合がありますが、公開にあたっては人間による監修・編集を経ています。利用者が生成AI等を用いる際は、ハルシネーション(事実に基づかない情報の生成)やバイアスのリスクが内在することを十分に理解し、その出力を鵜呑みにすることなく、必ず専門家による検証を行うものとします。
第6条(知的財産権)
- 本サイトを構成するすべてのコンテンツに関する著作権、商標権、その他一切の知的財産権は、本サイト運営者または正当な権利を有する第三者に帰属します。
- 本サイトのコンテンツを引用、転載、複製、改変、その他の二次利用を行う場合は、著作権法その他関連法規を遵守し、必ず出典を明記するとともに、権利者の許諾を得るなど、適切な手続きを自らの責任で行うものとします。
第7条(プライバシー・倫理)
本サイトで紹介または言及されるデータセット等を利用する場合、利用者は当該データセットに付随するライセンス条件および研究倫理指針を厳格に遵守し、個人情報の匿名化や同意取得の確認など、適用される法規制に基づき必要とされるすべての措置を、自らの責任において講じるものとします。
第8条(利用環境)
本サイトで紹介するソースコードやライブラリは、執筆時点で特定のバージョンおよび実行環境(OS、ハードウェア、依存パッケージ等)を前提としています。利用者の環境における動作を保証するものではなく、互換性の問題等に起因するいかなる不利益・損害についても、本サイト運営者は責任を負いません。
第9条(免責事項)
- 本サイト運営者は、利用者が本サイトを利用したこと、または利用できなかったことによって生じる一切の損害(直接損害、間接損害、付随的損害、特別損害、懲罰的損害、逸失利益、データの消失、プログラムの毀損等を含みますが、これらに限定されません)について、その原因の如何を問わず、一切の法的責任を負わないものとします。
- 本サイトの利用は、学習および研究目的に限定されるものとし、それ以外の目的での利用はご遠慮ください。
- 本サイトの利用に関連して、利用者と第三者との間で紛争が生じた場合、利用者は自らの費用と責任においてこれを解決するものとし、本サイト運営者に一切の迷惑または損害を与えないものとします。
- 本サイト運営者は、いつでも予告なく本サイトの運営を中断、中止、または内容を変更できるものとし、これによって利用者に生じたいかなる損害についても責任を負いません。
第10条(規約の変更)
本サイト運営者は、必要と判断した場合、利用者の承諾を得ることなく、いつでも本規約を変更することができます。変更後の規約は、本サイト上に掲載された時点で効力を生じるものとし、利用者は変更後の規約に拘束されるものとします。
第11条(準拠法および合意管轄)
本規約の解釈にあたっては、日本法を準拠法とします。本サイトの利用および本規約に関連して生じる一切の紛争については、東京地方裁判所を第一審の専属的合意管轄裁判所とします。
For J³, may joy follow you.

