lavaanは共分散行列からもモデルの推定ができる。
http://lavaan.ugent.be/tutorial/cov.htmllavaan.ugent.be
例題はこの論文のようである。 https://www.jstor.org/stable/270754?seq=1
共分散行列を作成し、変数に名前をつける。
getCov
コマンドを使用する。
library(lavaan) lower <- ' 11.834 6.947 9.364 6.819 5.091 12.532 4.783 5.028 7.495 9.986 -3.839 -3.889 -3.841 -3.625 9.610 -21.899 -18.831 -21.748 -18.775 35.522 450.288 ' wheaton.cov <- getCov(lower, names = c("anomia67", "powerless67", "anomia71", "powerless71", "education", "sei"))
下記のようなデータマトリックスができる。
anomia67 powerless67 anomia71 powerless71 education sei anomia67 11.834 6.947 6.819 4.783 -3.839 -21.899 powerless67 6.947 9.364 5.091 5.028 -3.889 -18.831 anomia71 6.819 5.091 12.532 7.495 -3.841 -21.748 powerless71 4.783 5.028 7.495 9.986 -3.625 -18.775 education -3.839 -3.889 -3.841 -3.625 9.610 35.522 sei -21.899 -18.831 -21.748 -18.775 35.522 450.288
下記のようなモデルを作成する。
sample.nobs
は標本数を指定するコマンド。共分散行列から分析すると標本数が不明なため。
# classic wheaton et al model wheaton.model <- ' # latent variables ses =~ education + sei alien67 =~ anomia67 + powerless67 alien71 =~ anomia71 + powerless71 # regressions alien71 ~ alien67 + ses alien67 ~ ses # correlated residuals anomia67 ~~ anomia71 powerless67 ~~ powerless71 ' fit <- sem(wheaton.model, sample.cov = wheaton.cov, sample.nobs = 932) summary(fit, standardized = TRUE)
結果。
lavaan 0.6-5 ended normally after 84 iterations Estimator ML Optimization method NLMINB Number of free parameters 17 Number of observations 932 Model Test User Model: Test statistic 4.735 Degrees of freedom 4 P-value (Chi-square) 0.316 Parameter Estimates: Information Expected Information saturated (h1) model Structured Standard errors Standard Latent Variables: Estimate Std.Err z-value P(>|z|) Std.lv Std.all ses =~ education 1.000 2.607 0.842 sei 5.219 0.422 12.364 0.000 13.609 0.642 alien67 =~ anomia67 1.000 2.663 0.774 powerless67 0.979 0.062 15.895 0.000 2.606 0.852 alien71 =~ anomia71 1.000 2.850 0.805 powerless71 0.922 0.059 15.498 0.000 2.628 0.832 Regressions: Estimate Std.Err z-value P(>|z|) Std.lv Std.all alien71 ~ alien67 0.607 0.051 11.898 0.000 0.567 0.567 ses -0.227 0.052 -4.334 0.000 -0.207 -0.207 alien67 ~ ses -0.575 0.056 -10.195 0.000 -0.563 -0.563 Covariances: Estimate Std.Err z-value P(>|z|) Std.lv Std.all .anomia67 ~~ .anomia71 1.623 0.314 5.176 0.000 1.623 0.356 .powerless67 ~~ .powerless71 0.339 0.261 1.298 0.194 0.339 0.121 Variances: Estimate Std.Err z-value P(>|z|) Std.lv Std.all .education 2.801 0.507 5.525 0.000 2.801 0.292 .sei 264.597 18.126 14.597 0.000 264.597 0.588 .anomia67 4.731 0.453 10.441 0.000 4.731 0.400 .powerless67 2.563 0.403 6.359 0.000 2.563 0.274 .anomia71 4.399 0.515 8.542 0.000 4.399 0.351 .powerless71 3.070 0.434 7.070 0.000 3.070 0.308 ses 6.798 0.649 10.475 0.000 1.000 1.000 .alien67 4.841 0.467 10.359 0.000 0.683 0.683 .alien71 4.083 0.404 10.104 0.000 0.503 0.503