共分散構造分析2

昨日に引き続き、共分散構造分析の勉強。

Rでsemパッケージがうまくいかないので、今日はlavaanパッケージと格闘。



2.lavaanパッケージ

使い方は、semパッケージとあんまり変わらない。
ただ、モデルの記述方法が違う。

モデルの記述方法

=~ 潜在変数の定義
~ 回帰(右辺:説明変数/左辺:目的変数)
~~ 残差共分散(相関)

スクリプト

# 入力用データ
dat <- read.csv("入力ファイル.csv", header=TRUE, row.names=1)

# 入力データの標準化 
dat2 <- data.frame(scale(dat))


# モデルの定義
model1 <-
'
# 潜在変数の定義
adv =~ webadv + magadv + tvcm
kpr =~ tvnews + newspaper + magazine + webnews + sns
# 回帰式
ikou ~ adv + kpr
jittai ~ ikou
# 残差(共分散)
webadv ~~ webnews + sns
magazine ~~ magadv
tvcm ~~ tvnews
'

# 実行
fit <- sem(model1, data=dat2, mimic="EQS")

# 出力
summary(fit, fit.measures=TRUE, standardize = TRUE)


※lavaanパッケージの注意
①変数名は英数字のみ
②誤差変数は書く必要なし(例:x1~~x1みたいなやつ)


あと、引数について。

std.lv=TRUE : パラメータを標準化
mimic="EQS" : よくわからんないけど、これをやるとsemやAMOSの出力と一緒になる
fit.measures=TRUE : カイ2乗統計量以外も出力する
standardize=TRUE  : 標準化したパラメータも出力する


あ、あと他のWEBページに「qgraph」パッケージを使うと
グラフが出力できるってかいてあったんだけど、
どうも今qgraph内で使うReadImagesっていうパッケージがCRANにないらしく、
パッケージを読み込むことができない。

だからgraphvizってやつを使いけどまだ、勉強中。
Rgraphvizっていうパッケージでうごくっぽい。



参考
Rで共分散構造分析 {lavaan}パッケージ編 #rstatsj - 極めて個人的なメモ
scratch-R: factor analysis
http://www.ec.kansai-u.ac.jp/user/arakit/documents/lavaanPackageVer0.5-12.pdf
Rgraphvizのインストール | myscratchpad
Graphviz - Graph Visualization Software
http://www.okada.jp.org/RWiki/?R%A4%C7%B6%A6%CA%AC%BB%B6%B9%BD%C2%A4%CA%AC%C0%CF%A1%A6%B9%BD%C2%A4%CA%FD%C4%F8%BC%B0%A5%E2%A5%C7%A5%EB