モデルがやや複雑になってきたので、モデルファイルを別に作成します。
観測変数の誤差分散は specifyModel() が自動的に補完してくれるので、省略します。
用意したファイル company324.txt の中身は次のとおりです。
specifyModel() でファイルを読み込むときには、ファイルに空白行があっても無視されるし、
#でコメントアウトすることもできるみたい。
#2次因子
仲間関係 <- 仲間評価, NA, 1
身体外見 <- 仲間評価, p1, NA
身体能力 <- 仲間評価, p2, NA
#一次因子
V11 <- 仲間関係, NA, 1
V10 <- 仲間関係, r1, NA
V9<- 仲間関係, r2, NA
V8 <- 身体外見, NA, 1
V7 <- 身体外見, l1, NA
V6 <- 身体外見, l2, NA
V5 <- 身体外見, l3, NA
V4 <- 身体能力, NA, 1
V3 <- 身体能力, a1, NA
V2 <- 身体能力, a2, NA
V1 <- 身体能力, a3, NA
仲間関係 <-> 仲間関係, d3, NA
身体外見 <-> 身体外見, d2, NA
身体能力 <-> 身体能力, d1, NA
仲間評価 <-> 仲間評価, d0, 1
仲間関係 <- 仲間評価, NA, 1
身体外見 <- 仲間評価, p1, NA
身体能力 <- 仲間評価, p2, NA
#一次因子
V11 <- 仲間関係, NA, 1
V10 <- 仲間関係, r1, NA
V9<- 仲間関係, r2, NA
V8 <- 身体外見, NA, 1
V7 <- 身体外見, l1, NA
V6 <- 身体外見, l2, NA
V5 <- 身体外見, l3, NA
V4 <- 身体能力, NA, 1
V3 <- 身体能力, a1, NA
V2 <- 身体能力, a2, NA
V1 <- 身体能力, a3, NA
仲間関係 <-> 仲間関係, d3, NA
身体外見 <-> 身体外見, d2, NA
身体能力 <-> 身体能力, d1, NA
仲間評価 <-> 仲間評価, d0, 1
次のスクリプトで計算してもらいます。
company324.mdl <- specifyModel("model/company324.txt")
summary(company324.sem <- sem(company324.mdl, S=cor.company, N=100))
stdCoef(company324.sem)
summary(company324.sem <- sem(company324.mdl, S=cor.company, N=100))
stdCoef(company324.sem)
graphvizで絵を描いてみましょう。誤差分散も出力します。英語以外のフォントを使うときには、フォントの指定をします。
pathDiagram(company324.sem, edge.labels="values",standardize=TRUE,
node.font=c("IPAGothic",12), edge.font=c("IPAMincho",10),
rank.direction="TB", ignore.double=FALSE,
same.rank=c("仲間関係,身体外見,身体能力"))
node.font=c("IPAGothic",12), edge.font=c("IPAMincho",10),
rank.direction="TB", ignore.double=FALSE,
same.rank=c("仲間関係,身体外見,身体能力"))
こんなの出たら、company324.dot に utf-8 のエンコードで保存します。
digraph "company324.sem" {
rankdir=TB;
size="8,8";
node [fontname="IPAGothic" fontsize=12 shape=box];
edge [fontname="IPAMincho" fontsize=10];
center=1;
{rank=same "仲間関係" "身体外見" "身体能力"}
"仲間関係" [shape=ellipse]
"身体外見" [shape=ellipse]
"身体能力" [shape=ellipse]
"仲間評価" [shape=ellipse]
"仲間評価" -> "仲間関係" [label="0.97"];
"仲間評価" -> "身体外見" [label="0.83"];
"仲間評価" -> "身体能力" [label="0.6"];
"仲間関係" -> "V11" [label="0.8"];
"仲間関係" -> "V10" [label="0.81"];
"仲間関係" -> "V9" [label="0.63"];
"身体外見" -> "V8" [label="0.91"];
"身体外見" -> "V7" [label="0.76"];
"身体外見" -> "V6" [label="0.58"];
"身体外見" -> "V5" [label="0.73"];
"身体能力" -> "V4" [label="0.84"];
"身体能力" -> "V3" [label="0.74"];
"身体能力" -> "V2" [label="0.8"];
"身体能力" -> "V1" [label="0.64"];
"仲間関係" -> "仲間関係" [label="0.07" dir=both];
"身体外見" -> "身体外見" [label="0.31" dir=both];
"身体能力" -> "身体能力" [label="0.64" dir=both];
"仲間評価" -> "仲間評価" [label="1" dir=both];
"V11" -> "V11" [label="0.37" dir=both];
"V10" -> "V10" [label="0.34" dir=both];
"V9" -> "V9" [label="0.6" dir=both];
"V8" -> "V8" [label="0.18" dir=both];
"V7" -> "V7" [label="0.43" dir=both];
"V6" -> "V6" [label="0.67" dir=both];
"V5" -> "V5" [label="0.47" dir=both];
"V4" -> "V4" [label="0.3" dir=both];
"V3" -> "V3" [label="0.45" dir=both];
"V2" -> "V2" [label="0.36" dir=both];
"V1" -> "V1" [label="0.59" dir=both];
}
rankdir=TB;
size="8,8";
node [fontname="IPAGothic" fontsize=12 shape=box];
edge [fontname="IPAMincho" fontsize=10];
center=1;
{rank=same "仲間関係" "身体外見" "身体能力"}
"仲間関係" [shape=ellipse]
"身体外見" [shape=ellipse]
"身体能力" [shape=ellipse]
"仲間評価" [shape=ellipse]
"仲間評価" -> "仲間関係" [label="0.97"];
"仲間評価" -> "身体外見" [label="0.83"];
"仲間評価" -> "身体能力" [label="0.6"];
"仲間関係" -> "V11" [label="0.8"];
"仲間関係" -> "V10" [label="0.81"];
"仲間関係" -> "V9" [label="0.63"];
"身体外見" -> "V8" [label="0.91"];
"身体外見" -> "V7" [label="0.76"];
"身体外見" -> "V6" [label="0.58"];
"身体外見" -> "V5" [label="0.73"];
"身体能力" -> "V4" [label="0.84"];
"身体能力" -> "V3" [label="0.74"];
"身体能力" -> "V2" [label="0.8"];
"身体能力" -> "V1" [label="0.64"];
"仲間関係" -> "仲間関係" [label="0.07" dir=both];
"身体外見" -> "身体外見" [label="0.31" dir=both];
"身体能力" -> "身体能力" [label="0.64" dir=both];
"仲間評価" -> "仲間評価" [label="1" dir=both];
"V11" -> "V11" [label="0.37" dir=both];
"V10" -> "V10" [label="0.34" dir=both];
"V9" -> "V9" [label="0.6" dir=both];
"V8" -> "V8" [label="0.18" dir=both];
"V7" -> "V7" [label="0.43" dir=both];
"V6" -> "V6" [label="0.67" dir=both];
"V5" -> "V5" [label="0.47" dir=both];
"V4" -> "V4" [label="0.3" dir=both];
"V3" -> "V3" [label="0.45" dir=both];
"V2" -> "V2" [label="0.36" dir=both];
"V1" -> "V1" [label="0.59" dir=both];
}
そして、コマンドプロンプトから以下を実行。
dot -Tpdf company324.pdf
0 件のコメント:
コメントを投稿