Top 5 This Week

関連記事

【医療統計版】16. Fine-Grayモデル:サブ分布ハザードは何を推定しているか

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

競合リスクで見たとおり、累積発生関数は競合事象の起きやすさにも左右されます。では、その累積発生関数を共変量で説明したいときはどうするか。原因別ハザードにCox回帰を当てても、得られるのは「まだどの事象も起きていない人のなかでの速さ」であって、最終的に何割が到達するかではありません。

Fine and Gray(1999)が提案したのは、累積発生関数に直接対応するハザードを定義し、そこにCox型のモデルを載せる方法です。これをサブ分布ハザードと呼びます。

死んだ人をリスク集合に残す

サブ分布ハザードの定義は次の形です。

$$\tilde{h}_k(t) = \lim_{\Delta t \to 0} \frac{P(t \le T < t+\Delta t,\ K = k \mid T \ge t \ \textrm{または} \ (T < t \ \textrm{かつ} \ K \ne k))}{\Delta t} \tag{1}$$

式(1)の条件部分が独特です。「まだ事象が起きていない人」に加えて、「既に競合事象を起こした人」もリスク集合に含めます。進展前に亡くなった患者を、その後も進展の候補者として数え続けるということです。

4名の追跡を並べた模式図を2枚。左の原因別ハザードでは競合事象で死亡した患者は時点tのリスク集合から外れるが、右のサブ分布ハザードでは死亡後もリスク集合に残り続ける。
図1 違いは患者Bだけです。左では時点$t$より前に亡くなったBはリスク集合から外れますが、右では残ります。打ち切りのCは両方で外れます。

臨床的には奇妙に見えます。亡くなった患者が骨髄腫に進展するリスクを持ち続ける、という状態は現実には存在しません。これは生物学的な設定ではなく、$\tilde{h}_k$を積分すると累積発生関数がそのまま出てくるように作られた計算上の仕掛けです。

$$F_k(t) = 1 – \exp\left(-\int_0^t \tilde{h}_k(u)\,du\right) \tag{2}$$

式(2)が成り立つので、$\tilde{h}_k$に比例ハザードモデルを置けば、係数がそのまま累積発生関数の違いに翻訳されます。原因別ハザードにはこの性質がありません。

実装はRのsurvivalパッケージで完結します。finegray関数が重み付きのデータセットを作り、それにcoxphを当てます。

library(survival)

fgdata <- finegray(Surv(etime, event) ~ ., data = m, etype = "pcm")
fit    <- coxph(Surv(fgstart, fgstop, fgstatus) ~ age10 + sex + mspike,
                weights = fgwt, data = fgdata)

重みfgwtは、競合事象を起こした人をリスク集合に残す期間を、打ち切り分布で調整するためのものです。1384行のデータが41775行に展開されます。行数が増えるので、大規模データでは計算時間とメモリに注意が要ります。

年齢だけ向きが逆転する

mgus2で、年齢・性別・M蛋白量を共変量にして両方のモデルを当てます。

#> 進展に対するハザード比        原因別        サブ分布
#> 年齢(10歳あたり)            1.18          0.85
#> 男性 vs 女性                  0.99          0.81
#> M蛋白(g/dLあたり)           2.42          2.43
#>
#> 死亡に対する原因別ハザード比
#> 年齢(10歳あたり)            1.92
#> M蛋白(g/dLあたり)           0.94
年齢・性別・M蛋白量について原因別ハザード比とサブ分布ハザード比を並べたフォレストプロット。年齢は1.18と0.85で1をまたいで向きが逆転している。
図2 年齢だけが1をまたいで逆転します。M蛋白量は2.42と2.43でほぼ一致します。

年齢の逆転は矛盾ではありません。高齢者は進展の速さ自体はわずかに速い(1.18)のですが、死亡のハザード比が1.92と大きく、進展する前に亡くなります。結果として、高齢者が進展に到達する割合は下がる(0.85)。2つの数字は別々の事実を述べています。

M蛋白量が一致する理由も同じ理屈です。この変数は死亡にほとんど影響しません(0.94)。競合事象を動かさない共変量では、2つのハザード比が近づきます。ここが判断の目安になります。ある共変量について両者が大きく食い違ったら、その共変量が競合事象に強く効いていると読めます。

Fine-Grayモデルから予測した55歳・75歳・85歳の進展の累積発生関数。高齢ほど低い曲線になっている。
図3 Fine-Grayモデルからは、共変量の値を指定した累積発生関数を直接描けます。25年時点で55歳は約12%、85歳は約8%。この形の予測が欲しいときに使うモデルです。

サブ分布ハザード比をどう書くか

解釈には注意が要ります。サブ分布ハザード比は「発生率の比」ではありません。分母に亡くなった人が含まれているので、疫学でいうレートの比として読むと誤ります。

言えるのは、累積発生関数への効果の向きと大きさです。「高齢であることは進展の累積発生を下げる方向に働く」までは書けます。「高齢者は進展しにくい」と書くと、進展の起きやすさそのものが低いように読めるので不正確です。実際には逆で、原因別ハザードは1.18でした。

私が原稿を確認するときは、サブ分布ハザード比を病因の議論に使っていないかを見ます。「この因子が疾患進展を抑制する」という主張の根拠がサブ分布ハザード比だけなら、原因別ハザードも併記するよう勧めます。逆に「この患者集団では10年でこれだけ進展する」という予測の文脈なら、サブ分布のほうが適合します。

もうひとつの実務的な注意点として、各事象について別々にFine-Grayモデルを当てると、予測された累積発生関数の合計が1を超えることがあります。モデルが互いの制約を知らないためです。全ての事象の予測を整合させたいなら、原因別ハザードのモデルを組み合わせて累積発生関数を構成する方法か、マルチステートモデルを使います。

絶対リスクを出す

Fine-Grayモデルの実用的な価値は、共変量の値を指定した累積発生関数を直接描けることにあります。図3がその形です。

臨床で使う場面を考えると、この予測が求められます。「78歳女性、M蛋白1.5g/dLの患者が、10年以内に骨髄腫を発症する確率」という問いには、ハザード比ではなく確率で答える必要があります。

原因別ハザードのモデルからも同じ予測は作れますが、手数が増えます。全ての事象について原因別ハザードを推定し、それらを組み合わせて累積発生関数を構成することになります。事象が2つなら現実的ですが、増えると煩雑です。Fine-Grayなら関心のある事象のモデル1本から直接出ます。

予測を報告するときは、点推定だけでなく区間も添えます。累積発生関数の信頼区間は、線形予測子のスケールで計算してから変換するのが標準です。survfit関数がこの処理を行います。

事象が3つ以上あるとき

競合事象が複数ある場合、Fine-Grayモデルは事象ごとに別々に当てることになります。骨髄腫への進展、他の血液腫瘍、他死因の3つなら、モデルが3本です。

この3本はそれぞれが独立に推定されるので、予測された3つの累積発生関数の合計が1を超えることがあります。確率として矛盾した予測になります。

実務上は、関心のある事象が1つに絞れるなら問題になりません。全ての事象の絶対リスクを整合的に出したいなら、原因別ハザードのモデルを組み合わせる方法か、マルチステートモデルを使います。後者は状態占有確率が定義上1に収まるので、この矛盾が起きません。

両方を報告するという選択

Latoucheら(J Clin Epidemiol 2013)は、競合リスクのある研究では原因別とサブ分布の両方を報告することを勧めています。私も同じ立場です。片方だけでは、図2のような逆転が起きているのか、それとも競合事象が効いていないだけなのかが読者に分かりません。

紙幅の制約があるなら、主要評価項目については研究の目的に合うほうを本文に、もう片方を補足資料に置きます。目的が病因なら原因別が本文、予後予測ならサブ分布が本文です。

報告に含めるのは、両方のハザード比と信頼区間、競合事象についての原因別ハザード比、そして事象ごとの件数です。競合事象のハザード比を載せると、逆転が起きている場合にその機序が読者に伝わります。

比例ハザード性の確認はサブ分布ハザードでも必要です。Schoenfeld残差による検定を展開後のデータに当てられますが、重み付きデータでの挙動には注意が要るので、累積発生関数を群別に描いて目視でも確かめることを勧めます。仮定が崩れているなら、層別するか、時点を区切って推定します。

重みが前提にしていること

finegray関数が計算する重みは、打ち切りの分布から作られます。競合事象を起こした人をいつまでリスク集合に残すかを、打ち切りの確率で調整するためです。

ここに仮定が入ります。既定の計算では、打ち切りが共変量と独立に起きると置いています。追跡からの脱落が年齢や重症度と関係している場合、この仮定は成り立ちません。高齢者ほど通院が途切れやすいコホートなら、重みが実態からズレます。

対処としては、打ち切りの分布を共変量ごとに推定する方法があります。finegrayにはid引数とetype以外に層を指定する仕組みがあり、打ち切り分布を層別に推定できます。打ち切り率が群間で明らかに違うなら、この形にするか、少なくとも打ち切り率を群別に報告して読者が判断できるようにします。

もうひとつ、標準誤差はロバスト分散で計算する必要があります。展開後のデータでは1人が複数行に現れるため、通常の分散では過小評価になります。coxphにcluster引数を渡すか、finegrayが返すid列を使います。

次に確かめること

競合リスクの基本的な考え方と累積発生関数の推定は競合リスクで扱いました。原因別ハザードにCox回帰を当てる手順はCox比例ハザードモデルと同じで、競合事象を打ち切りにするだけです。

複数の事象と中間状態を1つの枠組みで扱いたい場合はマルチステートモデルに進みます。Fine-Grayモデルは1つの事象の絶対リスクに焦点を絞った手法なので、状態間の移り変わりを記述したいならそちらが向いています。

原因別とサブ分布のどちらを主要解析に置くか、複数事象の予測をどう整合させるか。このあたりは研究目的と競合事象の頻度を見ないと決まりません。Dr.データサイエンスでは、こうした解析設計のご相談を承っています。

参考文献

Fine JP, Gray RJ. A proportional hazards model for the subdistribution of a competing risk. Journal of the American Statistical Association. 1999;94(446):496-509.

Latouche A, Allignol A, Beyersmann J, Labopin M, Fine JP. A competing risks analysis should report results on all cause-specific hazards and cumulative incidence functions. Journal of Clinical Epidemiology. 2013;66(6):648-653.

Austin PC, Fine JP. Practical recommendations for reporting Fine-Gray model analyses for competing risk data. Statistics in Medicine. 2017;36(27):4391-4400.

Andersen PK, Geskus RB, de Witte T, Putter H. Competing risks in epidemiology: possibilities and pitfalls. International Journal of Epidemiology. 2012;41(3):861-870.

Therneau TM, Crowson CS, Atkinson EJ. Multi-state models and competing risks. survival package vignette. 2024.

Popular Articles