MENU

【無料プレゼント付き】学会発表・論文投稿に必要な統計を最短で学ぶことができる無料メルマガ

競合リスクを考慮したサンプルサイズ計算:治療中止を織り込んだ研究設計


臨床研究において「ある薬剤の副作用が発生するまでの時間(Time to event)」を評価する際、避けて通れないのが競合リスク(Competing Risks)の問題である。副作用が出る前に、別の副作用で治療が中止されたり、他病死したりするケースがこれに該当する。

これらは単なる「打ち切り」ではなく、関心のあるイベントの発生を阻害する要因として、設計段階から正しく評価する必要がある。本記事では、R言語を用いて競合リスクを考慮したサンプルサイズを算出する方法を解説する。


>>もう統計で悩むのは終わりにしませんか? 

↑1万人以上の医療従事者が購読中

目次

競合リスク分析とは何か

通常の生存時間分析(Kaplan-Meier法など)では、観察期間中にイベントが起きなかった症例をすべて一律に「打ち切り」として扱う。しかし、「イベントA(副作用A)が起こると、イベントB(他の理由による中止)は決して起こらない」という状況では、イベントBはイベントAの発生機会を奪う「競合」関係にある。

これらを無視して計算すると、副作用の発生リスクを実際よりも高く見積もってしまう(過大評価)危険がある。競合リスク分析は、こうした複雑な生存環境を正しく評価するための手法である。


なぜサンプルサイズ計算が重要か

研究終了後に「有意差が出なかった」という結果に直面した際、それが「本当に差がない」のか、単に「症例数が足りなかった(検出力不足)」のかを区別することは極めて困難である。

特に競合リスクが存在する場合、「競合イベントによって、本来観察したかったイベントの発生が阻害される」ため、通常の分析よりも多くの症例数が必要になる。事後的な考察で「症例数不足だった」と弁明する事態を避けるためにも、事前の精緻な設計が不可欠である。


>>もう統計で悩むのは終わりにしませんか? 

↑1万人以上の医療従事者が購読中

Rによる実践例:gsDesign パッケージの活用

臨床試験の設計において標準的な gsDesign パッケージを用い、競合リスクを「脱落(Dropout)ハザード」として組み込む手法を紹介する。

シミュレーションの設定

  • 関心イベント: 副作用A(対照群の月間ハザード 0.05 = 1年で約45%発生)
  • ハザード比: 0.7(新薬による30%のリスク低減を期待)
  • 競合リスク: 他の副作用や患者都合による中止(月間ハザード 0.01 = 年間約11%発生)
  • 検定条件: 両側検定(有意水準 5%)、検出力 80%

Rスクリプト

if(!require ("gsDesign")) install.packages("gsDesign")
library(gsDesign)

# 1. パラメータの設定
lambda_C <- 0.05    # 対照群の副作用A発生ハザード
hr       <- 0.7     # 期待するハザード比
eta_comp <- 0.01    # 競合リスク(脱落ハザードとして設定)

Ts <- 24            # 全試験期間(24ヶ月)
Tr <- 12            # 登録期間(12ヶ月)

# 2. サンプルサイズ計算
res <- nSurv(
  lambdaC = lambda_C, 
  hr      = hr,       
  eta     = eta_comp, 
  T       = Ts,       
  minfup  = Ts - Tr,  
  alpha   = 0.05,     # 両側 5%
  beta    = 0.2,      # 検出力 80%
  sided   = 2         # 両側検定を指定
)

print(res)

結果の解釈

計算を実行すると、以下のような出力が得られる。注目すべきは以下の3点である。

> print(res)
Fixed design, two-arm trial with time-to-event
outcome (Lachin and Foulkes, 1986).
Solving for:  Accrual rate 
Hazard ratio                  H1/H0=0.7/1
Study duration:                   T=24
Accrual duration:                   12
Min. end-of-study follow-up: minfup=12
Expected events (total, H1):        246.5321
Expected sample size (total):       507.4021
Accrual rates:
     Stratum 1
0-12   42.2835
Control event rates (H1):
      Stratum 1
0-Inf      0.05
Censoring rates:
      Stratum 1
0-Inf      0.01
Power:                 100*(1-beta)=80%
Type I error (1-sided):   100*alpha=5%
Equal randomization:          ratio=1
> 
  • Expected events (total, H1): 247件 統計的な有意差を証明するために必要な「副作用A」の発生数である。試験全体でこの件数が発生するまで追跡を行う必要がある。
  • Expected sample size (total): 508名 競合リスクを考慮した結果、最終的に登録すべき総症例数は508名(各群254名)となった。
  • Accrual rates: 42.28 12ヶ月の登録期間で目標数に達するためには、月間約42名のペースで症例を組み入れる必要があることを示している。

サンプルサイズ設計時の注意点

競合リスク(eta)の感度分析

もし対象患者が高齢である、あるいは併用薬が多いなどの理由で「他の理由による中止(eta)」が想定より高くなる(例:月 2%)場合、必要なサンプルサイズ n はさらに増加する。現場の実情に合わせた慎重な見積もりが求められる。

ハザード率の変換

累積発生率(%)からハザード率(lambda)を求める際は、以下の式で近似できる。

$$\lambda = -\frac{\ln(1 – \text{発生率})}{T}$$

例えば、「1年(12ヶ月)で20%発生する」と予想する場合、$\lambda = -\ln(1 – 0.2) / 12 \approx 0.0186$ となる。


まとめ

競合リスクは、臨床現場における「治療中止」や「他病死」という避けて通れない現実を統計モデルに反映させたものである。gsDesign を活用することで、これらのリスクを織り込んだ「負けない研究設計」が可能となる。

根拠に基づいた症例数を確保することは、研究の科学的妥当性と倫理性を担保するための第一歩である。

おすすめ書籍

誰も教えてくれなかった 医療統計の使い分け〜迷いやすい解析手法の選び方が,Rで実感しながらわかる! 


よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

リサーチクエスチョン探し?データ分析?論文投稿?、、、で、もう悩まない!

第1章臨床研究ではなぜ統計が必要なのか?計画することの重要性
  • 推定ってどんなことをしているの?
  • 臨床研究を計画するってどういうこと?
  • どうにかして標本平均を母平均に近づけられないか?
第2章:研究目的をどれだけ明確にできるのかが重要
  • データさえあれば解析でどうにかなる、という考え方は間違い
  • 何を明らかにしたいのか? という研究目的が重要
  • 研究目的は4種類に分けられる
  • 統計専門家に相談する上でも研究目的とPICOを明確化しておく
第3章:p値で結果が左右される時代は終わりました
  • アメリカ統計協会(ASA)のp値に関する声明で指摘されていること
  • そうは言っても、本当に有意差がなくてもいいの…?
  • なぜ統計専門家はp値を重要視していないのか
  • 有意差がない時に「有意な傾向があった」といってもいい?
  • 統計を放置してしまうと非常にまずい
第4章:多くの人が統計を苦手にする理由
  • 残念ながら、セミナー受講だけで統計は使えません。
  • インプットだけで統計が使えない理由
  • どうやったら統計の判断力が鍛えられるか?
  • 統計は手段なので正解がないため、最適解を判断する力が必要
第5章:統計を使えるようになるために今日から何をすれば良いか?
  • 論文を読んで統計が使えるようになるための5ステップ
第6章:統計を学ぶために重要な環境
  • 統計の3つの力をバランスよく構築する環境

以下のボタンをクリックして、画面に出てくる指示に従って、必要事項を記入してください。

この記事を書いた人

統計 ER ブログ執筆者

元疫学研究者

コメント

コメントする

目次