はじめに

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

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

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

架空データの作成(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.5base – 1.5trt + 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 低いように生成
  • 欠測は MAR を想定し、ランダムに 20% 発生
  • 実務では MAR の妥当性を説明する必要がある

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

library(mice)

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

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

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

  • m(完全データセットの作成数)は事前に規定する必要あり
  • norm.predict は正規回帰による代入
  • 実務では CART や PMM を使うことも多い

R の結果(例)

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

estimatestd.errorstatisticdf p.value
(Intercept)10.120.4522.4180<0.001
TRT-1.480.28-5.3175<0.001
BASE0.510.0412.7178<0.001
結果の解釈(R)

治療効果(TRT)

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

BASE(ベースライン)

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

MI の効果

欠測を単純除外(complete-case)で解析すると、治療効果は -1.2 程度に縮小することが多い。
MI により バイアスが減少し、推定精度が向上 している。

SAS による多重代入法

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

# PROC MIによる代入
proc mi data=trial out=mi_data nimpute=20 seed=12345;
var week12 base trt;
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 data=est;
modeleffects Estimate;
stderr StdErr;
run;

SAS の結果(例)

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

変数推定値標準誤差p値
TRT1.500.29<0.001
BASE0.500.04<0.001

SAS と R の結果比較

観点R(mice)SAS(PROC MI)
推定値-1.48-1.50
標準誤差0.280.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 と SAS の結果はいずれも治療効果を約 −1.5 と推定し、欠測を適切に扱うことでバイアスの少ない推定が得られることが確認されました。実務では、MAR の仮定の妥当性、代入モデルと解析モデルの整合性、十分な代入回数(m=20〜50)、さらに MNAR を想定した感度分析が重要です。MI は製薬統計における欠測データ解析の標準手法であり、適切に活用することで解析の信頼性を高めることができます。

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