lavaanパッケージ gawk graphviz
(参考)
名城大学人間学部神谷研究室
(参考図書) 共分散構造分析[R編] 東京図書
lavaanパッケージでgraphをdotファイルに書き出す。
手順
- lavaan:::parameterEstimates関数を用いてグラフ作成に必要な材料を得る。
- その材料でdata.frameを作成、作業ディレクトリに保存。
- gawkで保存したファイルを加工し、dotファイルとして保存。
エディタで手直し。 - pngファイルに変換。
OSはlinux(zorinOS)
windowsではlavaan:::sem使用時に変数名が日本語だとエラーになりました。
(準備) lavaan_graphviz.awkファイルを作業フォルダに置いておく。
|
|
lavaan (0.5-17) converged normally after 24 iterations
Number of observations 47
Estimator ML
Minimum Function Test Statistic 47.937
Degrees of freedom 8
P-value (Chi-square) 0.000
Parameter estimates:
Information Expected
Standard Errors Standard
Estimate Std.err Z-value P(>|z|) Std.lv Std.all
Latent variables:
洋食傾向 =~
総熱量 1.000 0.894 0.904
肉類 0.983 0.108 9.122 0.000 0.879 0.889
乳製品 0.797 0.131 6.109 0.000 0.713 0.721
酒類 0.686 0.141 4.873 0.000 0.613 0.620
消化管ガン =~
大腸ガン 1.000 0.886 0.896
直腸ガン 0.937 0.119 7.863 0.000 0.831 0.840
Regressions:
消化管ガン ~
洋食傾向 0.972 0.111 8.790 0.000 0.981 0.981
Variances:
総熱量 0.180 0.054 0.180 0.184
肉類 0.206 0.058 0.206 0.210
乳製品 0.471 0.105 0.471 0.481
酒類 0.603 0.130 0.603 0.616
大腸ガン 0.193 0.065 0.193 0.197
直腸ガン 0.288 0.075 0.288 0.295
洋食傾向 0.799 0.202 1.000 1.000
消化管ガン 0.030 0.057 0.039 0.039
|
|
out.dotをxDotなどのdot viewerでみると
エディタでout.dotを加工します。
center=1; の後に
“洋食傾向” [shape=ellipse]
“消化管ガン” [shape=ellipse]
を書き加える。
|
|
MIMICモデル
|
|
lavaan (0.5-17) converged normally after 23 iterations
Number of observations 47
Estimator ML
Minimum Function Test Statistic 17.719
Degrees of freedom 3
P-value (Chi-square) 0.001
Parameter estimates:
Information Expected
Standard Errors Standard
Estimate Std.err Z-value P(>|z|) Std.lv Std.all
Latent variables:
消化管ガン =~
大腸ガン 1.000 0.900 0.909
直腸ガン 0.910 0.113 8.044 0.000 0.818 0.827
Regressions:
消化管ガン ~
総熱量 0.301 0.133 2.268 0.023 0.335 0.331
肉類 0.588 0.109 5.379 0.000 0.654 0.647
乳製品 -0.122 0.106 -1.143 0.253 -0.135 -0.134
酒類 0.185 0.089 2.076 0.038 0.206 0.204
Variances:
大腸ガン 0.169 0.058 0.169 0.173
直腸ガン 0.309 0.074 0.309 0.316
消化管ガン 0.063 0.048 0.078 0.078
dotファイルの作成手順は上と同じ
center=1; の後に
{rank=min “総熱量” “肉類” “乳製品” “酒類”}
{rank=max “大腸ガン” “直腸ガン”}
“消化管ガン” [shape=ellipse]
を書き加える。
rankdir=TB; をrankdir=LR; に変更
“総熱量” ->”総熱量”[label=”1”,dir=”both”];
“肉類” ->”肉類”[label=”1”,dir=”both”];
“乳製品” ->”乳製品”[label=”1”,dir=”both”];
“酒類” ->”酒類”[label=”1”,dir=”both”];
を表示しない
PLSモデル
|
|
lavaan (0.5-17) converged normally after 23 iterations
Number of observations 47
Estimator ML
Minimum Function Test Statistic 17.719
Degrees of freedom 3
P-value (Chi-square) 0.001
Parameter estimates:
Information Expected
Standard Errors Standard
Estimate Std.err Z-value P(>|z|) Std.lv Std.all
Latent variables:
消化管ガン =~
大腸ガン 1.000 0.900 0.909
直腸ガン 0.910 0.113 8.044 0.000 0.818 0.827
洋食傾向 =~
消化管ガン 1.000 0.960 0.960
Regressions:
洋食傾向 ~
総熱量 0.301 0.133 2.268 0.023 0.349 0.345
肉類 0.588 0.109 5.379 0.000 0.681 0.674
乳製品 -0.122 0.106 -1.143 0.253 -0.141 -0.139
酒類 0.185 0.089 2.076 0.038 0.214 0.212
Variances:
洋食傾向 0.000 0.000 0.000
消化管ガン 0.063 0.048 0.078 0.078
大腸ガン 0.169 0.058 0.169 0.173
直腸ガン 0.309 0.074 0.309 0.316
dotファイルの作成手順は上と同じ
center=1; の後に
{rank=min “総熱量” “肉類” “乳製品” “酒類”}
{rank=max “大腸ガン” “直腸ガン”}
“洋食傾向” [shape=ellipse]
“消化管ガン” [shape=ellipse]
を書き加える。
rankdir=TB; をrankdir=LR; に変更
“総熱量” ->”総熱量”[label=”1”,dir=”both”];
“肉類” ->”肉類”[label=”1”,dir=”both”];
“乳製品” ->”乳製品”[label=”1”,dir=”both”];
“酒類” ->”酒類”[label=”1”,dir=”both”];
“洋食傾向” ->”洋食傾向”[label=”0”,dir=”both”];
を表示しない