🔹 共分散構造分析(SEM)とは?
SEM = 因子分析(潜在変数の測定モデル)+回帰分析(構造モデル)を統合したもの
観測できない心理的・概念的な変数(例:ブランド態度、満足度)を扱いながら、因果構造を推定できるのが特徴です。
🔹 SEMの構成
-
測定モデル(Measurement Model)
-
潜在変数(latent variable)と観測変数(質問項目や指標)の関係を表す部分
-
例:
-
ブランド態度(F1)→ 質問項目 Q1, Q2, Q3
-
購買意図(F2)→ 質問項目 Q4, Q5, Q6
-
記法例:
-
-
構造モデル(Structural Model)
-
潜在変数どうし(あるいは観測変数)の因果関係を表す部分
-
例:ブランド態度が購買意図に影響し、それが実際の購買につながる
記法例:
-
-
共分散(Covariance)
-
外生変数どうしの相関関係をモデリングする
-
記法例:
-
🔹 SEMでよく使う分析内容
-
確認的因子分析(CFA):測定モデルだけに注目(因子構造が妥当かを確認)
-
パス解析:構造モデルだけに注目(因果パスの有意性を見る)
-
完全SEM:測定モデル+構造モデルを同時推定
-
媒介分析(mediation):ある変数が媒介しているかを確認(例:広告認知→ブランド態度→購買意図)
-
多母集団分析(multi-group SEM):国・性別・年代で因果構造が同じかを比較
🔹 適合度指標(モデル全体のフィット感)
-
χ²検定:理論モデルとデータの差(p>0.05なら適合)
-
CFI, TLI:0.90以上(望ましくは0.95以上)
-
RMSEA:0.08以下(望ましくは0.05以下)
-
SRMR:0.08以下
🔹 Pythonでの実装(semopy)
# モデル記述(測定+構造)
desc = “””
F1 =~ Q1 + Q2 + Q3
F2 =~ Q4 + Q5 + Q6
F2 ~ F1
Purchase ~ F2
“””
# DataFrameを用意(Q1..Q6, Purchase列を含む)
df = pd.read_csv(“survey.csv”)
# モデル推定
model = Model(desc)
model.fit(df)
# 推定結果
print(model.inspect()) # パラメータ推定値
print(calc_stats(model, df)) # 適合度指標
🔹 マーケティングでの活用例
-
ブランド態度 → 購買意図 → 実購買
-
広告認知やブランドイメージ調査の項目を潜在変数に
-
最終的に売上データや購買意図とつなぐ
-
-
顧客満足 → 推奨意図(NPS) → 継続利用
-
アンケート調査から「満足・信頼」と「NPS」を潜在変数にして分析
-
✅ まとめると:
-
SEMは 「潜在変数と因果構造を統合的に推定」 する方法
-
CFA・パス解析・媒介分析を包含する
-
適合度指標でモデル全体の妥当性を評価
-
Pythonなら
semopy
、Rならlavaan
が代表的実装