医療統計学・医療情報学・遠隔医療

医療統計学・医療情報学・遠隔医療 · 12

交絡・バイアスと重回帰

Confounding, Bias and Multiple Linear Regression

🧠 全体像:知りたいのは「その説明だけを動かしたら、はどれだけ変わるか」である。ところが現実の患者は説明以外でも互いに違う。この「他の違い」が推定値を歪めるのがであり、対処は層別か重回帰、あるいは最初から違いを消してしまうである。ただし「を入れれば入れるほど正しくなる」わけではない——因果経路の途中にあるを入れると、測りたい効果そのものを削ってしまう。

何を推定したいのか

医学の問いはたいてい因果的である。

  • 危険因子は疾患を起こすか、どれくらい起こすか
  • 治療は疾患に効くか、どれくらい効くか

問いは2つに分解できる。① そもそも効果はあるか(効果 ≠ 0 か)、② あるならどれくらいか。①は②に含まれるので、実務上は「効果量とその不確実性を推定する」という一つの作業になる。

線形回帰では、その効果量が傾きである(相関と単回帰)。

説明変数がカテゴリでも回帰は使える

2値のカテゴリ(男/女、治療/対照)は、片方を0、他方を1とすれば、そのまま回帰に入る。数学も誤差の計算もすべて同じである。

このとき

  • 切片 = 0 とした群の平均
  • 傾き = 2群の平均の差

⭐ したがって、2値説明の傾きの推定・・仮説検定は、対応のない t 検定(平均の差)とまったく同じことをしている(平均の比較とt検定)。

例:睡眠時間(分/日)を性別(女=0、男=1)で回帰すると

SLEEPING^=388.96+106.3×SEX\widehat{\text{SLEEPING}} = 388.96 + 106.3 \times \text{SEX}

読み方:女性の平均睡眠時間は約389分、男性はそれより平均106.3分長い。

💡 この見方が重要なのは、「群間比較」と「連続の効果」を1つの枠組みに統一できるからである。統一できるからこそ、両方を同時にモデルに入れる(=重回帰)ことができる。

交絡とは何か

とは、あるに現れた効果を、ある説明の効果だと見なしたのに、実はそうではない(あるいはその大きさではない)状態をいう。観察された効果 ≠ 本当の効果。

⭐ には3つの条件がすべて必要である。

flowchart TD
  Z["<span class='jp-term jp-term-diagram' title='confounding factor'>交絡因子</span> Z<br>例: 性別"] -->|"条件①: Z は X と関連する"| X["説明<span class='jp-term jp-term-diagram' title='variables'>変数</span> X<br>例: 身長"]
  Z -->|"条件②: Z は X とは独立に<br>Y の危険因子である"| Y["<span class='jp-term jp-term-diagram' title='all-or-none outcomes'>アウトカム</span> Y<br>例: 睡眠時間"]
  X -.->|"条件③: Z はこの矢印の<br>途中にはいない<br>(実際の効果は弱い/無い)"| Y
条件 内容 満たさないと
① 曝露(説明)と関連している しない
② 曝露とは独立にの危険因子である しない
③ 曝露からへの因果経路の上にない であり、調整すると効果を削る

⚠️ 「とは、説明との両方に影響するである」と説明されることがあるが、正確には③の条件が要る。③を落とすと、「Xの結果でありYの原因でもある」——つまり中間——までに見えてしまい、調整してはならないものを調整することになる1。

医学で最も頻出するは性別と年齢。だから研究では常に記録する。

教科書的な例:身長と睡眠障害

ある研究で「身長が高いほど睡眠障害が多い」という関連が観察された。もっともらしい説明は作れる(ベッドが短い、体を丸めて寝る)。しかし実際には——

  • 睡眠障害は男性に多い
  • 男性は身長が高い

男女を分けて見ると、身長の効果はほとんど消える。性別がである。

中間変数を調整するのは「交絡の調整」ではない

これが実務で最も重い誤りである。

flowchart TD
  A["運動(曝露 X)"] --> B["血圧が下がる(中間<span class='jp-term jp-term-diagram' title='variables'>変数</span> M)"]
  B --> C["心血管イベントが減る(<span class='jp-term jp-term-diagram' title='all-or-none outcomes'>アウトカム</span> Y)"]
  A -->|"血圧を介さない<span class='jp-term jp-term-diagram' title='direct effect'>直接効果</span>"| C
  D["⚠️ 血圧で調整すると<br>A→B→C の経路が閉じる"] --> E["残るのは<span class='jp-term jp-term-diagram' title='direct effect'>直接効果</span>だけ<br>『運動は効かない』と見える"]

運動が心血管イベントに与える全体の効果を知りたいのに血圧で調整すると、血圧を介した経路(まさに運動が効いている主要な仕組み)が推定から抜け落ちる。結果として効果は過小評価され、極端な場合は消える。これをover-adjustment(過剰調整)という1。

⚠️ 同様に、曝露との共通の「結果」(コライダー、collider)を調整してはならない。共通結果でると、もともとだった2の間に見せかけの関連が生じる。実習資料の「従属の結果であるはモデルに入れない」という注意はこれを指している。

💡 判定の順序は「統計的にどうか」ではなく「因果の向きから見てどこにあるか」である。 がXの前にあるなら候補、XとYの間にあるなら中間、XとYの後にあるならコライダー。データだけを見てもこの3つは区別できない——領域知識が要る。

Simpson のパラドックス

⭐ 層別すると、全体で見えた関連の向きが逆転しうる。 の最も劇的な形である。

1973年カリフォルニア大学バークレー校の大学院入試2。全体では

出願者 合格率
男性 8442 44%
女性 4321 35%

一見、女性に不利に見える。ところが学科ごとに見ると、大きい6学科は次のようになる。

学科 男性 出願 男性 合格率 女性 出願 女性 合格率
A 825 62% 108 82%
B 560 63% 25 68%
C 325 37% 593 34%
D 417 33% 375 35%
E 191 28% 393 24%
F 373 6% 341 7%

ほとんどの学科で女性の合格率は男性と同等か高い。逆転の原因は、女性が合格率の低い学科(C〜F)に集中して出願していたことである。学科がであり、①女性であることと関連し、②学科自体が合格率を決め、③性別→合格の因果経路上にはない。

⚠️ 「層別したほうが常に正しい」わけではない。 層別が中間やコライダーなら、層別したほうが誤る。ここでも判断は因果構造から行う。

バイアス —— 標本の作り方や測り方から生じる歪み

は「集団の中に他の違いがある」問題だが、は「そもそも集めたデータが歪んでいる」問題である。全数を調べても(=標本誤差が0でも)残る。

選択バイアス

研究に組み入れられた人と、そうでない人(あるいは群間)で、に影響する性質が違うときに生じる。

例 何が起きたか
新薬群とプラセボ群で女性の割合が違う 性別がに効くのに、が偏っている
発症した人ほど脱落する。しかも脱落しやすさがで違う
対照群の取り方 骨折患者を外傷科から、対照を内科から集める。内科の患者には糖尿病など別の疾患が多い

情報バイアス

集めた情報そのものが誤っているときに生じる。

例 何が起きたか
小児がんの子の親は、健康な子の親より過去の感染症をよく覚えている
群によって測定機器・測定者・が違う
Hawthorne 効果 観察されていることを意識して、の行動が変わる

⚠️ Hawthorne 効果を「小児・高齢者など特定の集団がより多く検査される」と説明することがあるが、正確には Hawthorne 効果は「研究に参加し観察されていると知っていることによって、の行動そのものが変化する」現象である3。特定集団がより多く検査されるために疾患が多く見つかることは、発見(監視)という別の現象である。両者を混同すると対策も間違える——前者への対策は、後者への対策は群間で同一の検査プロトコルを使うことである。

なお、の体系的な一覧は Catalogue of Bias(Oxford, 2017–)にまとめられている。

研究デザインが、防げる誤りを決める

flowchart TD
  A["臨床研究"] --> B["観察研究"]
  A --> C["介入研究"]
  B --> D["<span class='jp-term jp-term-diagram' title='cross-sectional study'>横断研究</span><br>曝露と<span class='jp-term jp-term-diagram' title='all-or-none outcomes'>アウトカム</span>を同時に測る"]
  B --> E["<span class='jp-term jp-term-diagram' title='case-control study'>症例対照研究</span><br><span class='jp-term jp-term-diagram' title='all-or-none outcomes'>アウトカム</span>で選び、過去の曝露を遡る"]
  B --> F["<span class='jp-term jp-term-diagram' title='cohort study'>コホート研究</span><br>曝露で選び、<span class='jp-term jp-term-diagram' title='all-or-none outcomes'>アウトカム</span>を追う"]
  C --> G["<span class='jp-term jp-term-diagram' title='randomized controlled trial (RCT)'>無作為化比較試験</span>(RCT)<br>介入を割り付ける"]
  D --> H["⚠️ 時間の情報がなく<br>因果の向きが決まらない"]
  E --> I["稀な疾患に効率的<br>後ろ向き"]
  F --> J["前向きなら時間性が担保される"]
  G --> K["<span class='jp-term jp-term-diagram' title='randomized'>無作為化</span>により、測っていない<span class='jp-term jp-term-diagram' title='confounding factor'>交絡因子</span>も期待値として均等化される"]
デザイン 何で選ぶか 向き
集団全体を一時点で なし
の有無 後ろ向き
曝露の有無 前向き(曝露時点で結果未発生)/後ろ向き
RCT 介入を無作為に割り付ける 前向き

⭐ の本質は「測っていないまで均等化できる」ことである。 重回帰で調整できるのは記録しただけなので、観察研究には常にが残る。

⚠️ ただし「すればは消える」と説明されることがあるが、正確にはが対処するのは時点のだけである。後に生じる追跡脱落による、およびはでは防げない——前者には ITT 解析、後者にはが要る。また n が小さければ、してもの不均衡は残る。

層別か、重回帰か

観察研究でを扱う方法は2つある。

方法 やり方 限界
のカテゴリで分けて、層ごとに効果を推定 層の数が爆発する。連続だと層に切れない。層あたりの n が減って推定が不安定
候補を説明として同じモデルに入れる 記録したしか調整できない。関数形の仮定が要る

⚠️ どちらの方法でも、を測っていなければ手の打ちようがない。 だから「性別と年齢は必ず記録する」という運用が要る。

重回帰

Y=β0+β1X1+β2X2+⋯+βkXk+εY = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_k X_k + \varepsilon

前提(この講義の範囲で置く簡略化):

  1. 数値の説明とは線形関係にある
  2. 説明の間に作用がない

💡 とは、ある説明の効果が、別の説明の値によって変わることをいう(例:薬の効果が年齢によって違う)。「効果が他のの値に依存しない」のは作用が無いという仮定のほうである。この仮定は緩めることもできる(モデルに積の項を入れる)が、この講義では扱わない。

係数の意味

⭐ β1\beta_1 は「他の説明の値が変わらないとき、X1X_1 が1単位増えるとYが平均してどれだけ変わるか」である。

式で見ると、X1X_1 だけを1増やして他をそのままにしたときの差がちょうど β1\beta_1 になる。

E[Y∣X1=x+1, X2,…]−E[Y∣X1=x, X2,…]=β1E[Y \mid X_1 = x+1,\, X_2, \ldots] - E[Y \mid X_1 = x,\, X_2, \ldots] = \beta_1

💡 「他を一定に保つ」とは、この引き算で β2X2,…,βkXk\beta_2 X_2, \ldots, \beta_k X_k がされることを指しているだけである。 実際に患者の X1X_1 だけを動かせるという意味ではない——モデルに X2X_2 が入っていなければ、X2X_2 は引き算で消えず、β1\beta_1 の中に混ざったまま残る。これが残余である。

交絡が数字に現れるところ

実習の睡眠データ(n = 130、睡眠時間は分/日、身長は cm)。

モデル 式 身長の傾き 有意性
身長のみ Y^=−316.1+4.418 HEIGHT\widehat{Y} = -316.1 + 4.418,\text{HEIGHT} 4.418 分/cm 有意
性別のみ Y^=388.96+106.3 SEX\widehat{Y} = 388.96 + 106.3,\text{SEX} — 有意
身長+性別 Y^=194.08+1.193 HEIGHT+89.39 SEX\widehat{Y} = 194.08 + 1.193,\text{HEIGHT} + 89.39,\text{SEX} 1.193 分/cm 有意でない

⭐ 身長の傾きが 4.418 から 1.193 へ、7割以上縮んだ。 これがの姿である。粗い(crude)推定では「身長10 cm あたり44分」に見えたものが、性別を考慮すると「身長10 cm あたり12分」になり、しかもその推定は0と区別できない。見えていた効果の大部分は、実は性別の効果が身長に乗っていたものだった。

同じことは出生体重と成人体重でも起きる:性別を入れないと出生体重1 g あたり0.0091 kg、性別を入れると0.0056 kg。

⚠️ 「身長が10 cm 高いと睡眠時間が44.2分増える」と書かれることがあるが、観察研究の回帰係数は関連の記述であって介入の効果ではない。正確には「身長が10 cm 高い人は、平均して睡眠時間が44.2分長かった」。この差が重要なのは、まさにこの44.2分が由来だったからである。

傾きの単位に注意。この実習では relevance の閾値を「10 cm あたり30分=3 分/cm」と定めている。結果を見るときに「傾きが30を超えているから relevant」と書くと単位が10倍ずれる。傾きは常に「Yの単位 / Xの単位」で読む。

「有意でない」を「効果がない」と読まない

上の表で身長の傾きは有意でない(95%CI が0を含む)。しかしは 1.193 分/cm、つまり10 cm で約12分である。CI の上端が臨床的にできない値なら、「身長は関係ない」とはできない——できるのは「このデータでは身長の独立した効果を示せなかった」までである(統計的議論の組み立てとよくある誤り)。

「他を一定に保つ」が保証すること、しないこと

licenses(言ってよい) does not license(言ってはならない)
モデルに入った他のの値が同じ2人を比べたときの、Yの 「その患者のX₁を実際に変えたらYがそれだけ変わる」——因果の主張には、調整集合が正しいという別の前提が要る
モデルの範囲内での比較 データに存在しないの組合せへの外挿(身長210 cm の女性など)
測定したの影響を除いた比較 測っていないの影響も除いたという主張(残余)
が正確に測れている場合の調整 を誤差込みで測っているときの完全な調整——があると調整は不完全にしか効かない

⚠️ モデルの表に並ぶ係数を、どれも同じ意味で読んではならない。 主たる曝露の係数を推定するために入れた共変量(例:上のモデルの SEX)の係数は、その共変量自身の因果効果としては解釈できない。共変量にとっての正しい調整集合は、主たる曝露にとっての調整集合とは違うからである。これを Table 2 fallacy という4。表に載っているというだけの理由で全部を「調整済み効果」と読むのは誤りである。

どの変数を入れ、どれを入れないか

入れる 入れない
に影響する 中間(曝露の結果でありの原因)
説明の一つに影響する コライダー(の結果である)
性別・年齢(ほぼ常に) 同じものを二重に測っている(身長の cm と m など。多重共線性を起こす)

⚠️ 実習資料の「従属に影響すると、説明の一つに影響するをすべて入れる」という規則は、そのまま適用すると中間まで拾ってしまう。正確には「曝露の前にあり、曝露との両方に影響するを入れる」である1。

重回帰の出力をどう読むか

import statsmodels.formula.api as smf

model = smf.ols("SLEEPING ~ HEIGHT + SEX", data=df).fit()
print(model.summary())      # 係数・SE・t・p・95%CI が一覧で出る
print(model.conf_int())     # 信頼区間だけ取り出す

+ は「作用を仮定しない」ことを表す(作用を入れるなら HEIGHT * SEX)。

出力の中央に、説明ごとに1行ずつ次の5つが並ぶ。

列 中身 どう使うか
coef 傾きの 効果量。単位とともに読む
std err その標準誤差 推定の精度。単独では使わない
t / z 検定統計量 ほぼ見ない
P>|t| p値 最後に見る
[0.025 0.975] 95%信頼区間 効果の不確実性の幅。0を含むか、上端下端は臨床的にどうか

💡 出力を読む順序

  1. 主たる説明の coef — 効果量そのもの。単位を付けて言葉にする(「身長1 cm あたり睡眠1.19分」)
  2. 臨床的relevance — 事前に決めた閾値(この実習では3 分/cm)と比べる
  3. 95%信頼区間 — 下端・上端それぞれで臨床的な意味を考える。0を含むかは最後の判断材料
  4. p値 — 最後。有意でも臨床的に無意味な傾きはある

補助的に見るもの:

  • 切片 — 説明がすべて0のときのYの期待値。身長0 cm は存在しないので、この切片自体に意味はない。切片のp値もほとんど意味がない
  • R² — 当てはまりの目安。説明を増やせば必ず上がるので、モデル選択の根拠にしない(調整済み R² でもこの目的には弱い)
  • 他の共変量の coef — Table 2 fallacy に注意

アウトカムが2値のとき —— ロジスティック回帰

が「生存/死亡」「疾患あり/なし」のような2値なら、傾きをそのまま「Yの平均変化」とは読めない。の枠組みに移す。

  • … 起こる確率が、起こらない確率の何倍か
  • … の自然対数
odds=p1−p,logit(p)=ln⁡ ⁣(p1−p)\text{odds} = \frac{p}{1-p}, \qquad \text{logit}(p) = \ln\!\left(\frac{p}{1-p}\right)

線形になるのはロジットのほうである。

ln⁡ ⁣(p1−p)=β0+β1X1+β2X2+⋯\ln\!\left(\frac{p}{1-p}\right) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots

ロジスティック回帰の効果量は (OR) =eβ1= e^{\beta_1} で示され、「他のが同じなら、その説明が1単位増えるとが何倍になるか」を表す。

例:性別で調整したうえで、身長1 cm 増えるごとに睡眠障害のは 1.27倍。

⚠️ 1単位で OR = 1.27 でも、10単位で 10×1.2710 \times 1.27 にはならない。 ロジットが線形なのだから、は掛け算で積み上がる。

OR10 cm=e10β1=(eβ1)10=1.2710≈10.9\text{OR}_{10\,\text{cm}} = e^{10\beta_1} = (e^{\beta_1})^{10} = 1.27^{10} \approx 10.9

線形なのはロジット(対数)のほうであって、でも確率でもない。

をとして読まない。 が稀なときだけ両者は近い(疫学指標・・尤度比)。

モデルの妥当性 —— 診断プロット

条件 どこから分かるか
観測の独立性、単純
線形性、残差の正規性、等分散性、外れ値の少なさ 診断プロット
プロット 理想 悪い例
残差 対 予測値 水平線の周りに一様に散らばる 曲線状のパターン(線形性が破れている)
Scale-Location(残差の平方根) 一様 右に行くほど散らばりが大きい(等分散性が破れている)
残差の正規Q-Qプロット 点が直線に乗る 端が大きく直線から外れる
残差 対 レバレッジ(Cook 距離) 右上・右下の隅に点がない その点を除くと回帰が大きく変わる(影響力の大きい外れ値)

💡 Cook 距離は「その1点を計算から外したら、当てはめがどれだけ動くか」を測る指標である。大きい点は、単に外れているだけでなく、傾きを決めてしまっている。Anscombe の四重奏の第4組がまさにこれである(相関と単回帰)。

⚠️ 前提が満たされないときは、変換・別のモデル(ロバスト回帰、一般化線形モデル)という道がある。満たされていないのに気付かずに直線を当てはめることが最悪の選択である。

まとめ

  • の条件は3つ:① 曝露と関連する、② 曝露とは独立にの危険因子である、③ 因果経路の上にない。③を落とすと中間をと誤認する。
  • 中間を調整するのはの調整ではなく、測りたい効果を削る過剰調整である。 コライダーの調整は存在しない関連を作り出す。
  • Simpson のパラドックスは、層別すると関連の向きすら逆転しうることを示す(バークレー入試1973)。
  • は標本の作り方(選択)と測り方(情報)から生じ、全数調査でも残る。Hawthorne 効果は「観察されていることによるの行動変化」であって、特定集団が多く検査されること(発見)ではない。
  • は測っていないまで均等化する点で層別・重回帰より強いが、追跡脱落とは防がない。
  • 重回帰の係数は「他のを一定に保ったときの効果量」。モデルに入っているについてしか一定に保てない(残余)。他の共変量の係数を同じ意味で読むのは Table 2 fallacy。
  • 出力は 係数と単位 → 臨床的relevance → → p値 の順に読む。「有意でない」は「効果がない」ではない。
  • ロジスティック回帰の効果量は OR。10単位の変化は 10×OR ではなく OR¹⁰。

出典

  1. 1.Overadjustment Bias and Unnecessary Adjustment in Epidemiologic Studies(Epidemiology(著者 Enrique F. Schisterman, Stephen R. Cole, Robert W. Platt)・2009)曝露とアウトカムの因果経路上にある変数(中間変数)や共通結果(コライダー)を調整すると、推定したい効果の一部が消えたり、存在しない関連が生じたりすること閲覧 2026-08-17
  2. 2.Sex Bias in Graduate Admissions: Data from Berkeley(Science(著者 Peter J. Bickel, Eugene A. Hammel, J. William O'Connell)・1975)全体では男性の合格率が高いのに、学科別に見るとほとんどの学科で女性の合格率が同等以上であった(Simpson のパラドックスの実データ例)。原因は女性が合格率の低い学科に多く出願したこと閲覧 2026-08-17
  3. 3.Systematic review of the Hawthorne effect: New concepts are needed to study research participation effects(Journal of Clinical Epidemiology(著者 Jim McCambridge, John Witton, Diana R. Elbourne)・2014)Hawthorne 効果とは、観察されていることを被験者が意識することで行動が変わる現象であること。定義が一定せず、研究参加そのものの影響として捉え直す必要があること閲覧 2026-08-17
  4. 4.The Table 2 Fallacy: Presenting and Interpreting Confounder and Modifier Coefficients(American Journal of Epidemiology(著者 Daniel Westreich, Sander Greenland)・2013)多変量モデルの表に並ぶ係数を、どれも同じ意味の「調整済み効果」として読むのは誤りであること。交絡調整のために入れた共変量の係数は、それ自体の因果効果としては解釈できないこと閲覧 2026-08-17