井出草平の研究ノート

lavaanで分析した時の詳細情報[R]

https://lavaan.ugent.be/tutorial/inspect.htmllavaan.ugent.be

前準備

まずはこちらで分析したモデルを利用するので、オブジェクトfitに格納する。

library(lavaan)
model <- '
  # measurement model
    ind60 =~ x1 + x2 + x3
    dem60 =~ y1 + y2 + y3 + y4
    dem65 =~ y5 + y6 + y7 + y8
    
  # regressions
    dem60 ~ ind60
    dem65 ~ ind60 + dem60
    
  # residual correlations
    y1 ~~ y5
    y2 ~~ y4 + y6
    y3 ~~ y7
    y4 ~~ y8
    y6 ~~ y8
'
fit <- sem(model=model, data=PoliticalDemocracy, estimator="ML")

通常ここからsummary(fit)とするのだが、別のコマンドを指定すると、モデルの詳細な情報が得られる。

モデルの共分散行列

fitted(fit)

出力

$cov
   x1     x2     x3     y1     y2     y3     y4     y5     y6     y7     y8    
x1  0.530                                                                      
x2  0.978  2.252                                                               
x3  0.815  1.778  1.950                                                        
y1  0.665  1.450  1.209  6.834                                                 
y2  0.836  1.822  1.520  6.211 15.179                                          
y3  0.703  1.534  1.279  5.228  6.570 10.597                                   
y4  0.841  1.834  1.530  6.251  9.169  6.612 11.054                            
y5  0.814  1.774  1.479  5.143  5.679  4.780  5.716  6.773                     
y6  0.965  2.103  1.754  5.358  8.887  5.667  6.777  5.243 11.171              
y7  1.041  2.270  1.893  5.782  7.267  6.911  7.313  5.658  6.709 10.671       
y8  1.030  2.245  1.873  5.721  7.190  6.051  7.584  5.598  7.994  7.163 10.341

標本の共分散行列は下記で出力できる。

var(PoliticalDemocracy)

標本と推定値は近値が出ていればモデルのフィッティングがよいということなので、差がゼロに近い方がよい、ということになる。

残差行列

標本とモデルの共分散行列を自動で計算するコマンドも存在する。

resid(fit)

出力

$type
[1] "raw"

$cov
   x1     x2     x3     y1     y2     y3     y4     y5     y6     y7     y8    
x1  0.000                                                                      
x2 -0.001  0.000                                                               
x3 -0.003  0.004  0.000                                                        
y1  0.060 -0.194 -0.310 -0.047                                                 
y2 -0.225 -0.351 -0.366 -0.043  0.193                                          
y3  0.073 -0.002 -0.254  0.533 -0.809  0.024                                   
y4  0.294  0.377  0.284 -0.243  0.213 -0.013  0.015                            
y5  0.254  0.262  0.083 -0.146 -0.151  0.093 -0.090 -0.038                     
y6 -0.123 -0.322 -0.203  0.311  0.374 -1.003  0.566 -0.333  0.053              
y7 -0.117 -0.301 -0.289 -0.048  0.168  0.002  0.075  0.086 -0.051 -0.016       
y8  0.058 -0.041 -0.203 -0.125  0.465 -0.487  0.322 -0.330  0.143  0.328  0.052

オプションは下記。

  • type="raw" :規定値
  • type="normalized": 正規化
  • type="standardized": 標準化
  • type="cor" : モデルの共分散行列を相関行列として計算

母数推定値の共分散行列

vcov関数は推定されたパラメータの共分散行列の推定値を返す。 母数推定値の分散は各推定値の標準誤差の二乗になるため、小さい数の方が良い推定となる。

vcov(fit)