MENU

【無料プレゼント付き】学会発表・論文投稿に必要な統計を最短で学ぶことができる無料メルマガ

媒介因子とは?研究デザインにおける重要な概念を徹底解説


疫学研究や社会科学研究において、ある事象が別の事象に影響を与えるメカニズムを解明することは非常に重要である。しかし、単に「AがBを引き起こす」というだけでなく、その間に別の要因が介在することがよくある。このような時に登場するのが「媒介因子」「中間因子」「交絡因子」といった概念である。これらの概念は混同されがちであるが、それぞれが持つ意味と役割を理解することは、研究結果を正しく解釈し、より適切な介入策を検討するために不可欠である。本記事では、特に「媒介因子」に焦点を当て、その概要から具体的な例、そして「中間因子」「交絡因子」との違いについて、Rを用いた計算例も交えながら詳しく解説する。

>>もう統計で悩むのは終わりにしませんか? 

↑1万人以上の医療従事者が購読中

目次

媒介因子の概要と具体例

媒介因子(Mediator)とは、独立変数(原因となる変数)が従属変数(結果となる変数)に影響を与える際に、その因果関係を部分的に、あるいは完全に説明する第三の変数である。つまり、独立変数は直接的に従属変数に影響を与えるのではなく、媒介因子を介して従属変数に影響を与える。

模式的に表すと、以下のようになる。

$$ \text{独立変数} \rightarrow \text{媒介因子} \rightarrow \text{従属変数} $$

例えば、「学習時間が長いほど試験の得点が高くなる」という関係は理にかなっている。この時、「学習時間が長いと理解度が上がり、その結果試験の得点が高くなる」という繋がりが考えられる場合、”理解度”が媒介因子となる。学習時間(独立変数)が理解度(媒介因子)に影響を与え、その理解度(媒介因子)が試験の得点(従属変数)に影響を与えている、という構図である。

媒介因子を特定し、その影響を分析することで、因果関係の「なぜ?」をより深く理解することが可能となる。

媒介因子、中間因子、交絡因子の違い

ここで、混同しやすい「中間因子」と「交絡因子」との違いを明確にしておく。

  • 媒介因子(Mediator):独立変数が従属変数に影響を与える「経路」の一部となる変数。独立変数が媒介因子に影響を与え、媒介因子が従属変数に影響を与えるという、因果の連鎖の中に位置する。媒介因子を統計的に調整(コントロール)すると、独立変数と従属変数の直接的な関係が弱まる、あるいは消失することが期待される。
  • 中間因子(Intermediate Variable):媒介因子とほぼ同義で使われることが多いが、文脈によっては特定の時点での「中間的なアウトカム」を指すこともある。しかし、因果の経路を説明する役割という意味では、媒介因子と同じと考えて差し支えない。
  • 交絡因子(Confounder):独立変数と従属変数の両方に関連し、かつ独立変数と従属変数の因果経路には含まれない第三の変数である。交絡因子が存在すると、独立変数と従属変数の間の見かけ上の関係が、実際よりも強く見えたり、弱く見えたり、あるいは存在しない関係があるように見えたりすることがある。交絡因子は、真の因果関係を歪めるため、研究においては統計的に調整(コントロール)する必要がある。

模式的に表すと、以下のようになる。

交絡因子:

$$ \text{独立変数} \leftarrow \text{交絡因子} \rightarrow \text{従属変数} $$

媒介因子:

$$ \text{独立変数} \rightarrow \text{媒介因子} \rightarrow \text{従属変数} $$

重要な違いは、交絡因子が「独立変数と従属変数の両方に影響を与える外部の要因」であるのに対し、媒介因子は「独立変数が従属変数に影響を与えるメカニズムの一部」であるという点である。交絡因子は「取り除くべき歪み」であり、媒介因子は「解明すべきメカニズム」であると考えると分かりやすいだろう。


>>もう統計で悩むのは終わりにしませんか? 

↑1万人以上の医療従事者が購読中

具体例のR計算例

ここでは、媒介効果を分析するための代表的な方法である回帰分析を用いたアプローチをRで示す。架空のデータを用いて、「学習時間」が「試験の得点」に与える影響を「理解度」が媒介するかどうかを検証する。

R スクリプト例:

# データの作成 (架空のデータ)
set.seed(123) # 再現性のためのシード設定
n <- 100 # サンプルサイズ
学習時間 <- round(runif(n, 1, 10)) # 1時間から10時間の間で一様乱数
理解度 <- round(2 * 学習時間 + rnorm(n, 0, 1)) # 学習時間が理解度に影響
試験の得点 <- round(3 * 理解度 + 5 * 学習時間 + rnorm(n, 0, 5)) # 理解度と学習時間の両方が試験の得点に影響

# データフレームにまとめる
df <- data.frame(学習時間, 理解度, 試験の得点)

# 1. 学習時間が試験の得点に与える直接効果 (媒介因子を考慮しない場合)
model_total_effect <- lm(試験の得点 ~ 学習時間, data = df)
summary(model_total_effect)

# 2. 学習時間が理解度に与える影響
model_mediator_path <- lm(理解度 ~ 学習時間, data = df)
summary(model_mediator_path)

# 3. 理解度が試験の得点に与える影響 (学習時間を調整)
model_outcome_path <- lm(試験の得点 ~ 理解度 + 学習時間, data = df)
summary(model_outcome_path)

# 媒介効果の計算 (Baron & Kenny の手法に基づく)
# 直接効果 (c') = model_outcome_path の学習時間の係数
# 間接効果 (ab) = model_mediator_path の学習時間の係数 * model_outcome_path の理解度の係数
# 全効果 (c) = model_total_effect の学習時間の係数

# 結果の表示 (手計算で確認)
total_effect <- coef(model_total_effect)["学習時間"]
direct_effect <- coef(model_outcome_path)["学習時間"]
indirect_effect <- coef(model_mediator_path)["学習時間"] * coef(model_outcome_path)["理解度"]

cat("全効果 (Total Effect):", total_effect, "\n")
cat("直接効果 (Direct Effect):", direct_effect, "\n")
cat("間接効果 (Indirect Effect):", indirect_effect, "\n")
cat("直接効果 + 間接効果 (c' + ab):", direct_effect + indirect_effect, "\n")

# さらに詳細な媒介分析を行うパッケージ (例: `mediation` パッケージ) を利用することも推奨される。
# install.packages("mediation")
# library(mediation)
# med.result <- mediate(model_mediator_path, model_outcome_path, treat="学習時間", mediator="理解度", boot=TRUE)
# summary(med.result)

実行結果:

> # 1. 学習時間が試験の得点に与える直接効果 (媒介因子を考慮しない場合)
> model_total_effect <- lm(試験の得点 ~ 学習時間, data = df)
> summary(model_total_effect)

Call:
lm(formula = 試験の得点 ~ 学習時間, data = df)

Residuals:
     Min       1Q   Median       3Q      Max 
-11.7525  -3.6767  -0.6388   3.8685  13.1717 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   0.2831     1.2234   0.231    0.817    
学習時間     10.9242     0.2026  53.908   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 5.264 on 98 degrees of freedom
Multiple R-squared:  0.9674,    Adjusted R-squared:  0.967 
F-statistic:  2906 on 1 and 98 DF,  p-value: < 2.2e-16

> # 2. 学習時間が理解度に与える影響
> model_mediator_path <- lm(理解度 ~ 学習時間, data = df)
> summary(model_mediator_path)

Call:
lm(formula = 理解度 ~ 学習時間, data = df)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.9446 -0.9234  0.0681  1.0554  2.0892 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.04698    0.23770  -0.198    0.844    
学習時間     1.99578    0.03937  50.692   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.023 on 98 degrees of freedom
Multiple R-squared:  0.9633,    Adjusted R-squared:  0.9629 
F-statistic:  2570 on 1 and 98 DF,  p-value: < 2.2e-16

> # 3. 理解度が試験の得点に与える影響 (学習時間を調整)
> model_outcome_path <- lm(試験の得点 ~ 理解度 + 学習時間, data = df)
> summary(model_outcome_path)

Call:
lm(formula = 試験の得点 ~ 理解度 + 学習時間, data = df)

Residuals:
    Min      1Q  Median      3Q     Max 
-7.1760 -3.6993 -0.8468  2.9250 15.3789 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   0.3949     1.0907   0.362    0.718    
理解度        2.3793     0.4634   5.134 1.46e-06 ***
学習時間      6.1756     0.9424   6.553 2.71e-09 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.692 on 97 degrees of freedom
Multiple R-squared:  0.9743,    Adjusted R-squared:  0.9738 
F-statistic:  1842 on 2 and 97 DF,  p-value: < 2.2e-16

> cat("全効果 (Total Effect):", total_effect, "\n")
全効果 (Total Effect): 10.92419 
> cat("直接効果 (Direct Effect):", direct_effect, "\n")
直接効果 (Direct Effect): 6.175633 
> cat("間接効果 (Indirect Effect):", indirect_effect, "\n")
間接効果 (Indirect Effect): 4.748561 
> cat("直接効果 + 間接効果 (c' + ab):", direct_effect + indirect_effect, "\n")
直接効果 + 間接効果 (c' + ab): 10.92419 

結果解釈

上記Rコードの出力結果を基に解釈を行う。

  • model_total_effectの解釈:
    • 学習時間の係数(Total Effect: c)は、学習時間試験の得点に与える直接的な(媒介因子を考慮しない)影響を示す。この係数が統計的に有意であれば、学習時間試験の得点に何らかの影響を与えていることが示唆される。
  • model_mediator_pathの解釈:
    • 学習時間の係数(Path a: a)は、学習時間理解度に与える影響を示す。これが統計的に有意であれば、学習時間が増えることで理解度も向上することが分かる。これは媒介効果の第一段階である。
  • model_outcome_pathの解釈:
    • 理解度の係数(Path b: b)は、学習時間を調整した上で、理解度試験の得点に与える影響を示す。これが統計的に有意であれば、理解度が高いほど試験の得点も高くなることが示唆される。
    • 学習時間の係数(Direct Effect: c′)は、理解度を調整した上での学習時間試験の得点に与える直接的な影響を示す。もし、model_total_effect学習時間の係数と比較してこの係数が小さくなるか、統計的に有意でなくなった場合、理解度が媒介因子として機能している可能性が高い。

媒介効果の判断:

  • 全効果 (c) の存在: 独立変数と従属変数間に有意な関係があること。
  • Path a (a) の存在: 独立変数が媒介因子に有意な影響を与えること。
  • Path b (b) の存在: 独立変数で調整した上で、媒介因子が従属変数に有意な影響を与えること。
  • 直接効果 (c′) の減少または非有意化: 全効果と比較して、媒介因子をモデルに含めることで独立変数から従属変数への直接的な影響が有意に減少するか、統計的に有意でなくなること。

間接効果(ab)は、独立変数が媒介因子を介して従属変数に与える影響の大きさを表す。一般的に、全効果 (c) は直接効果 (c′) と間接効果 (ab) の合計として表現される (c=c′+ab)。

上記のRの計算結果では、手計算でこれらの値を出力している。

mediationパッケージのような専用のツールを使用すると、より厳密なブートストラップ法などを用いた信頼区間の算出や、より複雑なモデルの分析が可能となる。


まとめ

本記事では、研究デザインにおいて非常に重要な概念である「媒介因子」について解説した。媒介因子は、独立変数が従属変数に影響を与えるメカニズムを解明するための鍵となる変数である。中間因子とほぼ同義で用いられることが多いが、因果関係を歪める「交絡因子」とはその役割が大きく異なる。

媒介因子を適切に分析することは、単なる相関関係の把握に留まらず、因果関係の「なぜ?」を深く理解し、より効果的な介入策や政策を立案するための基礎となる。Rなどの統計ソフトウェアを用いることで、これらの複雑な関係性を定量的に分析することが可能である。研究を行う際には、媒介因子、中間因子、交絡因子それぞれの役割を明確に理解し、適切な分析手法を選択することが、質の高い研究成果へと繋がるだろう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

リサーチクエスチョン探し?データ分析?論文投稿?、、、で、もう悩まない!

第1章臨床研究ではなぜ統計が必要なのか?計画することの重要性
  • 推定ってどんなことをしているの?
  • 臨床研究を計画するってどういうこと?
  • どうにかして標本平均を母平均に近づけられないか?
第2章:研究目的をどれだけ明確にできるのかが重要
  • データさえあれば解析でどうにかなる、という考え方は間違い
  • 何を明らかにしたいのか? という研究目的が重要
  • 研究目的は4種類に分けられる
  • 統計専門家に相談する上でも研究目的とPICOを明確化しておく
第3章:p値で結果が左右される時代は終わりました
  • アメリカ統計協会(ASA)のp値に関する声明で指摘されていること
  • そうは言っても、本当に有意差がなくてもいいの…?
  • なぜ統計専門家はp値を重要視していないのか
  • 有意差がない時に「有意な傾向があった」といってもいい?
  • 統計を放置してしまうと非常にまずい
第4章:多くの人が統計を苦手にする理由
  • 残念ながら、セミナー受講だけで統計は使えません。
  • インプットだけで統計が使えない理由
  • どうやったら統計の判断力が鍛えられるか?
  • 統計は手段なので正解がないため、最適解を判断する力が必要
第5章:統計を使えるようになるために今日から何をすれば良いか?
  • 論文を読んで統計が使えるようになるための5ステップ
第6章:統計を学ぶために重要な環境
  • 統計の3つの力をバランスよく構築する環境

以下のボタンをクリックして、画面に出てくる指示に従って、必要事項を記入してください。

この記事を書いた人

統計 ER ブログ執筆者

元疫学研究者

コメント

コメントする

目次