Tokyo r7 sem_20100724

7,139 views
6,908 views

Published on

Tokyo.R#7

Published in: Business
0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,139
On SlideShare
0
From Embeds
0
Number of Embeds
635
Actions
Shares
0
Downloads
126
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide

Tokyo r7 sem_20100724

  1. 1. 『 R によるやさしい統計学』 第 17 章 「共分散構造分析」 Bob#3 ( @bob3bob3 ) Tokyo.R#7 2010 年 7 月 24 日
  2. 2. 自己紹介 ✔hatena:bob3 ✔twitter:@bob3bob3 ✔ マーケティングリサーチャー ✔ 文系 ✔ 歌えません。 ✔ 踊れません。 ✔ 好きな音楽 ✔ プログレッシブ・ロック ✔ フォークトロニカ
  3. 3. 共分散構造分析とは? ● 因子分析と重回帰分析を統合した分析 ● それだけではないが、まずはこう理解。 ● 別名「構造方程式モデリング」 ● Structural Esuation Modeling 、略して SEM 。 ● なので、“ sem” パッケージという名前。 ● 複雑な変数間の関係を統計的に検証できる。 ● モデルとデータの当てはまりを検証、評価する。 ● 「適合度」が重要。
  4. 4. 共分散構造分析とは? ● 何がうれしいの? ● 因果関係推論の強力な道具になる。 ● パス図による表現で変数の関係が分かりやすい。 ● どんなデータを使うの? ● 分散共分散行列(相関行列)。 ● 出力のどこを見ればいいの? ● まずは、適合度とパス係数。
  5. 5. 共分散構造分析とは? ● 主に心理学、社会学の世界で発達してきた。 ● 近年はマーケティングの世界でも活用されている。 ● 例)日経 BP コンサルティング「ブランドジャパン」
  6. 6. 共分散構造分析とは? ★ ベネッセの「ブランド間関係性のスコア化」事例 http://www.jmra-net.or.jp/conference/2009/pdf/JKR_091201.pdf
  7. 7. 共分散構造分析の主なツール ● AMOS(SPSS) ● デファクトスタンダード。デモ版( Student Version )あり。 ● EQS ● CALIS(SAS) ● Mplus ● 最強説もあるが、まだ利用者が少ない。 ● 「ブランドジャパン」は Mplus を使っているらしい。
  8. 8. パス図について 相互作用経験 f2 母親価値 f1 協調性 f3
  9. 9. パス図のお約束 〔観測変数〕 パス係数 既知の変数。 (回帰係数) 直接測定できるデータ。 〔潜在変数(因子)〕 未知の変数。 共分散 直接測定できないデータ。 (相関係数) 〔残差〕 外生変数では説明しきれない 効果をひとつにまとめたもの。
  10. 10. パス図のお約束 〔外生変数〕 他の変数から矢印を受けていない変数。 回帰分析における「独立変数(説明変数)」。 〔内生変数〕 他の変数から矢印を受けている変数。 〔残差〕 回帰分析における「従属変数(目的変数)」。 必ず残差を伴う。
  11. 11. パス図と数式 ★ 重回帰分析モデル ★ 因子分析モデル(1因子) x1 e1 y1 b1 b1 x2 b2 e2 y2 b2 b3 y e x x3 b3 e3 y3 b4 b4 x4 e4 y4 y = b1*x1 + b2*x2 + b3*x3 + b4*x4 + e y1 = b1*x + e1 y2 = b2*x + e2 y3 = b3*x + e3 y4 = b4*x + e4
  12. 12. 代表的なモデル ★ 重回帰分析モデル ★ 検証的的因子分析モデル
  13. 13. 代表的なモデル ★ 多重指標モデル ★ 2次因子モデル
  14. 14. 測定方程式、構造方程式 測定方程式 測定方程式 相互作用経験 f2 母親価値 f1 測定方程式 協調性 f3
  15. 15. 測定方程式、構造方程式 構造方程式 相互作用経験 f2 母親価値 f1 協調性 f3
  16. 16. SEM の難しいところ ● ● モデル作りが自由過ぎる。 ● 潜在変数の置き方。 ● 事前に探索的因子分析(最尤法、斜交回転)を行い 仮説を作っておくのが定石。 ● 潜在変数に関する制約の置き方。 ● 潜在変数から内生変数へ伸びるパスのうち一つ の係数を1に固定するのが定石。 ● 外生潜在変数の分散を1に固定する流儀もあ る。
  17. 17. 分析の流れ 1.仮説に基づきモデル(パス図)を描く。 ✔ 探索的因子分析などを利用 2.分析を実行、パス係数などの各パラメーターと 適合度を確認。 3.適合度に問題があればモデルの修正を検討。 ✔ 不要な変数、パス、相関の削除。 ✔ パスや相関の追加。
  18. 18. Rで共分散構造分析 1.sem パッケージについて 2.例題 1.重回帰分析モデル 2.因子分析モデル 3.多重指標モデル ✔ コードはすべてブログに載せておきます。 ● http://d.hatena.ne.jp/bob3/
  19. 19. Rの sem パッケージについて ● R で構造方程式モデリングを実行するための パッケージ ● Rcmdr で知られる John Fox さんが開発 ● 商用のソフトと比べると不満もあるが、入門用と しては十分。 ● 特に“多母集団同時分析”ができないのが残念。 ● 分析結果のパス図は R 上では描けないが、 Gra phviz などで使える DOT 言語で出力される。
  20. 20. SEM で重回帰分析モデル(1) install.packages("sem") # sem パッケージのインストール library(sem) # sem パッケージの呼び出し # 重回帰分析用デモデータ生成。テキストの 298 ページ。 set.seed(1234) 切片 <- 102.385888 父係数 <- 0.316514 母係数 <- 0.021370 父 <- rnorm(n=19, mean=166.84211, sd=5.90916) 母 <- rnorm(n=19, mean=155.94737, sd=4.63649) 残差 <- rnorm(n=19, mean=0, sd=2.15664) 娘 <- 切片 + 父係数 * 父 + 母係数 * 母 + 残差 DATA1 <- cbind( 娘 , 父 , 母 ) # lm() で重回帰分析 重回帰結果 <- lm( 娘 ~ 父 + 母 ) coef( 重回帰結果 ) # 偏回帰係数の出力
  21. 21. SEM で重回帰分析モデル(2) # sem() で重回帰分析 # 分散共分散行列を算出 父 b1 DATA1.cov <- cov(DATA1) 娘 e 母 b2 # モデルを入力 MODEL1 <- specify.model() 父 -> 娘 , b1, NA # 父から娘へのパス 母 -> 娘 , b2, NA # 母から娘へのパス モデルに記述するのは 娘 <-> 娘 , e1, NA # 残差 赤文字の部分 ● specify.model() でのモデルの記述方法。 ● 「変数間関係 , パラメータ名 , 固定パラメータ」。 ● 「変数間関係」の記述 ● 「 -> 」はパス係数(回帰係数)を示す。 ● 「 A<->A 」は A の残差を示す。 ● 「 A<->B 」は A と B の共分散(相関)を示す。 ● 固定パラメータを指定する場合は「パラメータ名」を「 NA 」とする。
  22. 22. SEM で重回帰分析モデル(3) sem( モデル , 分散共分散行列 , サンプルサイズ , fixed.x=c()) ● 外生変数である観測変数がある場合、 fixed.x に指定する。 ● 結果の Estimate がパラメータの推定値。 Pr(>|z|) が検定のp値。 SEM. 重回帰 <- sem(MODEL1, DATA1.cov, 19, fixed.x=c(" 父 ", " 母 ")) summary(SEM. 重回帰 ) # 結果の出力 # Model Chisquare = 0 Df = 0 Pr(>Chisq) = NA # Chisquare (null model) = 12.997 Df = 3 # Goodness-of-fit index = 1 # BIC = 0 # ( 中略 ) # Parameter Estimates # Estimate Std Error z value Pr(>|z|) # b1 0.380639 0.090213 4.21932 2.4504e-05 娘 <--- 父 # b2 -0.042887 0.088313 -0.48563 6.2723e-01 娘 <--- 母 # e1 3.386136 1.128938 2.99940 2.7051e-03 娘 <--> 娘 # (後略)
  23. 23. SEM で重回帰分析モデル(4) lm() の結果と、 sem() の結果が一致していることの確認。 # lm() の結果(偏回帰係数) coef( 重回帰結果 ) # (Intercept) 父 母 # 100.66683494 0.38063875 -0.04288714 # sem() の結果(パス係数) coef(SEM. 重回帰 ) # b1 b2 e1 # 0.38063875 -0.04288714 3.38613595
  24. 24. SEM で因子分析モデル(1) # 因子分析用デモデータ生成。テキストの 308 ページ。 set.seed(9999) n <- 200 因子負荷行列 <- matrix(c(0.09884, 0.17545, 0.52720, 0.73462, 0.45620, 0.72141, 0.47258, 0.17901, 0.07984, 0.37204), nrow=5) 独自性 <- diag(sqrt(c(0.530201, 0.254119, 0.309986, 0.546036, 0.346539))) 因子得点 <- matrix(rnorm(2*n), nrow=2) 独自因子 <- matrix(rnorm(5*n), nrow=5) 五教科 <- round(t( 因子負荷行列 %*% 因子得点 + 独自性 %*% 独自因子 ) * 10 + 50) colnames( 五教科 ) <- c(" 国語 "," 社会 "," 数学 "," 理科 "," 英語 ") # factanal() で探索的因子分析(最尤法、バリマックス回転)。 五教科因子分析 <- factanal( 五教科 , factors=2) print( 五教科因子分析 , cutoff=0, sort=TRUE)
  25. 25. SEM で因子分析モデル(2) ● 探索的因子分析と確認的因子分析 ● 探索的因子分析( Exploratory Factor Analysis )は、事前に明確な仮説を設定せず、 潜在する因子を探すための因子。単に「因子分析」と言った場合、探索的因子分析を 指すことがほとんど。 ● 確認的(検証的)因子分析( Confirmatory factor analysis )は、事前に明確な仮説を設 定し、観測変数に基づいて仮説と実際のデータがどの程度当てはまっているかを確認 する方法。仮説上で関連がないと想定される因子と観測変数のパス係数はゼロに固 定される。 e1 v1 EFA e1 国語 CFA e2 v2 因子1 e2 社会 因子1 e3 v3 e3 英語 e4 v4 因子2 e4 理科 因子2 e5 v5 e5 数学
  26. 26. SEM で因子分析モデル( 3 ) # SEM で確認的因子分析 e1 国語 五教科共分散行列 <- cov( 五教科 ) b1 因子モデル .1 <- specify.model() e2 社会 b2 文系能力 文系 -> 国語 , b1, NA # パス係数 b3 文系 -> 社会 , b2, NA e3 英語 文系 -> 英語 , b3, NA b4 理系 -> 英語 , b4, NA e4 理科 b5 理系能力 理系 -> 理科 , b5, NA 理系 -> 数学 , b6, NA e5 数学 b6 国語 <-> 国語 , e1, NA # 残差 社会 <-> 社会 , e2, NA 英語 <-> 英語 , e3, NA 理科 <-> 理科 , e4, NA 数学 <-> 数学 , e5, NA 文系 <-> 文系 , NA, 1 # 因子(分散を1に固定) 理系 <-> 理系 , NA, 1 SEM. 因子 .1 <- sem( 因子モデル .1, 五教科共分散行列 , 200)
  27. 27. SEM で因子分析モデル( 4 ) 分析結果の出力。 まずは適合度の確認。 summary(SEM. 因子 .1) # Model Chisquare = 27.694 Df = 4 Pr(>Chisq) = 1.4389e-05 # Chisquare (null model) = 267.00 Df = 10 # Goodness-of-fit index = 0.9506 # Adjusted goodness-of-fit index = 0.81472 # RMSEA index = 0.17253 90% CI: (0.11540, 0.23581) # Bentler-Bonnett NFI = 0.89628 # Tucker-Lewis NNFI = 0.76952 # Bentler CFI = 0.9078 # SRMR = 0.14677 # BIC = 6.5004 # (続く)
  28. 28. SEM で因子分析モデル( 5 ) ● 様々な適合度 ● GFI(Goodness-of-fit index) ● 1に近いほど良い。 0.90 以上が及第点、 0.95 以上が合格点。 ● AGFI(Adjusted goodness-of-fit index) ● GFI との差が大きいときはパラメータを減らしたほうが良い。 ● CFI(Comparative Fit Index) ● 1に近いほど良い。 0.90 以上が及第点、 0.95 以上が合格点。 ● RMSEA(Root Mean Square Error of Approximation) ● 0に近いほど良い。 0.10 以下が及第点、 0.05 以下が合格点。 ● BIC ● 相対評価。より低いモデルが良いモデル。
  29. 29. SEM で因子分析モデル( 6 ) ● 非標準解 # (前略) # Parameter Estimates # Estimate Std Error z value Pr(>|z|) # a1 6.8522 0.77559 8.8348 0.0000e+00 国語 <--- 文系 # a2 5.6846 0.59512 9.5521 0.0000e+00 社会 <--- 文系 # a3 4.3648 0.61677 7.0769 1.4737e-12 英語 <--- 文系 # b3 3.5242 0.62665 5.6239 1.8667e-08 英語 <--- 理系 # b4 6.9527 0.91663 7.5851 3.3307e-14 理科 <--- 理系 # b5 5.9235 0.70054 8.4556 0.0000e+00 数学 <--- 理系 # e1 47.4985 8.28690 5.7318 9.9397e-09 国語 <--> 国語 # e2 20.7860 5.11146 4.0665 4.7715e-05 社会 <--> 社会 # e3 35.8932 4.96522 7.2289 4.8694e-13 英語 <--> 英語 # e4 60.6162 10.81770 5.6034 2.1015e-08 理科 <--> 理科 # e5 20.3063 6.80658 2.9833 2.8513e-03 数学 <--> 数学 # # Iterations = 48
  30. 30. SEM で因子分析モデル( 7 ) ● パス係数の有意性検定。 ●削除するパスや相関、潜在変数の目安に。 # p値を見やすくする。 round(summary(SEM. 因子 .1)$coeff[4], 4) # Pr(>|z|) # a1 0.0000 # a2 0.0000 # a3 0.0000 # b3 0.0000 # b4 0.0000 # b5 0.0000 # e1 0.0000 # e2 0.0000 # e3 0.0000 # e4 0.0000 # e5 0.0029
  31. 31. SEM で因子分析モデル( 8 ) ● 標準化解 # 解釈は標準化解で。因子負荷量にあたる。 std.coef(SEM. 因子 .1) # Std. Estimate # 1 a1 0.7050592 国語 <--- 文系 # 2 a2 0.7801019 社会 <--- 文系 # 3 a3 0.5318013 英語 <--- 文系 # 4 b3 0.4293836 英語 <--- 理系 # 5 b4 0.6660833 理科 <--- 理系 # 6 b5 0.7958771 数学 <--- 理系 # 7 e1 0.5028916 国語 <--> 国語 # 8 e2 0.3914410 社会 <--> 社会 # 9 e3 0.5328171 英語 <--> 英語 # 10 e4 0.5563330 理科 <--> 理科 # 11 e5 0.3665797 数学 <--> 数学 # 12 1.0000000 文系 <--> 文系 # 13 1.0000000 理系 <--> 理系
  32. 32. SEM で因子分析モデル( 9 ) ● 修正指標 ● A マトリクスはパスを、 P マトリクスは相関を追加する目安に。 ● ただし、“実質科学的に”解釈できないパスや相関は追加するべきではない。 ● この例だと「理系 -> 社会」のパスを引くか、「理系 <-> 文系」の相関を追加する。 # 修正指標。追加するパスや相関の目安。 mod.indices(SEM. 因子 .1) # 5 largest modification indices, A matrix: # 理系 : 社会 理系 : 文系 文系 : 理系 文系 : 数学 社会 : 理系 # 24.95807 20.75158 20.75158 18.44795 15.21006 # # 5 largest modification indices, P matrix: # 理系 : 文系 理系 : 社会 文系 : 数学 数学 : 社会 文系 : 理科 # 20.751581 15.210057 6.879754 4.495674 2.930716
  33. 33. SEM で因子分析モデル( 10 ) ● モデルの修正 e1 国語 b1 # 理系 -> 社会のパスを追加してみる。 e2 社会 b2 因子モデル .2 <- specify.model() 文系能力 文系 -> 国語 , b1, NA # パス係数 b3 e3 英語 文系 -> 社会 , b2, NA b4 b7 文系 -> 英語 , b3, NA 理系能力 理系 -> 英語 , b4, NA e4 理科 b5 理系 -> 理科 , b5, NA 理系 -> 数学 , b6, NA e5 数学 b6 理系 -> 社会 , b7, NA 国語 <-> 国語 , e1, NA # 残差 社会 <-> 社会 , e2, NA 英語 <-> 英語 , e3, NA 理科 <-> 理科 , e4, NA 数学 <-> 数学 , e5, NA 文系 <-> 文系 , NA, 1 # 因子(分散を1に固定) 理系 <-> 理系 , NA, 1 SEM. 因子 .2 <- sem( 因子モデル .2, 五教科共分散行列 , 200) summary(SEM. 因子 .2)
  34. 34. SEM で因子分析モデル( 11 ) 【モデル1】 【モデル2】 e1 国語 e1 国語 b1 b1 e2 社会 b2 文系能力 e2 社会 b2 文系能力 b3 b3 e3 英語 e3 英語 b4 b4 b7 e4 理科 b5 理系能力 e4 理科 b5 理系能力 e5 数学 b6 e5 数学 b6 【モデル1】 【モデル2】 GFI: 0.9506 GFI: 0.98291 AGFI: 0.81472 AGFI: 0.91456 CFI: 0.9078 CFI: 0.97728 RMSEA:0.17253 RMSEA:0.098897 BIC: 6.5004 BIC: -7.0559
  35. 35. SEM で因子分析モデル( 12 ) # 文系 <-> 理系の相関を追加してみる。 因子モデル .3 <- specify.model() e1 国語 文系 -> 国語 , b1, NA # パス係数 b1 文系 -> 社会 , b2, NA e2 社会 b2 文系 -> 英語 , b3, NA 文系能力 b3 理系 -> 英語 , b4, NA e3 英語 c1 理系 -> 理科 , b5, NA b4 理系 -> 数学 , b6, NA e4 理科 b5 理系能力 国語 <-> 国語 , e1, NA # 残差 社会 <-> 社会 , e2, NA 英語 <-> 英語 , e3, NA e5 数学 b6 理科 <-> 理科 , e4, NA 数学 <-> 数学 , e5, NA 文系 <-> 文系 , NA, 1 # 因子(分散を1に固定) 理系 <-> 理系 , NA, 1 理系 <-> 文系 , c1, NA SEM. 因子 .3 <- sem( 因子モデル .3, 五教科共分散行列 , 200) summary(SEM. 因子 .3)
  36. 36. SEM で因子分析モデル( 13 ) 【モデル3】 【モデル2】 e1 国語 e1 国語 b1 b1 e2 社会 b2 文系能力 e2 社会 b2 文系能力 b3 b3 e3 英語 c1 e3 英語 b4 b4 b7 e4 理科 b5 理系能力 e4 理科 b5 理系能力 e5 数学 b6 e5 数学 b6 【モデル3】 【モデル2】 GFI: 0.99457 GFI: 0.98291 AGFI: 0.97286 AGFI: 0.91456 CFI: 1 CFI: 0.97728 RMSEA:0 RMSEA:0.098897 BIC:-13.163 BIC: -7.0559
  37. 37. SEM で因子分析モデル( 14 ) # パス図の出力(出力された DOT 言語をテキストファイルに保存し Graphviz などで処理する。) path.diagram(SEM. 因子 .3, ignore.double=FALSE, edge.labels="values", digits=2, standardize=TRUE) # digraph "SEM. 因子 .3" { # rankdir=LR; # size="8,8"; # node [fontname="Helvetica" fontsize=14 shape=box]; # edge [fontname="Helvetica" fontsize=10]; # center=1; # " 文系 " [shape=ellipse] # " 理系 " [shape=ellipse] # " 文系 " -> " 国語 " [label="0.66"]; # " 文系 " -> " 社会 " [label="0.83"]; # " 文系 " -> " 英語 " [label="0.46"]; # " 理系 " -> " 英語 " [label="0.36"]; # " 理系 " -> " 理科 " [label="0.67"]; # " 理系 " -> " 数学 " [label="0.79"]; # " 国語 " -> " 国語 " [label="0.56" dir=both]; # " 社会 " -> " 社会 " [label="0.31" dir=both]; # " 英語 " -> " 英語 " [label="0.5" dir=both]; # " 理科 " -> " 理科 " [label="0.55" dir=both]; # " 数学 " -> " 数学 " [label="0.38" dir=both]; # " 文系 " -> " 文系 " [label="1" dir=both]; # " 理系 " -> " 理系 " [label="1" dir=both]; # " 理系 " -> " 文系 " [label="0.48" dir=both]; # }
  38. 38. 多重指標モデル (1) ● 朝倉書店『マーケティングのデータ分析』のサンプルデータを引用。 ● サポートページからデータをダウンロードできます。 ● http://www.asakura.co.jp/books/isbn/978-4-254-12822-2/ ● インターネットによるアンケート調査のデータの一部 (n=1066) 。 ● ビール類の 10 銘柄についてブランドの評価など5段階評価で測定。 ● 銘柄 ● アサヒスーパードライ、キリンラガービール、キリン一番絞り、サッポロ生 ビール黒ラベル、エビスビール、サントリー・ザ・プレミアム・モルツ、アサ ヒ本生ドラフト、麒麟淡麗<生>、キリンのどごし<生>、サントリー金 麦 ● 評価項目 ● 喉越しが良い。香りがよい。味が良い。飲むと幸せな気分になる。飲むと ほっとした気分になる。飲むと爽快な気分になる。自分らしさを表現でき る。自分のイメージアップになる。このブランドを選ぶ人はセンスが良 い。このブランドを選ぶ人は洗練されている。 ● 総合的に見て良いブランドである。好きなブランドである。
  39. 39. 多重指標モデル( 2 ) # Excel データの取り込みと整理 library(RODBC) conn <- odbcConnectExcel("data.xls") sqlTables(conn) tbl1 <- sqlQuery(conn,"select * from [G1 ローデータ $]" ) tbl2 <- sqlQuery(conn,"select * from [G2 ローデータ $]" ) odbcClose(conn) A <- cbind(tbl1[, 24:26], tbl1[, 39:41], tbl1[, 54:57], tbl1[, 74:75]) B <- cbind(tbl1[, 27:29], tbl1[, 42:44], tbl1[, 58:61], tbl1[, 76:77]) C <- cbind(tbl1[, 30:32], tbl1[, 45:47], tbl1[, 62:65], tbl1[, 78:79]) D <- cbind(tbl1[, 33:35], tbl1[, 48:50], tbl1[, 66:69], tbl1[, 80:81]) E <- cbind(tbl1[, 36:38], tbl1[, 51:53], tbl1[, 70:73], tbl1[, 82:83]) DATA1 <- rbind(data.matrix(A), data.matrix(B), data.matrix(C), data.matrix(D), data.matrix(E)) DATA1 <- data.frame(DATA1, " 銘柄 "=rep(c(" スーパードライ ", " ラガー ", " エビス ", " 淡麗 ", " 金麦 "), eac=577) ) # 警告が出るけど問題なし。 F <- cbind(tbl2[, 24:26], tbl2[, 39:41], tbl2[, 54:57], tbl2[, 74:75]) G <- cbind(tbl2[, 27:29], tbl2[, 42:44], tbl2[, 58:61], tbl2[, 76:77]) H <- cbind(tbl2[, 30:32], tbl2[, 45:47], tbl2[, 62:65], tbl2[, 78:79]) I <- cbind(tbl2[, 33:35], tbl2[, 48:50], tbl2[, 66:69], tbl2[, 80:81]) J <- cbind(tbl2[, 36:38], tbl2[, 51:53], tbl2[, 70:73], tbl2[, 82:83]) DATA2 <- rbind(data.matrix(F), data.matrix(G), data.matrix(H), data.matrix(I), data.matrix(J)) DATA2 <- data.frame(DATA2, brand=rep(c(" 一番搾り ", " 黒ラベル ", " プレミアムモルツ "," 本生 ", " のどごし "), eac=530) ) # 警告が出るけど問題なし。 colnames(DATA1) <- colnames(DATA2) <- c(" 喉越し ", " 香り ", " 味 ", " 幸せ ", " ほっとした ", " 爽快 ", " 自分らしさ ", " イメージアップ ", " センス ", " 洗練 ", " 良い ", " 好き ", " 銘柄 ") DATA <- rbind(DATA1, DATA2) DATA <- na.omit(DATA)
  40. 40. 多重指標モデル (3) # 探索的因子分析 library(psych) DATA.FA <- DATA[,1:10] # 説明変数相当の変数のみを使う fa.parallel(DATA.FA, fm="ml") # 平行分析で因子数を推定 EFA <- fa(DATA.FA, nfactors=3, rotate="promax", fm="ml") print(EFA, sort=TRUE) > ML1 ML2 ML3 h2 u2 > 洗練 0.97 0.04 -0.04 0.92 0.319 > センス 0.96 0.04 -0.03 0.93 0.189 > イメージアップ 0.90 -0.01 0.05 0.87 0.081 > 自分らしさ 0.78 0.01 0.14 0.79 0.102 > 味 0.03 0.94 0.00 0.92 0.118 > 香り 0.07 0.85 0.00 0.81 0.262 > 喉越し -0.05 0.72 0.17 0.68 0.209 > ほっとした 0.03 0.05 0.88 0.88 0.135 > 幸せ 0.04 0.04 0.88 0.90 0.071 > 爽快 -0.01 0.19 0.71 0.74 0.078
  41. 41. 多重指標モデル (4) fa.diagram(EFA) cor.plot(EFA, color=TRUE)
  42. 42. 多重指標モデル (5) ● 仮説作り(パス図) e1 喉越し [1] e2 香り b1 機能便益 e3 味 b2 b9 e e4 幸せ [1] [1] 良い e11 b3 情緒便益 b10 ブランド e5 ほっとした 評価 b8 好き e12 e6 爽快 b4 e7 自分らしさ [1] b11 e8 イメージアップ b5 自己表現 便益 e9 センス b6 e10 洗練 b7
  43. 43. 多重指標モデル (6) # 仮説モデルの入力 機能便益 -> ブランド評価 , b9, NA # 測定方程式 library(sem) 情緒便益 -> ブランド評価 , b10, NA DATA.SEM <- cov(DATA[,-13]) 自己表現便益 -> ブランド評価 , b11, NA model1 <- specify.model() 喉越し <-> 喉越し , e1, NA # 残差 機能便益 <-> 機能便益 , f1, NA # 測定方程式 香り <-> 香り , e2, NA 機能便益 -> 喉越し , NA, 1 味 <-> 味 , e3, NA 機能便益 -> 香り , b1, NA 幸せ <-> 幸せ , e4, NA 機能便益 -> 味 , b2, NA ほっとした <-> ほっとした , e5, NA 情緒便益 <-> 情緒便益 , f2, NA 爽快 <-> 爽快 , e6, NA 情緒便益 -> 幸せ , NA, 1 自分らしさ <-> 自分らしさ , e7, NA 情緒便益 -> ほっとした , b3, NA イメージアップ <-> イメージアップ , e8, NA 情緒便益 -> 爽快 , b4, NA センス <-> センス , e9, NA 自己表現便益 <-> 自己表現便益 , f3, NA 洗練 <-> 洗練 , e10, NA 自己表現便益 -> 自分らしさ , NA, 1 良い <-> 良い , e11, NA 自己表現便益 -> イメージアップ , b5, NA 好き <-> 好き , e12, NA 自己表現便益 -> センス , b6, NA 自己表現便益 -> 洗練 , b7, NA ブランド評価 <-> ブランド評価 , f4, NA ブランド評価 -> 良い , NA, 1 ブランド評価 -> 好き , b8, NA
  44. 44. 多重指標モデル (7) # SEM の実行 model1.sem <- sem(model1, DATA.SEM, N=nrow(DATA)) summary(model1.sem) # 出力は省略 round(summary(model1.sem)$coeff[4], 4) # p 値を見やすく # 出力は省略 mod.indices(model1.sem) # 修正指標 > 5 largest modification indices, A matrix: > 情緒便益 : 機能便益 機能便益 : 情緒便益 情緒便益 : 味 機能便益 : 幸せ > 3404.840 3404.840 3256.222 3166.385 > 機能便益 : ほっとした > 3101.308 > > 5 largest modification indices, P matrix: > 情緒便益 : 機能便益 自己表現便益 : 情緒便益 自己表現便益 : 機能便益 > 3404.8395 2583.0519 2308.1715 > イメージアップ : 自分らしさ 爽快 : 喉越し > 650.8733 372.1877
  45. 45. 多重指標モデル (8) 【適合度の比較】 GFI AGFI CFI RMSEA BIC モデル1 0.7602 0.63324 0.85773 0.20367 10887 (仮説モデル) モデル2 0.93947 0.90164 0.97533 0.087427 1591.3 (因子間相関追加) モデル3 0.94637 0.91099 0.97767 0.084048 1413 (「情緒 -> 自分らしさ」パス追加) モデル4 0.94722 0.9105 0.97855 0.083267 1350.9 ( 「「情緒 -> 喉越し」パス追加)
  46. 46. 多重指標モデル (9) # パス図の出力。 DOT 言語で出力される。 # テキストファイルにして保存し、 # GraphViz などで処理する。 # ここでは EasyGraphViz というソフトを使った。 model1.sem <- sem(model4, DATA.SEM, N=nrow(DATA)) path.diagram(model4.sem, ignore.double=FALSE , edge.labels="values", digits=3, standardize=TRUE)
  47. 47. 多重指標モデル (10) 1.2 ● 多母集団“別々”分析? 1 プレミアム モルツ スーパード ライ ● 評価構造のブランドによる違い 0.8 ラガー を見たい。 0.6 ● 本当は「多母集団同時分析」す 0.4 べきだが、 sem パッケージでは できないので… 0.2 0 機能便益 情緒便益 自己表現便益 【多母集団 ブランド評価への影響(非標準解) CFI RMSEA “別々”分析】 機能便益 情緒便益 自己表現便益 プレミアムモルツ 0.458 0.138 0.405 0.980 0.083 スーパードライ 0.980 0.153 0.109 0.966 0.107 ラガー 0.364 0.371 0.098 0.984 0.071
  48. 48. 説明してないこと ● 飽和モデル、独立モデル ● 単純効果、総合効果 ● 多母集団同時分析
  49. 49. 参考にさせていただきました ● 『構造方程式モデリング 基本の「き」』 ● http://www.slideshare.net/MasahiroShinohar a/100614-4502873 ● 篠原正裕さん (@slowtempo) による「 Twiccher 勉強会」のための資料。 ● 『 R で SEM 入門  SEM は(そんなに)怖くない』 ● http://m884.jp/Osaka.R/osaka.r_no.3 ● 林真広さん( @phosphor_m )による「 Osaka.R# 3 」のための資料。
  50. 50. 参考文献 ● 『原因をさぐる統計学』豊田秀樹・前田忠彦・柳井晴夫 ● 『共分散構造分析の実際』朝野熙彦・鈴木督久・小島隆矢 ● 『 Excel で学ぶ共分散構造分析とグラフィカルモデリング』小島隆矢

×