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)