はじめに
医薬品開発の統計解析では、多施設試験や被験者内反復測定など、階層構造や相関を持つデータが頻出します。
単純な線形モデル(LM)や一般化線形モデル(GLM)では、施設間差や被験者間差を無視してしまい、推定値や標準誤差が歪む危険があります。
線形混合モデル(LMM)と一般化線形混合モデル(GLMM)は、GLMにランダム効果を組み込み、こうした構造を適切にモデル化できる強力な手法です。そこで今回はLMMとGLMMについてR言語での実装も想定して解説していこうと思います。
数理的な定義
LM、GLMの復習
LMM、GLMMを理解するためにはLM、GLMを理解する必要があります。そこでGLMについて少し説明していきます。
線形予測子:
\[Y_i = \mathbf{x}_i^\top \boldsymbol{\beta} + \varepsilon_i\]
誤差項 \(\varepsilon_i \sim N(0, \sigma^2)\)
- 分布族:指数型分布族(正規、二項、ポアソンなど)
- 線形予測子:
\[\eta_i = \mathbf{x}_i^\top \boldsymbol{\beta}\] - リンク関数:
\[g(\mu_i) = \eta_i\]
下記で一般化線形モデルと一般化線形混合モデルについての記事を記載しておりますので、興味がある方は是非一読ください。

LMMの拡張
LMMでは、固定効果に加えてランダム効果を導入します:
\[Y_{ij} = \mathbf{x}_{ij}^\top \boldsymbol{\beta} + \mathbf{z}_{ij}^\top \mathbf{b}_i + \varepsilon_{ij}\]
\(\varepsilon_{ij} \sim N(0, \sigma^2)\):残差
i:クラスター(例:被験者、施設)
j:クラスター内の観測
\(\mathbf{b}_i \sim N(0, \mathbf{D})\):ランダム効果
GLMMの拡張
GLMMでは、線形予測子にランダム効果を加えます:
\[\eta_{ij} = \mathbf{x}_{ij}^\top \boldsymbol{\beta} + \mathbf{z}_{ij}^\top \mathbf{b}_i\]
i:クラスター(施設、被験者など)
j:クラスター内の観測
\(\mathbf{b}_i \sim N(0, \mathbf{D})\):ランダム効果
例:二項分布+logitリンク
\[\text{logit}(p_{ij}) = \beta_0 + \beta_1 \text{Treatment}_{ij} + b_i\]
GLMMはGLMにランダム効果を組み込み、LMMは連続値アウトカムに特化したGLMMの1種となります。
医薬品業界での典型的利用シーン
製薬業界でGLMMが使われる場面として下記のような場合があります。
希少イベント解析:重篤な副作用やまれな疾患の発症などを解析する際に発現頻度が極めて低い事象により、モデルが仮定する分散よりも実際のデータの分散が大きくなることがあります(過剰分散)。そこでランダム効果を導入することで「各クラスターごとのリスクの違い」をモデル化し、その分のばらつきを減らすことができる。
多施設臨床試験:施設間差をランダム効果とすることで、ばらつきを減らすことができる。
繰り返し測定データ:経時測定データといった繰り返し測定データを解析する際に被験者内相関をモデル化することができる。
ここで、GLMMで解析を行うメリットを説明していこうと思います。
具体例として、下記のような繰り返し測定データが得られた場合を想定します。

- 各被験者は初期値(切片)が異なります
→ 例:赤線の被験者は初期値が高く、青線は低め - 時間に伴う変化(傾き)も被験者ごとに異なります
→ 例:青線は緩やかな上昇、緑線は中盤でピーク後に下降 - 同じ被験者内の測定値は互いに似ており、被験者内相関が存在します。
- 被験者内相関を適切に扱える
- 通常の回帰モデルは観測値の独立性を仮定しますが、繰り返し測定では同一被験者内の値は相関します。
- GLMMはランダム効果(被験者ごとの切片や傾き)を導入し、この相関をモデル化します
- 個人差を分散成分として切り出せる
- 個人ごとの初期値や変化率の違いを「ランダム切片」「ランダム傾き」として推定。
- 残差の分散が適切になり、標準誤差やp値が過小評価されるのを防ぎます。
- 母集団全体の傾向と個人差を同時に推定できる
- 固定効果で「全体としての時間効果や治療効果」を推定
- ランダム効果で「個人ごとのばらつき」を推定
- 予測や可視化がしやすい
- 個人ごとの予測曲線や、母集団平均の経時変化を描ける
- 臨床的な解釈や報告資料に直結
実例:連続値アウトカムのLMM(バイオマーカーの経時変化)
データ設定
- 群:新薬 vs プラセボ
- 試験:多施設二重盲検試験
- アウトカム:血中バイオマーカー濃度(連続値)
- 測定:各被験者について5時点(0週〜16週)
library(lme4)
set.seed(123)
n_facility <- 5
n_subj_per_fac <- 20
n_time <- 5
time_points <- 0:4
facility <- factor(rep(1:n_facility, each = n_subj_per_fac * n_time))
subject <- factor(rep(1:(n_facility * n_subj_per_fac), each = n_time))
time <- rep(time_points, times = n_facility * n_subj_per_fac)
treatment <- rbinom(n_facility * n_subj_per_fac, 1, 0.5)
treatment <- rep(treatment, each = n_time)
beta0 <- 50
beta1 <- 2
beta_time <- -0.5
beta_int <- -1.0
sigma_subj_int <- 5
sigma_subj_slope <- 0.3
sigma_resid <- 2
rand_int <- rnorm(n_facility * n_subj_per_fac, 0, sigma_subj_int)
rand_slope <- rnorm(n_facility * n_subj_per_fac, 0, sigma_subj_slope)
linpred <- beta0 +
beta1 * treatment +
beta_time * time +
beta_int * treatment * time +
rand_int[subject] +
rand_slope[subject] * time
y <- linpred + rnorm(length(linpred), 0, sigma_resid)
data <- data.frame(y, time, treatment, subject, facility)
model <- lmer(y ~ treatment * time + (time | subject), data = data)
summary(model)
出力の解釈
上記Rコードを実行すると下記のように出力されます。

解釈は下記となります。
- ランダム効果(黄色ハイライト):被験者ごとの初期値(Intercept)と傾きのばらつき
treatment
(青色ハイライト):ベースライン時点での群間差time
(緑色ハイライト):時間経過による平均変化treatment:time
(紫色ハイライト):治療群と対照群の時間変化の違い(交互作用)
実務での留意点
観点 | 留意点 |
モデル選択 | ランダム効果の構造(切片のみか、傾きも含むか)を明示 |
推定方法 | REML vs ML の選択(モデル比較時はML) |
可視化 | 母集団平均と個人別トレンドを併記すると説得力が増す |
報告 | パッケージ、近似法、変数の定義を明記することが重要 |
REML (Restricted Maximum Likelihood: 制限付き最尤法) と ML (Maximum Likelihood: 最尤法) は、混合モデルにおける分散成分を推定する統計手法です。REMLは固定効果の影響を取り除いた誤差部分の尤度を最大化するのに対し、MLは固定効果とランダム効果を含むデータ全体の尤度を最大化します。
一般的に、REMLは推定値に偏りが少なくなり、特にサンプルサイズが小さい場合に推奨されますが、MLは固定効果の数を比較する際に利用できます
まとめ
今回はLMMとGLMMについて解説してきました。LMMは、連続値アウトカムの階層構造データに対して、被験者内相関や個人差を適切にモデル化できます。医薬品開発では、バイオマーカーや臨床スコアの経時変化解析に特に有用な解析手法となります。