2012年9月6日木曜日

共分散構造分析[R編]ってないの?[第2章]

パス図は、graphvizでもってできます。次のスクリプトでは標準化係数のパス図を出力します。日本語を使うときは日本語フォントを必ず指定しなくてはなりません。
pathDiagram(semi.sem, 
            edge.font=c("MSGothic",10), node.font=c("MSMincho",10),
            edge.labels="values", standardize=TRUE, digits=3,
            ignore.double=FALSE,
            rank.dir="TB", max.rank = c("講師の質","充実感"),
            min.rank=c("目的一致","理解度","テキスト","ペース","満足度","プレゼン","講師対処"))

出力は次のごとし。
digraph "semi.sem" {
  rankdir=TB;
  size="8,8";
  node [fontname="IPAMincho" fontsize=10 shape=box];
  edge [fontname="IPAGothic" fontsize=10];
  center=1;
  {rank=min "目的一致"}
(中略)
  "理解度" -> "理解度" [label="0.839" dir=both];
  "目的一致" -> "目的一致" [label="0.848" dir=both];
}
 警告メッセージ: 
'std.coef' is deprecated.
Use 'stdCoef' instead.
See help("Deprecated") and help("sem-deprecated"). 

現時点で、標準化係数のパス図を作成するのに古い関数を使っているようで、警告メッセージがでますが当面問題ないでしょう。
なお、graphvizで使うファイルはテキストファイルをutf-8で保存しなくてはならないのです。僕のようにwindowsな人は、 何もしない場合shift-jisで保存されますから、そのままではパス図は大変なことになります。ファイルをutf-8に変換してやりましょう。
dotモードが設定できるEMACSを使うのが便利かもしれませんが、
導入の敷居が低いRStadioの場合でも、こんなに楽ちんでした。
ただし、予めパスを通すって作業は必要。

  1. 左上のアイコンから新しいテキスト[New Text]を作って、fileオプションなしのpathDiagram()でコンソールに出力されたコマンド?をコピペ。
  2. [file]-[save with encoding...]でutf-8を指定して保存します。(例えば、作業ディレクトリにsemipath.dotで)
  3. [tool]-[shell]でDOS窓を開いて、パス図を描いてくださいとおまじないを打ち込むと、音もなくpdfファイルが作成されます。 
※2


dot -Tpdf semipath.dot > semipath.pdf

  • と同じ向きの出力にするには、2行目のrankdir=TBをrankdir=BTに書き換えます。現時点では、rank.dirオプションを"BT"とするとエラーになりました。
適合度指標などは、summary()で出力されてました。
次に、直接効果、間接効果、総合効果も計算してもらいました。
effects(semi.sem)

開発環境もRStadioのような立派なものができて、僕のようないんちきユーザーでもかなり便利になりました。
ここまでは、に書かれているものとほとんど同じに見えます。

0 件のコメント:

コメントを投稿