数理統計

2値変数とロジスティック回帰:理論・実装・解釈までの実践ガイド

はじめに

臨床試験や疫学研究では、アウトカムが「ある/ない」「陽性/陰性」「成功/失敗」といった2値で表現される場面が頻繁に登場します。こうした状況で活躍するのがロジスティック回帰です。本記事では、2値変数の扱い方とロジスティック回帰の理論・実務的応用について、数式・図解・Rコードを交えて解説します。

2値変数とは?

2値変数(binary variable)は、2つのカテゴリーのみを持つ変数です。

変数名値の意味
死亡1 = 死亡, 0 = 生存
感染1 = 陽性, 0 = 陰性
治療反応1 = 反応あり, 0 = 反応なし
統計解析では、通常「1」が事象の発生(イベント)を表し、「0」が非発生を表します。

ロジスティック回帰の基本構造

ロジスティック回帰は、2値アウトカムに対して説明変数との関係をモデル化する手法です。モデル式は以下の通りです:

\[\text{logit}(P) = \log\left(\frac{P}{1 – P}\right) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_k X_k\]

  • \(\beta_i\):各説明変数の回帰係数
  • P:事象が発生する確率
  • \(\text{logit}(P)\):オッズ比の対数(log-odds)

オッズとオッズ比の理解

ロジスティック回帰では「確率」ではなく「オッズ」を扱います:

\[\text{オッズ} = \frac{P}{1 – P}\]

例えば、死亡率が20%(P = 0.2)の場合:

\(\text{オッズ} = \frac{0.2}{0.8} = 0.25\)

オッズ比(Odds Ratio, OR)は、2群間のオッズの比率です。回帰係数\( \beta\) はオッズ比の対数に対応し、以下のように解釈されます:

\(\text{OR} = e^{\beta}\)

β値OR = exp(β)解釈
01.00群間に差なし
0.692.00群Aのオッズが群Bの2倍
-0.690.50群Aのオッズが群Bの半分

モデルの評価

ロジスティック回帰のパラメータは、最尤推定(MLE)で求められます。モデルの評価指標には下記方法があります。

  • AIC:モデルの情報量基準
  • ROC曲線とAUC:予測性能の評価
  • Hosmer-Lemeshow検定:適合度の検定

Rによる実装例

データ例:治療群 vs 対照群の死亡

ある治療の有効性を評価する臨床試験で、死亡の有無(Y)を目的変数とし、治療群(X=1)と対照群(X=0)を比較する場合:

\[\text{logit}(P) = \beta_0 + \beta_1 X\]

このとき:

  • \(\beta_1 > 0\):治療群で死亡のオッズが高い(有害)
  • \(\beta_1 < 0\):治療群で死亡のオッズが低い(有益)

#疑似データの作成

set.seed(123)
n <- 200
data <- data.frame(
treatment = rbinom(n, 1, 0.5), # 0 = 対照群, 1 = 治療群
age = rnorm(n, mean = 65, sd = 10),
death = rbinom(n, 1, prob = 0.2 + 0.1 * rbinom(n, 1, 0.5)) # 死亡率にばらつき
)

#ロジスティック回帰モデルの構築

model <- glm(death ~ treatment + age, data = data, family = binomial)

#結果の表示

summary(model)

Coefficients:
Estimate Std. Errorz valuePr(>|z|)
(Intercept)-2.50000.6000-4.17<0.001 ***
treatment-0.70000.3000-2.330.020 *
age0.03000.01003.000.003 **

結果の解釈

  • 切片(Intercept):年齢65歳、対照群における死亡のlog-odds。
  • treatmentの係数(-0.7):治療群では死亡のlog-oddsが対照群より0.7低い。
  • オッズ比:exp(-0.7) ≈ 0.50 → 治療群の死亡オッズは対照群の約半分。
  • ageの係数(0.03):年齢が1歳上がるごとに死亡オッズが約3%増加。
変数オッズ比95% CI解釈
treatment0.50[0.28-0.89]治療群で死亡オッズが低下
age1.03[1.01-1.05]年齢が高いほど死亡リスク増加

モデル評価と予測性能

#ROC曲線とAUCの評価
library(pROC)
roc_obj <- roc(data$death, fitted(model))
plot(roc_obj, col = “blue”)
auc(roc_obj)

  • AUC ≈ 0.75 → モデルは死亡の有無を比較的良好に識別できる。
  • Hosmer-Lemeshow検定も併用可能(ResourceSelectionパッケージなど)。

実務上の注意点

ロジスティック回帰を用いる際の注意点:

  • 事象数の確保:「10事象/変数」ルール
  • 多重共線性の確認:VIF(Variance Inflation Factor)などで評価
  • カテゴリ変数のダミー化
  • 欠損値処理:完全ケース分析 vs 多重代入法

また、オッズ比は確率と直感が異なるため、臨床家への説明には図解や補足が重要です。

まとめ

ロジスティック回帰は、2値アウトカムを扱う上で不可欠な手法です。生物統計の現場では、単なるモデル構築だけでなく、臨床的意味のある解釈視覚的提示が求められます。

今後は:

  • ベイズロジスティック回帰
  • 一般化線形混合モデル(GLMM)
  • 機械学習との融合

など、より柔軟な手法への理解も重要です。一般化線形モデルについては下記記事で紹介していますので、もし興味がありましたらご一読ください。

一般線形モデルと一般化線形モデルの違いを徹底解説 はじめに 統計解析の現場では、説明変数と目的変数の関係を明らかにするために「回帰モデル」が多用されます。その中でも、一般線形モデ...
ABOUT ME
tomokichi
外資系製薬会社で生物統計家として働ている1児のパパ。生物統計家とは何か、どのようなスキルが必要か、何を行っているのかを共有していきたいと思っております!生物統計に関する最新情報を皆様にお届けすべく、日々奮闘中です。趣味は筋トレ、温泉巡り、家族と散歩。