SEM(構造方程式モデリング)は、心理学や社会学といった分野で複雑な因果関係を分析する際に非常に強力なツールとなる。しかし、アンケート調査などで収集されるデータには、回答者の個人的な解釈の違いや測定尺度の不完全性から生じる「測定誤差」がつきものだ。この測定誤差を適切に扱わないと、分析結果の信頼性が損なわれてしまう可能性がある。
そこで本記事では、測定誤差を考慮しながら潜在変数(直接観測できない概念)と観測変数(直接観測できるデータ)の関係を分析できるMIMICモデル (Multiple Indicators, Multiple Causes Model) について解説する。MIMICモデルの基本的な考え方から、その活用場面、具体的な計算例まで、SEMを用いたデータ分析を行う者にとって役立つ情報を提供する。
MIMICモデルの概略
MIMICモデルは、SEMの一種であり、潜在変数(例: 顧客満足度、学習意欲)が複数の観測変数(例: アンケートの質問項目)によって測定され、かつその潜在変数がさらに複数の共変量(例: 性別、年齢、教育レベルなど、潜在変数に影響を与える可能性のある変数)によって影響を受ける構造を分析するためのモデルである。
より具体的に言うと、MIMICモデルは以下の2つのパートから構成される。
- 測定モデル(Measurement Model): 潜在変数が複数の観測変数にどのように影響を与えるかを示す。これは、観測変数が潜在変数の指標(indicator)として機能することを意味する。観測変数にはそれぞれ測定誤差が伴うと仮定される。
- 構造モデル(Structural Model): 潜在変数が共変量によってどのように影響を受けるかを示す。これにより、共変量が潜在変数に直接的な影響を与えるパスを推定できる。
MIMICモデルを用いることで、潜在変数とその共変量の関係を、測定誤差を考慮した上で推定することが可能になる。これにより、より正確で信頼性の高い分析結果を得ることができる。
MIMICモデルの使い所
MIMICモデルは、以下のような場面で特に有効だ。
- 測定誤差を考慮した潜在変数の分析: 心理学的な構成概念(例: パーソナリティ特性、精神的健康)や社会学的な概念(例: 社会的資本、文化資本)など、直接測定が難しい潜在変数を扱う際に、その測定誤差をモデルに組み込むことができる。
- 共変量による潜在変数の説明: 性別、年齢、社会経済的地位といった観測可能な共変量が、潜在変数にどのように影響を与えるかを明らかにしたい場合。例えば、「教育年数が学習意欲(潜在変数)にどのように影響するか」といった問いに答えることができる。
- グループ間の比較: 異なるグループ間で潜在変数の平均値に差があるかを、共変量の影響を調整した上で検討したい場合。MIMICモデルを拡張して多群MIMICモデルとして利用することも可能だ。
- 尺度バイアスの検出: ある観測変数が、特定の共変量によって直接影響を受けている(測定モデルに加えて共変量から観測変数へのパスがある)場合に、それを検出することができる。これは「項目機能の差動分析 (DIF: Differential Item Functioning)」と呼ばれることもある。
具体例
ここでは、「従業員の職務満足度」を潜在変数として考え、それが「仕事のやりがいに関する5つの質問項目」によって測定され、さらに「年齢」と「勤続年数」という共変量によって職務満足度が影響を受けるというMIMICモデルを想定する。
R 計算例
Rのlavaan
パッケージを用いたMIMICモデルの簡単なコード例を示す。
R スクリプト例:
# lavaanパッケージを読み込む
library(lavaan)
# サンプルデータを作成(実際には自身のデータを使用する)
# 便宜上、架空のデータを生成する
set.seed(123)
data <- data.frame(
age = round(rnorm(100, 40, 10)), # 年齢
tenure = round(rnorm(100, 10, 5)), # 勤続年数
q1 = round(rnorm(100, 3, 1)), # 質問1 (職務満足度)
q2 = round(rnorm(100, 3.2, 0.9)), # 質問2
q3 = round(rnorm(100, 2.8, 1.1)), # 質問3
q4 = round(rnorm(100, 3.5, 0.8)), # 質問4
q5 = round(rnorm(100, 3.1, 1)) # 質問5
)
# 潜在変数 'job_satisfaction' に影響を与えるようにデータを調整
data$job_satisfaction_true <- 0.5 * data$age + 0.3 * data$tenure + rnorm(100, 0, 0.5)
data$q1 <- data$q1 + data$job_satisfaction_true * 0.5
data$q2 <- data$q2 + data$job_satisfaction_true * 0.6
data$q3 <- data$q3 + data$job_satisfaction_true * 0.4
data$q4 <- data$q4 + data$job_satisfaction_true * 0.7
data$q5 <- data$q5 + data$job_satisfaction_true * 0.5
# MIMICモデルの指定
# job_satisfaction =~ q1 + q2 + q3 + q4 + q5: 潜在変数job_satisfactionがq1-q5によって測定される(測定モデル)
# job_satisfaction ~ age + tenure: 潜在変数job_satisfactionがageとtenureによって予測される(構造モデル)
mimic_model <- '
job_satisfaction =~ q1 + q2 + q3 + q4 + q5
job_satisfaction ~ age + tenure
'
# モデルの実行
fit <- sem(mimic_model, data = data)
# 結果の要約
summary(fit, fit.measures = TRUE, standardized = TRUE)
実行結果:
> summary(fit, fit.measures = TRUE, standardized = TRUE)
lavaan 0.6-19 ended normally after 47 iterations
Estimator ML
Optimization method NLMINB
Number of model parameters 12
Number of observations 100
Model Test User Model:
Test statistic 14.151
Degrees of freedom 13
P-value (Chi-square) 0.363
Model Test Baseline Model:
Test statistic 1107.538
Degrees of freedom 20
P-value 0.000
User Model versus Baseline Model:
Comparative Fit Index (CFI) 0.999
Tucker-Lewis Index (TLI) 0.998
Loglikelihood and Information Criteria:
Loglikelihood user model (H0) -713.710
Loglikelihood unrestricted model (H1) -706.634
Akaike (AIC) 1451.420
Bayesian (BIC) 1482.682
Sample-size adjusted Bayesian (SABIC) 1444.783
Root Mean Square Error of Approximation:
RMSEA 0.030
90 Percent confidence interval - lower 0.000
90 Percent confidence interval - upper 0.106
P-value H_0: RMSEA <= 0.050 0.589
P-value H_0: RMSEA >= 0.080 0.176
Standardized Root Mean Square Residual:
SRMR 0.017
Parameter Estimates:
Standard errors Standard
Information Expected
Information saturated (h1) model Structured
Latent Variables:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
job_satisfaction =~
q1 1.000 4.702 0.980
q2 0.596 0.024 24.768 0.000 2.805 0.945
q3 0.352 0.025 14.145 0.000 1.656 0.829
q4 0.694 0.023 30.376 0.000 3.264 0.969
q5 0.499 0.025 20.249 0.000 2.348 0.912
Regressions:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
job_satisfaction ~
age 0.496 0.011 45.229 0.000 0.106 0.961
tenure 0.306 0.016 19.570 0.000 0.065 0.314
Variances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
.q1 0.924 0.157 5.887 0.000 0.924 0.040
.q2 0.948 0.140 6.776 0.000 0.948 0.108
.q3 1.251 0.179 7.006 0.000 1.251 0.313
.q4 0.704 0.109 6.437 0.000 0.704 0.062
.q5 1.109 0.160 6.910 0.000 1.109 0.167
.job_satisfactn 0.111 0.083 1.337 0.181 0.005 0.005
>
結果解釈
上記のRコードを実行すると、summary(fit, fit.measures = TRUE, standardized = TRUE)
コマンドによって、モデルの適合度指標とパラメータ推定値が出力される。
適合度指標 (Fit Measures)
モデルがデータにどれだけ適合しているかを示す指標だ。
- CFI (Comparative Fit Index), TLI (Tucker-Lewis Index): 一般的に0.90以上、望ましくは0.95以上であれば適合度が高いとされる。
- RMSEA (Root Mean Square Error of Approximation): 0.08以下、望ましくは0.06以下であれば適合度が高いとされる。
- SRMR (Standardized Root Mean Square Residual): 0.08以下であれば適合度が高いとされる。
今回の結果は、これらの指標が良好なため、MIMICモデルがデータ構造を適切に捉えていると考えられる。
パラメータ推定値 (Parameter Estimates)
主に以下の2種類のパスの推定値に注目する。
- 測定パス (Measurement Paths): 潜在変数から観測変数へのパス。
- 例:
job_satisfaction =~ q2
の推定値は、潜在変数「職務満足度」が観測変数「質問2」にどれだけ影響を与えているか(つまり、質問2が職務満足度をどれだけよく測定しているか)を示す。通常、標準化された係数が0.7以上であれば、その観測変数が潜在変数を適切に測定していると判断される。
- 例:
- 構造パス (Structural Paths): 共変量から潜在変数へのパス。
- 例:
job_satisfaction ~ age
の推定値は、共変量「年齢」が潜在変数「職務満足度」にどれだけ影響を与えているかを示す。これは、年齢が1単位増加したときに、職務満足度がどれだけ変化するか(他の共変量を調整した上で)を意味する。このパスが統計的に有意であれば、年齢が職務満足度に有意な影響を与えていると結論できる。
- 例:
標準化された推定値を見ることで、異なるパスの影響力の大きさを比較することができる。また、P値を見て、各パスの推定値が統計的に有意であるかどうかも確認する。
まとめ
MIMICモデルは、測定誤差を考慮した上で潜在変数と観測変数、そして共変量との関係を分析できる強力なSEMモデルだ。心理学、社会学、教育学、マーケティングなど、多岐にわたる分野で、より精緻なデータ分析を行うために活用されている。
本記事で解説したMIMICモデルの概略、使い所、そして具体的なRでの計算例を通じて、皆さんのデータ分析の一助となれば幸いだ。複雑な概念を測定し、その背後にある要因を明らかにしたいときに、MIMICモデルをぜひ活用してみてほしい。
コメント