Coffee and Research
  • Home
  • cifmodeling
  • A Conversation (EN)
    • Index
    • Study design
    • Frequentist Thinking
  • A Conversation (JP)
    • Index
    • Study Design
    • Frequentist Thinking
    • Frequentist Experiments
    • Effects and Time
  • 8 Elements (EN)
  • 8 Elements (JP)

On this page

  • Adjusting for Bias II − From Risk to Logistic Regression
    • ロジスティック回帰をしてみたんだけど
    • 文献
    • 次のエピソードとRスクリプト

From Risk to Logistic Regression

Published

December 8, 2025

Adjusting for Bias II − From Risk to Logistic Regression

Keywords: confounding & collapsibility, effect measure, generalized linear model, language & writing


前回までのあらすじ

はじめて研究に取り組む娘と統計家の父。父に研究仮説は”PICO”を”PECO”で整理するといいとアドバイスされ、女医である娘は、がんサバイバーにおけるストーマ造設と復職状況の関係を調査することに決める。その後いくつか質問するうちに、父のことを「こいつ使える」と思い始めたのだった。

ロジスティック回帰をしてみたんだけど

私「これみてよ、お父さん」

お父さん「ん?どうしたの、この資料」

私「前に相談したがんサバイバーの復職状況を調べる研究についてなんだけどね、うちの診療科だけだけど調査票が集まったから、解析してみたの。その結果をまとめた資料よ」

お父さん「ああ、あれね。ストーマ造設と復職率の関連を調べることにしたんだっけ。資料のどこをみればいいの?」

私「この表なんだけど。ロジスティック回帰(logistic regression)をしてみたんだ。その結果をまとめたよ。どうかな」

パラメータ 自由度 推定値 標準誤差 95%信頼区間 \(\chi^2\) p値
Intercept 1 -27.25 3.03 -33.20~-21.30 80.55 <0.01
STOMA 1 1.41 1.54 -16.1~4.45 0.84 0.3588
AGE 1 1.47 1.48 -1.42~4.36 0.99 0.3197
SEX 1 25.72 0.00 25.72~25.72
INCOME 1 -0.00 0.00 -0.00~0.00 0.58 0.4481

お父さん「ふむふむ。よくある回帰分析の結果だね。この表、上司にみせるんでしょ。その前にちょっと手直しした方がいいかもね」

私「やっぱり?そんな気がしてみてもらおうと思ったんだ」

お父さん「まず、Intercept、STOMA、AGE、SEX、INCOMEっていうのがわからないよ。Intercept以外は共変量(covariates)のことだよね」

私「共変量って?」

お父さん「共変量っていうのは、ロジスティック回帰に入れる説明変数のこと。復職率を規定する要因っていえばいいかな。それと、Interceptは回帰式でいう切片項のこと。統計ソフトウェアのアウトプットをそのまま表にしたんでしょ?きっとストーマ、年齢、性別、年収という変数を使ったんだと思うんだけど、データ上の変数名がそのままになっている。それに、出てきた数字をぜんぶ載せると、表がうるさくない?」

私「めっちゃしゃべるな。そうね、実はRのglm()を使ったんだけど、そこもよくわからなかったんだよね。そこから聞こうかな」

お父さん「どのあたり?」

私「glm()の指定の仕方。引数っていうの?」

glm(y ~ x1 + x2, family = binomial(), data = dat)

私「以前、連続データは正規分布、2値データは2項分布ってイメージが大事みたいなこといってたでしょ?glm()もその延長だと思うんだけど、familyとかlinkとか謎で、ロジスティック回帰になってるか自信ない」

お父さん「そこはね、単変量分布を一般化線型モデルに広げないと説明できないよ。つまりね、glm()はgeneralized linear modelの略なんだけど、ただの確率分布ってわけじゃなくて、3つのパーツから成り立っているんだ。ざっくりいうとこの3つだよ」

  • 確率分布(データの型はなにか)

  • 回帰係数×共変量

  • リンク関数(平均をどう変換して共変量と結びつけるか)

私「で、それがfamily、y ~ x1 + x2、linkなの?」

お父さん「そう。glm()は、確率分布+回帰係数×共変量+リンクを指定してるだけなんだ」

私「y ~ x1 + x2は私もわかるよ。調べたい変数をいれるんでしょ」

お父さん「そうだね。Rの中では、この式がデザイン行列\(Z\)に変換されてる」

Z <- model.matrix(~ x1 + x2, data = dat)

お父さん「ちょっとマニアックだけど、Rの内部では、model.matrix()っていう関数で、デザイン行列\(Z\)を作っている。\(Z\)の最初の列はすべて1になる。これは回帰直線でいう切片に対応している。次の列以降はx1とx2に対応する値が計算される。こうしておくと、たとえばx1が文字列でも数値に置き換えて計算できたり、回帰係数との掛け算が行列として計算できたり、なにかと都合がいい。ここまで覚えなくていいけど、仕組みを知っておくと理解が進むでしょ」

私「なるほどね、じゃあfamilyってなに?データの型?」

お父さん「そう。familyは日本語では分布族の意味だね。正確には指数型分布族(exponential family)。前にいったみたいに、データの型にあわせて確率分布を選ぶ」

  • 連続データ: gaussian()
  • 2値データ: binomial()
  • 計数データ: poisson()
glm(y ~ x1 + x2, family = gaussian(), data = dat)
glm(y ~ x1 + x2, family = binomial(), data = dat)
glm(y ~ x1 + x2, family = poisson(), data = dat)

お父さん「ただしね、一般化線型モデルではデフォルト仕様みたいなものがあって、familyを指定すると以下の3つが一度に決まるっていう特徴がある」

  • yの確率分布
  • yの分散
  • その確率分布にあったリンク関数

私「リンク関数ってなんだ?」

お父さん「リンク関数(link function)は、平均をどう変換して回帰係数×共変量にあわせるかだよ。family = binomial()は、デフォルトでロジット関数(logit function)というリンク関数を使っている。ロジット関数が、2項分布の構造にあった”自然な”リンク関数なんだ。これがロジスティック回帰だよ」

私「そっか、よかった。うん、けっこうわかったから今日はもういい」

このエピソードに関係するクイズです

ロジスティック回帰のリンク関数は、ロジット関数以外のものを代わりに使うことができます。リンク関数をうまく指定してリスク\(\pi\)を変換することで、オッズ比以外の関連の指標を求められることが知られています。次の指標のうち、対応するリンク関数がなく、求められないものはどれでしょうか。

  1. リスク差
  2. リスク比
  3. ハザード比
  4. 1、2、3すべて求めることができる
答えはこちら
  • 正解は4です

一般化線型モデルはロジスティック回帰を一般化したもので、「リンク関数」を変えることで、さまざまな指標を計算できます(田中2022)。詳しくはのちのエピソードで述べますが、リンク関数は、ロジスティック回帰でいえば、リスク\(\pi\)を関数\(g(\pi)\)を用いて変換しています。

リスク差を求めるには、\(g(\pi)=\pi\)つまり恒等関数を指定します。

リスク比を求めるには、\(g(\pi)=\log(\pi)\) つまり対数関数を指定します。

ハザード比を求めるには、\(g(\pi)=\log\{-\log⁡(1-\pi)\}\)つまり補2重対数(complementary log-log)関数を指定します。

文献

  • 田中司朗. 医学研究のための因果推論I. 一般化線型モデル. 東京: 朝倉書店; 2022

次のエピソードとRスクリプト

  • Logit: How a Transformation Shapes an Effect
  • logistic-regression.R
他のエピソードはこちら

このシリーズのエピソード

  • Understanding Collapsibility of Effect Measures: Marginal vs Stratified
  • From Risk to Logistic Regression
  • Logit: How a Transformation Shapes an Effect
  • Where My Logistic Regression Went Wrong
  • Why Logistic Regression Fails in Small Samples
  • Understanding Confounding in Effect Measures: Marginal vs Stratified

過去のシリーズ

  • Study Design I
  • Frequentist Thinking I
  • Frequentist Experiments I
  • Effects and Time I

用語集

  • Statistical Terms in Plain Language