こちらの続き。
このモデルには2つの新しい特徴がある。まず、相互効果、つまり、ある時間において変数がお互いに影響し合うことができるということである。
波間の係数に等式制約を加えた。例えば、pid2004からapp2004への影響は、(a)pid2002からapp2002への影響と同じになるように制約をかけた。同様に(b)app2004からpid2004への効果は、app2002からpid2002への効果と同じになるように制約をかけた。
3.1 STATA SEMビルダーで、まず矢印を選択し、制約を追加することで、これらの制約を追加することができる。
. sem (pid2000 -> pid2002, ) (pid2000 -> app2002, ) (app2000 -> pid2002, ) /// (app2000 -> app2002, ) (pid2002@a -> app2002, ) (pid2002 -> pid2004, ) /// (pid2002 -> app2004, ) (app2002@b -> pid2002, ) (app2002 -> pid2004, ) /// (app2002 -> app2004, ) (pid2004@a -> app2004, ) (app2004@b -> pid2004, ), standardized cov( app2000*pid2000) nocapslatent (1069 observations with missing values excluded) Endogenous variables Observed: pid2002 app2002 pid2004 app2004 Exogenous variables Observed: pid2000 app2000 Fitting target model: Iteration 0: log likelihood = -7490.988 Iteration 1: log likelihood = -7390.2964 Iteration 2: log likelihood = -7385.3207 Iteration 3: log likelihood = -7385.2859 Iteration 4: log likelihood = -7385.2859 Structural equation model Number of obs = 738 Estimation method: ml Log likelihood = -7385.2859 ( 1) [pid2002]app2002 - [pid2004]app2004 = 0 ( 2) [app2002]pid2002 - [app2004]pid2004 = 0 ------------------------------------------------------------------------------------- | OIM Standardized | Coefficient std. err. z P>|z| [95% conf. interval] --------------------+---------------------------------------------------------------- Structural | pid2002 | app2002 | .0597253 .0892213 0.67 0.503 -.1151452 .2345958 pid2000 | .7680564 .0420354 18.27 0.000 .6856685 .8504443 app2000 | .1188559 .0258264 4.60 0.000 .0682371 .1694747 _cons | .0203946 .1418517 0.14 0.886 -.2576296 .2984188 ------------------+---------------------------------------------------------------- app2002 | pid2002 | .3984309 .2239883 1.78 0.075 -.040578 .8374399 pid2000 | .1090515 .1798212 0.61 0.544 -.2433916 .4614946 app2000 | .1042124 .0467443 2.23 0.026 .0125952 .1958296 _cons | 1.505822 .0853364 17.65 0.000 1.338565 1.673078 ------------------+---------------------------------------------------------------- pid2004 | pid2002 | .801487 .0394279 20.33 0.000 .7242096 .8787643 app2002 | .0661565 .0509644 1.30 0.194 -.0337319 .1660449 app2004 | .0645941 .0962275 0.67 0.502 -.1240084 .2531966 _cons | -.084726 .0433142 -1.96 0.050 -.1696203 .0001682 ------------------+---------------------------------------------------------------- app2004 | pid2002 | .0686076 .172548 0.40 0.691 -.2695801 .4067954 app2002 | .4526101 .034214 13.23 0.000 .3855518 .5196683 pid2004 | .3683993 .2055088 1.79 0.073 -.0343905 .7711892 _cons | .1497953 .0610446 2.45 0.014 .0301501 .2694405 --------------------+---------------------------------------------------------------- mean(pid2000)| 1.365443 .0511682 26.69 0.000 1.265155 1.46573 mean(app2000)| 1.533387 .0542957 28.24 0.000 1.42697 1.639805 --------------------+---------------------------------------------------------------- var(e.pid2002)| .2156122 .0211922 .177832 .2614187 var(e.app2002)| .6459226 .0295039 .590609 .7064167 var(e.pid2004)| .2010162 .0199356 .165506 .2441452 var(e.app2004)| .358397 .023088 .3158856 .4066296 var(pid2000)| 1 . . . var(app2000)| 1 . . . --------------------+---------------------------------------------------------------- cov(pid2000,app2000)| .616486 .0228205 27.01 0.000 .5717586 .6612133 ------------------------------------------------------------------------------------- LR test of model vs. saturated: chi2(4) = 133.51 Prob > chi2 = 0.0000
等値制約をかけたことに表記がある
( 1) [pid2002]app2002 - [pid2004]app2004 = 0 ( 2) [app2002]pid2002 - [app2004]pid2004 = 0
. estat gof, sta(all) ---------------------------------------------------------------------------- Fit statistic | Value Description ---------------------+------------------------------------------------------ Likelihood ratio | chi2_ms(4) | 133.511 model vs. saturated p > chi2 | 0.000 chi2_bs(14) | 3458.563 baseline vs. saturated p > chi2 | 0.000 ---------------------+------------------------------------------------------ Population error | RMSEA | 0.210 Root mean squared error of approximation 90% CI, lower bound | 0.180 upper bound | 0.241 pclose | 0.000 Probability RMSEA <= 0.05 ---------------------+------------------------------------------------------ Information criteria | AIC | 14816.572 Akaike's information criterion BIC | 14922.462 Bayesian information criterion ---------------------+------------------------------------------------------ Baseline comparison | CFI | 0.962 Comparative fit index TLI | 0.868 Tucker–Lewis index ---------------------+------------------------------------------------------ Size of residuals | SRMR | 0.032 Standardized root mean squared residual CD | 0.794 Coefficient of determination ----------------------------------------------------------------------------
4 測定誤差モデル
測定誤差はパネル分析で特に問題となる。SEMのフレームワークでは、この問題を簡単に扱うことができる。たとえば、自己回帰モデルを使って、その測定誤差をモデル化することができます。同定されたモデルを持つために、Wiley-Wiley解をモデル化する(測定誤差が等しいと仮定する)。
このモデルでは、誤差の分散を制約条件として使用する。
これについてはFinkel (1995)に詳しい。 Rで分散共分散行列を得ることができる。 まず、行列を得るために必要な変数を関数 var を使って選択する。 dplyrの関数selectと%>%を使って、一行ですべてを行うようにしよう。
library(dplyr) new%>%dplyr::select(pid2000,pid2002,pid2004)%>% var(na.rm=TRUE)
## pid2000 pid2002 pid2004 ## pid2000 4.681774 4.111523 4.301286 ## pid2002 4.111523 4.752644 4.474202 ## pid2004 4.301286 4.474202 5.428772
4.75-(4.47*4.11)/4.30 ## [1] 0.4775116 round(4.75-(4.47*4.11)/4.30,2) ## [1] 0.48
SEMビルダーを使って、各変数の潜在変数を作成し、その誤差分散を0.48に制約する。
. sem (P2002 -> pid2002, ) (P2002 -> P2004, ) (P2004 -> pid2004, ) (P2000 -> pid2000, ) (P2000 -> P2002, ), latent(P2002 P2004 P2000 ) cov( e.pid2000@0.48 e.pid2002@0.48 e.pid2004@0.48) nocapslatent (997 observations with missing values excluded) Endogenous variables Measurement: pid2002 pid2004 pid2000 Latent: P2002 P2004 Exogenous variables Latent: P2000 Fitting target model: Iteration 0: log likelihood = -4293.5454 (not concave) Iteration 1: log likelihood = -4212.1818 Iteration 2: log likelihood = -4160.5424 Iteration 3: log likelihood = -4150.2215 Iteration 4: log likelihood = -4145.957 Iteration 5: log likelihood = -4145.9269 Iteration 6: log likelihood = -4145.9269 Structural equation model Number of obs = 810 Estimation method: ml Log likelihood = -4145.9269 ( 1) [pid2002]P2002 = 1 ( 2) [pid2004]P2004 = 1 ( 3) [pid2000]P2000 = 1 ( 4) [/]var(e.pid2002) = .48 ( 5) [/]var(e.pid2004) = .48 ( 6) [/]var(e.pid2000) = .48 ------------------------------------------------------------------------------- | OIM | Coefficient std. err. z P>|z| [95% conf. interval] --------------+---------------------------------------------------------------- Structural | P2002 | P2000 | .978417 .020013 48.89 0.000 .9391922 1.017642 ------------+---------------------------------------------------------------- P2004 | P2002 | 1.046779 .0199761 52.40 0.000 1.007627 1.085932 --------------+---------------------------------------------------------------- Measurement | pid2002 | P2002 | 1 (constrained) _cons | 3.037037 .0765625 39.67 0.000 2.886977 3.187097 ------------+---------------------------------------------------------------- pid2004 | P2004 | 1 (constrained) _cons | 3.012346 .0818163 36.82 0.000 2.851989 3.172703 ------------+---------------------------------------------------------------- pid2000 | P2000 | 1 (constrained) _cons | 2.925926 .0759792 38.51 0.000 2.77701 3.074842 --------------+---------------------------------------------------------------- var(e.pid2002)| .48 (constrained) var(e.pid2004)| .48 (constrained) var(e.pid2000)| .48 (constrained) var(e.P2002)| .2512405 .0500669 .1700057 .3712923 var(e.P2004)| .2653503 .0539494 .1781389 .395258 var(P2000)| 4.195995 .232352 3.764436 4.677028 ------------------------------------------------------------------------------- LR test of model vs. saturated: chi2(1) = 0.01 Prob > chi2 = 0.9173