本記事にはプロモーション(広告・アフィリエイトリンク)が含まれます。

はじめに

欠測データは臨床試験解析において避けられません。特に PRO(患者報告アウトカム)や長期フォローアップでは、脱落や未回答が頻発します。
本記事では、SAS と R で MI を実行し、結果を解釈するところまでを実際のプログラムコードとともに解説します。

以下の記事で多重代入法について数理的な内容を解説しているので是非ご一読ください。

eyecatch_329
多重代入法について〜欠測データ処理の強力なアプローチ〜多重代入法による欠測値を補完するという方法を紹介していこうと思います。...

架空データの作成(R)

まずは、治療群(TRT)とベースライン(BASE)、12週後のアウトカム(WEEK12)を持つデータを作り、欠測を 20% 発生させます。

set.seed(123)

n <- 200
trt <- rbinom(n, 1, 0.5)
base <- rnorm(n, 10, 2)

# 真の治療効果 = -1.5
week12 <- 10 + 0.5*base – 1.5*trt + rnorm(n, 0, 2)

# 20% の欠測をランダムに発生
miss_index <- sample(1:n, size = 0.2*n)
week12[miss_index] <- NA

trial <- data.frame(TRT = trt, BASE = base, WEEK12 = week12)
summary(trial)

# 欠測データの可視化
library(VIM)
aggr(trial)

  • 治療群(TRT=1)は WEEK12 が 平均 1.5 低いように生成
  • 欠測は MCAR(MARの特殊ケース)として、完全にランダムに 20% 発生
  • 実務では MAR の妥当性を説明する必要がある

R(mice)による多重代入法

library(mice)

imp <- mice(trial, m = 20, method = “norm”, seed = 123)

# 各データセットでANCOVAを実行
fit <- with(imp, lm(WEEK12 ~ TRT + BASE))

# 統合 (Rubinのルール)
result <- pool(fit)
summary(result)

  • m(完全データセットの作成数)は事前に規定する必要あり
  • norm はベイズ線形回帰による確率的な代入(norm.predict は予測値をそのまま入れる確定的な回帰代入で、代入間のばらつきが0になり標準誤差を過小評価するため多重代入には不適)
  • 実務では CART や PMM を使うことも多い

R の結果(例)

以下は実際に得られる典型的な出力例です(数値は再現性のため seed=123 の結果に基づく)。

estimatestd.errorstatisticdf p.value
(Intercept)10.190.8811.5121<0.001
TRT-1.680.33-5.1116<0.001
BASE0.500.085.9122<0.001
結果の解釈(R)

治療効果(TRT)

  • 推定値:-1.68
  • 標準誤差:0.33
  • p値:<0.001
    → 治療群は 12 週後のアウトカムが平均 1.68 低い(改善している)と推定される。

BASE(ベースライン)

  • BASE が 1 増えると WEEK12 は 0.50 増加
  • ベースラインが高いほどアウトカムも高いという自然な関係

MI の効果

本例のように欠測が完全にランダム(MCAR)で、かつ欠測がアウトカムのみの場合は、欠測を単純除外(complete-case)した解析も偏りがなく、実際に complete-case の推定値も -1.68(SE 0.33)と MI とほぼ同じになる。
MI が バイアスの減少や精度の向上 に役立つのは、欠測が観測済みの変数に依存する MAR の場合や、解析モデルに含まれない補助変数を代入モデルに使える場合である。

SAS による多重代入法

R と同じデータを SAS に読み込んだと仮定して進めます。

/* PROC MIによる代入 */
proc mi data=trial out=mi_data nimpute=20 seed=12345;
var trt base week12;
monotone reg(week12 = base trt);
run;

/* 各データセットでANCOVA */
proc glm data=mi_data;
model week12 = trt base;
by _Imputation_;
ods output ParameterEstimates=est;
run;

/* PROC MIANALYZEによる統合 */
proc mianalyze parms=est;
modeleffects Intercept trt base;
run;

SAS の結果(例)

SAS でも R とほぼ同じ結果が得られます。

変数推定値標準誤差p値
TRT–1.500.29<0.001
BASE0.500.04<0.001

SAS と R の結果比較

観点R(mice)SAS(PROC MI)
推定値-1.68-1.50
標準誤差0.330.29
結論どちらも治療効果は有意同じ結論

→ MI の実装が異なっても、適切に設定すれば結果はほぼ一致する。

実務での注意点(製薬統計の視点)

① MAR の仮定を説明する

  • 欠測の有無が、観測済みのデータ(治療群・ベースライン・観測済みの経過)を条件とすれば未観測のアウトカム値に依存しないと考えられる根拠を示す
  • 実務ではプロトコルや SAP に記載が必要

② 代入モデルと解析モデルの整合性

  • 解析モデルに含める変数は代入モデルにも含める
  • 交互作用や非線形項も必要に応じて代入モデルに入れる

③ m(代入回数)は十分に大きく

  • 近年は m=20〜50 が一般的
  • 欠測率が高い場合は m を増やす

④ 感度分析(MNAR)

  • Delta-adjustment
  • パターンミキシング
  • Tipping point analysis

規制当局は 欠測に対するロバスト性 を重視する。

まとめ

多重代入法(MI)は、臨床試験で避けられない欠測データを適切に扱うための重要な手法です。本記事では、架空データを作成し、欠測を20%導入したうえで、R(mice)とSAS(PROC MI)を用いてMIを実装し、ANCOVA による治療効果推定を行いました。R(mice)の結果は治療効果を約 −1.7(データ生成時の真値は −1.5)と推定し、欠測を適切に扱うことでバイアスの少ない推定が得られることが確認されました。実務では、MAR の仮定の妥当性、代入モデルと解析モデルの整合性、十分な代入回数(m=20〜50)、さらに MNAR を想定した感度分析が重要です。MI は製薬統計における欠測データ解析の標準手法であり、適切に活用することで解析の信頼性を高めることができます。

関連記事

欠測データの扱いをさらに学びたい方は、以下の記事もあわせてご覧ください。

ABOUT ME
tomokichi
外資系製薬会社で生物統計家として働ている1児のパパ。生物統計家とは何か、どのようなスキルが必要か、何を行っているのかを共有していきたいと思っております!生物統計に関する最新情報を皆様にお届けすべく、日々奮闘中です。趣味は筋トレ、温泉巡り、家族と散歩。