Top 5 This Week

関連記事

【医療統計版】必要イベント数:検出力は症例数だけでは決まらない

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

生存時間アウトカムを扱う研究では、登録数は十分に見えるのに、解析用データセットのイベント数が想定よりずっと少ない、ということがあります。1,000例を集めた研究でも、追跡期間中に死亡や再発が観察されたのが200例であれば、検出力を支えているのはその200例です。生存時間解析の検定統計量は、打ち切りになった対象者からは効果の情報をほとんど受け取りません。ここを取り違えると、登録が順調に進んだ研究で、結果が出てから検出力の話を始めることになります。この回では、想定ハザード比と割付比から必要イベント数を計算し、そこから登録数と追跡期間へつなぐ順序を扱います。

登録数より先に決まる数字

読み終えた時にできるようになっていてほしいのは、次のことです。必要イベント数と必要症例数を別の量として扱えること。両側有意水準、目標検出力、想定ハザード比、割付比という4つの入力から、必要イベント数がどう決まるかを式で追えること。イベント割合を経由してイベント数を登録数へ翻訳できること。そして、計算結果を見た時に、どの入力の不確かさが結果を一番動かしているかを言えることです。

この記事で扱う設定値は、両側有意水準0.05、目標検出力0.80、想定ハザード比0.75で統一しています。ここでは、必要イベント数が各設定値によってどう変わり、登録数へどうつながるかを見ていきます。

症例数が増えても情報が増えない場合

ハザード比の推定に効いているのは、イベントが起きた各時点でのリスク集合の構成です。Cox比例ハザードモデルの部分尤度は、イベントが起きた時点ごとに1つの因子を持ちます。イベントが1件も起きなかった対象者は、他の人がイベントを起こした時点でリスク集合に居続けるという形でしか寄与しません。ログランク検定も同じで、期待イベント数と観測イベント数の差を時点ごとに足し上げる構造になっています。

そのため、追跡が短くて誰もイベントを起こさない研究では、症例数をいくら増やしても検定統計量の分散はほとんど小さくなりません。逆に、イベントが多く発生する集団では、登録数が中程度でも必要な情報が揃います。

なお、症例数は費用と時間の単位で、イベント数は情報の単位です。

必要イベント数を決める式

比例ハザード性を仮定し、対数ハザード比の推定量が正規近似できるとすると、必要イベント数は次の形になります。

$$d = \frac{\left(z_{1-\alpha/2} + z_{1-\beta}\right)^{2}}{\left(\log \theta\right)^{2}\, p\,(1-p)} \tag{1}$$

$d$は必要イベント数、$\alpha$は両側有意水準、$1-\beta$は目標検出力、$z_q$は標準正規分布の$q$分位点、$\theta$は想定ハザード比、$p$は治療群へ割り付ける割合です。式全体としては、対数ハザード比が0から離れているほど、また割付が均等に近いほど、必要なイベント数が減るという読み方になります。

1対1割付では$p=0.5$なので$p(1-p)=0.25$となり、分母がそのぶん小さくなって、よく引用される簡約形になります。

$$d = \frac{4\left(z_{1-\alpha/2} + z_{1-\beta}\right)^{2}}{\left(\log \theta\right)^{2}} \tag{2}$$

両側有意水準0.05、検出力0.80、ハザード比0.75を入れると、式(1)からも式(2)からも379.352という同じ値が出て、切り上げて380イベントになります。ここで注意が必要なのは、この380が症例数ではなく、解析時点までに観察されているイベントの数だという点です。

割付比を動かすと必要イベント数が増える

治療群を厚くしたい研究では、2対1の割付が選ばれることがあります。式(1)の$p$を$2/3$にすると$p(1-p)$は$0.222$まで下がり、必要イベント数は426.771、切り上げて427になります。1対1と比べて47イベント、率にして12%ほど多く必要になる計算です。

この増分をどう受け取るかは研究の目的によります。安全性データを治療群で多く集めたい、あるいは新規治療への割付を増やすことで登録を進めやすくしたい、という理由が先にあるなら、47イベント分の追加は支払う価値のある対価かもしれません。ただし、割付比を先に決めてしまい、必要イベント数の再計算をしないまま登録数だけを流用する、という順序は推奨しません。同じ380イベントで設計した研究に2対1の割付を後から当てはめると、実際の検出力は0.80を下回ります。

想定ハザード比を横軸、必要イベント数を対数目盛の縦軸に取った曲線。ハザード比が1に近づくほど必要イベント数が急激に増え、0.75の位置に380イベントの点が打たれている。
図1 1対1割付、両側有意水準0.05、検出力0.80のもとで必要になるイベント数。ハザード比0.75では380イベントだが、0.85付近まで効果を控えめに見積もると必要数は1,000を超える。縦軸は対数目盛。

図1で目を引くのは、右へ行くほど曲線が急に立ち上がることです。必要イベント数は$(\log\theta)^{2}$に反比例するので、想定効果を0.75から0.85へ控えめに変えただけで、必要イベント数は倍以上になります。想定ハザード比は、計算のなかで最も結果を動かす入力です。

イベント数を登録数へ翻訳する

必要イベント数が決まっても、それだけでは何人登録すればよいかは分かりません。そこで必要になるのが、追跡終了時点までに何割の対象者がイベントを起こすかという見込みです。この割合を$\psi$と書くと、必要登録数はおよそ$d/\psi$になります。

380イベントを目標にした場合、イベント割合が80%なら475例、60%なら634例、40%なら950例が必要になります。同じ効果を検出するための研究なのに、対象集団の予後の違いだけで登録数が2倍変わります。予後の良い集団を対象にすると、症例は集まりやすい一方で、必要な登録数はむしろ増えます。

追跡終了までにイベントを起こす対象者の割合を横軸、必要登録数を縦軸に取った曲線。割合が小さくなるほど必要登録数が跳ね上がり、0.40で950例、0.60で634例、0.80で475例の点が示されている。
図2 必要イベント数380を固定した時の、イベント割合ごとの必要登録数。曲線の左側では傾きが急で、イベント割合の見込みが0.05外れるだけで必要登録数が数十例動く。

イベント割合の見込みをどこから持ってくるかは、実際の解析でも迷う場面です。私なら、まず対象集団に近い先行研究のKaplan-Meier曲線から、計画している追跡期間に対応する生存割合を読み取ります。また、全体の中央生存期間だけを使うと、追跡の途中で打ち切られる分と、登録が期間内に分散して起きる分を落としてしまいます。

追跡期間を延ばすか、登録を増やすか

イベント割合は集団の予後だけで決まるものではなく、いつ解析するかにも左右されます。乱数で生成したデータで確かめてみます。2,000例を1対1に割り付け、対照群のハザードは中央生存期間24か月に対応する指数分布、治療群はそのハザード比0.75倍とし、登録は24か月にわたって一様に起きるとした設定です。

この設定で研究開始から36か月の時点を見ると、イベントが観察されているのは45.55%、人数にして911例でした。380イベントという目標に対しては、この時点で既に十分な情報が集まっています。逆に言えば、この予後の集団で380イベントを得るために2,000例は要らなかったことになります。

研究開始からの月数を横軸、観察されたイベント数を縦軸に取った折れ線。ランダムに生成した2,000例のデータで、36か月時点に911イベントの点が打たれ、380イベントの水準を示す水平の破線がはるか下方にある。
図3 ランダムに生成した2,000例のデータで、イベントが積み上がっていく様子。破線は必要イベント数380の水準を表す。曲線は時間とともに寝ていくので、追跡を延ばして稼げるイベント数は後半ほど少なくなる。

図3の曲線が後半で寝ていくところが、設計上の判断に関わります。イベントの発生はリスク集合が減るにつれて鈍るので、追跡期間の延長で得られるイベント数は逓減します。目標イベント数まであと少しという状況では追跡の延長が効きますが、大きく不足している状況では、追跡を1年延ばすより登録を増やす方が届きやすくなります。Lachin and Foulkes(1986)が扱ったのは、まさにこの登録の分散と脱落を式に組み込む問題です。

仮定が外れた時に何が動くか

ここまでの結果は、比例ハザード性、指数的なイベント発生、脱落なし、という仮定の上に載っています。そこで、仮定が外れた時に何が起きるかを、外れる方向ごとに見ておく必要があります。

真のハザード比が想定より1に近い場合、検出力の低下は式(1)から直接読めます。ハザード比0.75で設計した研究の真の効果が0.85だったとすると、必要イベント数は380では足りず、実際に得られる検出力は0.80を下回ります。一方、追跡途中の脱落が増えた場合は、必要イベント数そのものは変わりません。変わるのはイベント割合$\psi$で、その結果として必要登録数が増えます。この2種類の外れ方は対処が異なるので、区別して考えます。

効果が時間とともに変わる場合は、話が難しくなります。治療効果が遅れて現れるような状況では、比例ハザード性が破れ、単一のハザード比で設計した必要イベント数の意味が薄れます。この場合の必要イベント数は式(1)では計算できないので、想定した効果の時間パターンを置いたシミュレーションで検出力を評価することになります。エンドポイントの定義で扱った打ち切り規則の違いも、ここに効いてきます。同じ研究でも、規則が変われば数え上げられるイベントの数と発生時期が変わるためです。

論文と計画書にどう書くか

報告の場面で読者が確かめたいのは、算出された数字だけではなく、そこへ至る入力値と根拠です。想定ハザード比の出どころ、割付比、両側か片側か、有意水準と検出力、そして必要イベント数と必要登録数の関係。これらが書いてあれば、読者は自分が扱う集団に数字を当てはめ直せます。一方、サンプルサイズの記述が登録数と検出力だけで終わっていると、後から読んだ人には、どの想定効果を置いた設計なのかが復元できません。

誤用として文献で指摘されているのは、必要イベント数を計算せずに、経験則の症例数だけで設計を進めてしまう形です。Freedman(1982)が表を与えたのも、ログランク検定の必要イベント数を計算せずに人数だけで判断することを避けるためでした。共変量を含むモデルで設計する場合は、Hsieh and Lavori(2000)が示した、他の共変量による説明の分だけ必要イベント数が増える補正を使います。連続量の予測因子を主要な関心とする研究では、この補正の有無で必要数がかなり変わります。

報告済みの研究を後から読む時にも、同じ枠組みが使えます。予測モデルの検証で扱ったイベント数と変数の関係と同じで、報告された検出力が実際のイベント数と整合しているかは、式(1)に数字を戻せば確かめられます。

Rで確認する

式(1)をそのまま関数にして、1対1割付と2対1割付の必要イベント数を計算します。使うのはbase Rとstatsだけです。

alpha <- 0.05
power <- 0.80
hazard_ratio <- 0.75
required_events <- function(proportion_treatment) {
  (qnorm(1 - alpha / 2) + qnorm(power))^2 /
    (log(hazard_ratio)^2 * proportion_treatment * (1 - proportion_treatment))
}
round(required_events(0.50), 3)
round(required_events(2 / 3), 3)
#> [1] 379.352
#> [1] 426.771

読み方は単純で、前者が1対1割付、後者が2対1割付で必要になるイベント数です。読み違えやすいのは切り上げの扱いで、379.352を380に切り上げると検出力はわずかに上振れします。次のコードで登録数と、切り上げ後のイベント数から逆算した検出力を求めます。

events_equal <- ceiling(required_events(0.50))
event_fraction <- c(0.40, 0.60, 0.80)
ceiling(events_equal / event_fraction)
round(pnorm(sqrt(events_equal * 0.25) * abs(log(hazard_ratio)) -
  qnorm(1 - alpha / 2)), 4)
#> [1] 950 634 475
#> [1] 0.8007

逆算した検出力0.8007は目標の0.80をわずかに上回っており、式(1)と検出力の式が互いに逆になっていることの確認になります。ここが0.80を下回るようなら、切り上げの方向か割付の割合を書き間違えていると判断できます。図2は、この登録数の計算を割合の連続値へ広げたものです。

plot(seq(0.20, 0.95, by = 0.005), events_equal / seq(0.20, 0.95, by = 0.005),
  type = "l", xlab = "Expected proportion with an event", ylab = "Required number enrolled")

最後に、乱数で生成したデータで36か月時点のイベント割合を確かめます。

set.seed(42)
participants <- 2000
baseline_hazard <- log(2) / 24
treatment <- rep(c(0, 1), each = participants / 2)
entry_month <- runif(participants, min = 0, max = 24)
event_time <- rexp(participants, rate = baseline_hazard * hazard_ratio^treatment)
round(mean(event_time <= 36 - entry_month), 4)
#> [1] 0.4555

0.4555という値は、この設定と乱数の下で36か月時点までに観察されたイベントの割合です。設計段階でイベント割合を0.40と見込んでいたなら、実際はやや多めにイベントが出ていたことになります。ただし、これは1回分の乱数で得た値なので、この割合そのものを一般的な見込みとして使うことはできません。イベント割合の不確かさを評価したいなら、同じ生成を何度も繰り返して分布を見ることになります。

必要イベント数を決める前に確かめること

生存時間アウトカムの研究で検出力を左右するのは、集めた人数ではなく、解析時点までに観察されたイベントの数です。必要イベント数は想定ハザード比、割付比、有意水準、検出力の4つで決まり、登録数はそこにイベント割合の見込みを通してから初めて出てきます。順序を逆にして登録数から入ると、想定効果の設定がどこにも残らないまま研究が進みます。

自分の研究で確かめるなら、まず4つの入力を書き出し、式(1)に入れて必要イベント数を出し、次に追跡期間に対応するイベント割合を先行研究から読み取って登録数へ変換する、という順に手を動かすのが早いはずです。想定ハザード比を0.05刻みで動かして必要イベント数がどう変わるかも一緒に見ておくと、その研究がどれくらい仮定に依存しているかが数字で分かります。

ここまで読んで、では自分のデータではイベント割合をどう見積もればよいのか、と思われた方もいるかもしれません。実際には、先行研究の生存曲線、登録の進み方、脱落の見込み、そして解析計画に書いた解析時点までを合わせて考えることになります。Dr.データサイエンスでは、こうした解析方針のご相談を承っています。

参考文献

  1. Schoenfeld DA. Sample-size formula for the proportional-hazards regression model. Biometrics. 1983;39(2):499-503.
  2. Freedman LS. Tables of the number of patients required in clinical trials using the logrank test. Statistics in Medicine. 1982;1(2):121-129.
  3. Schoenfeld DA, Richter JR. Nomograms for calculating the number of patients needed for a clinical trial with survival as an endpoint. Biometrics. 1982;38(1):163-170.
  4. Lachin JM, Foulkes MA. Evaluation of sample size and power for analyses of survival with allowance for nonuniform patient entry, losses to follow-up, noncompliance, and stratification. Biometrics. 1986;42(3):507-519.
  5. Hsieh FY, Lavori PW. Sample-size calculations for the Cox proportional hazards regression model with nonbinary covariates. Controlled Clinical Trials. 2000;21(6):552-560.

前の記事:エンドポイントの定義:PFSは打ち切り規則で数字が変わる

Popular Articles