はじめに

反復測定データやクラスタ化データを扱う際、「同じ個体から得られたデータは独立ではない」という問題が必ず発生します。この問題を解決し、集団平均効果(population-averaged effect) を推定するための方法が一般化推定方程式(GEE: Generalized Estimating Equations) です。
本記事では、GEEの基本概念から数式の導出、相関構造、Rでの実装までを図解とともに丁寧に解説します。

GEEとは何か?

GEEは Liang & Zeger (1986) によって提案された手法で、クラスタ化データの平均構造を推定するための準尤度ベースの方法 です。

  • クラスタ内相関を考慮
  • 相関構造の誤指定にロバスト
  • 計算が軽い
  • GLMの拡張

GEEが必要となるデータ構造

■ 反復測定データ(longitudinal data)

例:

  • 患者の血圧を 0, 3, 6, 12 ヶ月で測定
  • ダイエット介入前後の体重変化

■ クラスタ化データ(clustered data)

例:

  • 地域 × 住民
  • 学校 × 生徒
  • 病院 × 患者

GEEの数式導出

GEEの推定方程式がどのように導かれるかを説明していきます。

GLMの復習:平均構造と分散構造

GLMでは

\[g(\mu _i)=X_i\beta\]

\[\mathrm{Var}(Y_i)=\phi A_i\]

ここで

  • \(g(\cdot )\):リンク関数
  • \(A_i\):分散関数(例:二項なら \(\mu _i(1-\mu _i)\))
  • \(\phi\) :分散パラメータ

クラスタ化データでは独立性が破綻する

クラスタ i の観測をベクトルで表す:

\[Y_i=(Y_{i1},Y_{i2},\dots ,Y_{iT_i})^{\top }\]

同じクラスタ内では相関があるため、分散共分散行列は

\[V_i=A_i^{1/2}R(\alpha )A_i^{1/2}\]

  • \(A_i\):分散の対角行列
  • \(R(\alpha )\):相関構造(exchangeable, AR(1), independence など

準尤度(quasi-likelihood)による推定

GEEは完全な尤度を使わず、準尤度(quasi-likelihood) に基づく推定を行います。
準尤度では、平均と分散の指定だけで推定が可能です。

推定方程式の導出

GEEは以下の推定方程式を解くことで \beta を求めます。

\[U(\beta )=\sum _{i=1}^ND_i^{\top }V_i^{-1}(Y_i-\mu _i)=0\]

ここで

  • \(\mu _i=g^{-1}(X_i\beta )\)
  • \(D_i=\frac{\partial \mu _i}{\partial \beta }\)
  • \(V_i\):クラスタ内の分散共分散行列

■ 導出の流れ

Step 1:スコア関数の一般形

一般に、スコア関数は

\[U(\beta )=\sum _i\frac{\partial \mu _i}{\partial \beta }^{\top }\mathrm{Var}(Y_i)^{-1}(Y_i-\mu _i)\]

GLMでは

\[\mathrm{Var}(Y_i)=A_i\]

だが、クラスタ化データでは

\[\mathrm{Var}(Y_i)=V_i=A_i^{1/2}R(\alpha )A_i^{1/2}\]

Step 2:クラスタ内相関を考慮したスコア関数

\[U(\beta )=\sum _{i=1}^ND_i^{\top }V_i^{-1}(Y_i-\mu _i)\]

これが 一般化推定方程式(GEE) です。

Step 3:反復計算(IRLS)で解く

GEEは閉形式の解を持たないため、反復再重み付け最小二乗法(IRLS)で解きます。

更新式は

\[\beta ^{(k+1)}=\beta ^{(k)}+\left[ \sum _iD_i^{\top }V_i^{-1}D_i\right] ^{-1}\left[ \sum _iD_i^{\top }V_i^{-1}(Y_i-\mu _i)\right]\]

サンドイッチ分散推定量(ロバスト分散)

GEEの強みは、相関構造を誤指定しても推定量 \(\hat {\beta }\) が一致性を持つ点です。

そのために使われるのが サンドイッチ分散推定量

\[\hat {\mathrm{Var}}(\hat {\beta })=\left( \sum _iD_i^{\top }V_i^{-1}D_i\right) ^{-1}\left( \sum _iD_i^{\top }V_i^{-1}(Y_i-\mu _i)(Y_i-\mu _i)^{\top }V_i^{-1}D_i\right) \left( \sum _iD_i^{\top }V_i^{-1}D_i\right) ^{-1}\]

GEEのメリット・デメリット

  • 相関構造の誤指定にロバスト
  • 計算が速い
  • 平均効果の解釈が直感的
  • 大規模データに強い
  • 欠測データに弱い(MCAR仮定)
  • クラスタ数が少ないと標準誤差が不安定
  • 個体差をモデル化できない(GLMMの方が適切な場合も)

Rでの実装(geepack)

データ例

set.seed(123)

# 被験者ID(100人、各4回測定)
id <- rep(1:100, each = 4)

# 測定時点(月)
time <- rep(c(0, 3, 6, 12), times = 100)

# 介入群 / 対照群
treat <- rep(sample(c(“A”, “B”), 100, replace = TRUE), each = 4)

# 血圧(単純な線形モデル+誤差で生成)
bp <- 120 – 3 * (treat == “A”) – 0.5 * time + rnorm(400, 0, 5)

dat <- data.frame(id, time, treat, bp)
head(dat)

GEEモデルの推定

fit <- geeglm(
bp ~ treat + time,
id = id,
data = dat,
family = gaussian,
corstr = “exchangeable”
)

summary(fit)

  • treatB:対照群Bは治療群Aより平均で約2.46mmHg高い
  • time:時間が1ヶ月進むごとに平均血圧が約0.5 mmHg低下する傾向
相関構造を変えて比較

fit_ind <- geeglm(bp ~ treat + time, id=id, data=dat,
family=gaussian, corstr=”independence”)

fit_ar1 <- geeglm(bp ~ treat + time, id=id, data=dat,
family=gaussian, corstr=”ar1″)

GEEとGLMMの比較

特徴GEEGLMM
推定対象集団平均個体別
ランダム効果なしあり
相関構造明示的に指定ランダム効果で自動的に決まる
計算量少ない多い
欠測データMCARのみMARまで対応
解釈平均的な効果個体レベルの効果

まとめ

一般化推定方程式(GEE)は、反復測定データやクラスタ化データのように、同じ個体・同じ集団から複数の観測が得られる状況で必須となる統計手法です。通常のGLMでは独立性の仮定が破綻し、標準誤差が過小評価されてしまうため、誤った結論につながる危険があります。GEEはこの問題を、相関構造を明示的にモデル化しつつ、平均構造の推定をロバストに行うことで解決します。
GEEの本質は、「集団平均の効果(population-averaged effect)」を推定することにあります。これは、個体差を重視するGLMMとは異なり、政策評価や疫学研究など「全体としてどの程度の効果があるのか」を知りたい場面に非常に適しています。また、相関構造を誤って指定しても、サンドイッチ分散推定量により推定値の一致性が保たれるというロバスト性も大きな魅力です。
一方で、欠測データに弱い(MCAR仮定)ことや、クラスタ数が少ないと標準誤差が不安定になるなどの注意点もあります。個体ごとの傾向を推定したい場合にはGLMMの方が適切なこともあるため、目的に応じた手法選択が重要です。
Rでは geepack パッケージを用いることで、相関構造の指定やロバスト標準誤差の計算を含め、GEEを簡単に実装できます。実務でも扱いやすく、計算も軽いため、大規模データにも適しています。
総じて、GEEは「反復測定」「クラスタ化」「平均効果の推定」という3つのキーワードが揃う場面で、最も信頼できるアプローチのひとつです。理論的にも実務的にもバランスが良く、医療統計・疫学・社会科学など幅広い分野で活用され続けている理由がよくわかります。

参考書籍

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