井出草平の研究ノート

同期交差遅れモデル・測定誤差モデル[Stata]

ides.hatenablog.com

こちらの続き。

jincio.github.io


このモデルには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