#図2-2の分析
library(lavaan)
library(psych)
#NAを含むデータを除外する
bfi2<-na.omit(bfi)
#モデル指定
model.fig2.2
<- '
f
=~ N1+N2+N3+N4
#N1, N2, N3, N4で因子fを測定
N1
~~ N1
#N1の誤差分散を推定
N2
~~ N2
#N2の誤差分散を推定
N3
~~ N3
#N3の誤差分散を推定
N4
~~ N4
#N4の誤差分散を推定
f
~~ 1*f
#因子fの分散を1に固定
'
#lavaanを実行する
fit.fig2.2
<- lavaan(model.fig2.2, data=bfi2[,16:19])
#結果を出力する(standardized=Tで図2-8の結果も求まる)
summary(fit.fig2.2,
standardized=T, rsquare=T, fit.measure=T)
#推定された共分散行列(表2-4)
fitted(fit.fig2.2)
#残差行列(表2-5)
resid(fit.fig2.2,
type="raw")
#修正指数
modificationIndices(fit.fig2.2)
#====================================================
#図2-3の分析
library(lavaan)
library(psych)
#NAを含むデータを除外する
bfi2<-na.omit(bfi)
#モデル指定
model.fig2.3
<- '
f1
=~ N1+N2
f2
=~ N3+N4
N1
~~ N1
N2
~~ N2
N3
~~ N3
N4
~~ N4
f1
~~ 1*f1
f2
~~ 1*f2
f1
~~ f2 #因子f1と因子f2の共分散(双方向パス)を設定
'
#lavaanを実行する
fit.fig2.3
<- lavaan(model.fig2.3, data=bfi2[,16:19])
#結果を出力する
summary(fit.fig2.3,
standardized=T, rsquare=T, fit.measure=T)
#推定された共分散行列
fitted(fit.fig2.3)
#残差行列(表2-7)
resid(fit.fig2.3,
type="raw")
#修正指数
modificationIndices(fit.fig2.3)
#====================================================
#図2-5の分析
library(lavaan)
library(psych)
#NAを含むデータを除外する
bfi2<-na.omit(bfi)
#モデル指定
model.fig2.5
<- '
f
=~ N1+N2+N3+N4
N1
~~ N1
N2
~~ N2
N3
~~ N3
N4
~~ N4
N3
~~ N4 #N3の誤差とN4の誤差の間の共分散(双方向パス)を設定
f
~~ 1*f
'
#lavaanを実行する
fit.fig2.5
<- lavaan(model.fig2.5, data=bfi2[,16:19])
#結果を出力する
summary(fit.fig2.5,
standardized=T, rsquare=T, fit.measure=T)
#推定された共分散行列
fitted(fit.fig2.5)
#残差行列(表2-7と一致)
resid(fit.fig2.5,
type="raw")
#修正指数
modificationIndices(fit.fig2.5)
#====================================================
#図2-7の分析
library(lavaan)
library(psych)
#NAを含むデータを除外する
bfi2<-na.omit(bfi)
#モデル指定
model.fig2.7
<- '
f1
=~ A1+A3+A4+A5
f2
=~ C1+C3+C4+C5
f3
=~ N1+N2+N3
A1
~~ A1
A3
~~ A3
A4
~~ A4
A5
~~ A5
C1
~~ C1
C3
~~ C3
C4
~~ C4
C5
~~ C5
N1
~~ N1
N2
~~ N2
N3
~~ N3
f1
~~ 1*f1
f2
~~ 1*f2
f3
~~ 1*f3
f1
~~ f2
f1
~~ f3
f2
~~ f3
'
#lavaanを実行する
fit.fig2.7
<- lavaan(model.fig2.7, data=bfi2[,c(1,3:6,8:10,16:18)])
#結果を出力する
summary(fit.fig2.7,
standardized=T, rsquare=T, fit.measure=T)
#====================================================
#図2-11の分析
library(lavaan)
library(psych)
#NAを含むデータを除外する
bfi2<-na.omit(bfi)
#モデル指定
model.fig2.11
<- '
f1
=~ A1+A2+A3+A4+A5
f2
=~ N1+N2+N3+N4+N5
A1
~~ A1
A2
~~ A2
A3
~~ A3
A4
~~ A4
A5
~~ A5
N1
~~ N1
N2
~~ N2
N3
~~ N3
N4
~~ N4
N5
~~ N5
f1
~~ 1*f1
f2
~~ 1*f2
f1
~~ f2
'
#lavaanを実行する
fit.fig2.11
<- lavaan(model.fig2.11, data=bfi2[,c(1:5,16:20)])
#結果を出力する
summary(fit.fig2.11,
standardized=T, rsquare=T, fit.measure=T)
#因子得点を求める(表2-8)
predict(fit.fig2.11)[1:10,]
#因子得点間の相関と合計得点間の相関(表2-9)
cor(cbind(predict(fit.fig2.11)[,1],predict(fit.fig2.11)[,2],rowMeans(bfi2[,1:5])*5,rowMeans(bfi2[,16:20])*5))
#因子得点の散布図(図2-11)
plot(predict(fit.fig2.11)[,1],predict(fit.fig2.11)[,2])
#====================================================
#2014.09.15 尾崎幸謙・荘島宏二郎