【R】lavaanを使った多母集団同時分析 [データサイエンス、統計モデル]
共分散構造分析で多母集団同時分析をする方法について。
通常は、単一の母集団からサンプリングされたと仮定しますが、実際は、様々な集団(セグメント)を感がる必要があります。
性別の違い、年代の違いなど。
ただ、各セグメントごとにデータを分けてしまうと、サンプルサイズが小さくなってしまいます。
そこで、登場するのが多母集団同時分析です。
全体の構造は同じとみて、ここのセグメントごとに、係数を微調整するイメージです。
lavaanで多母集団同時分析をするには、
group = "*****"
で設定することができます。
# 分析モデル 1
通常の共分散構造分析
# 分析モデル 2
多母集団同時分析
########################################
library(lavaan)
library(psych)
#分析前にNA(欠測)を含む個体(対象者)を除外する
#リストワイズ削除
bfi2<-na.omit(bfi[ , c("A1", "A2", "A3", "A4", "A5", "gender")])
#変数に名前を付ける
colnames(bfi2)<-c("a1","a2","a3","a4","a5","gender")
#分析モデル 1
model <- '
A =~ a1 + a2 + a3 + a4 + a5
a1 ~~ a1;a2 ~~ a2;a3 ~~ a3;a4 ~~ a4;a5 ~~ a5
A ~~ 1*A
'
fit1 <- lavaan(model, data=bfi2)
summary(fit1, standardized=T, fit.measures = TRUE)
#分析モデル 2
fit2 <- lavaan(model, data=bfi2, group = "gender")
summary(fit2, standardized=T, fit.measures = TRUE)
########################################
通常は、単一の母集団からサンプリングされたと仮定しますが、実際は、様々な集団(セグメント)を感がる必要があります。
性別の違い、年代の違いなど。
ただ、各セグメントごとにデータを分けてしまうと、サンプルサイズが小さくなってしまいます。
そこで、登場するのが多母集団同時分析です。
全体の構造は同じとみて、ここのセグメントごとに、係数を微調整するイメージです。
lavaanで多母集団同時分析をするには、
group = "*****"
で設定することができます。
# 分析モデル 1
通常の共分散構造分析
# 分析モデル 2
多母集団同時分析
########################################
library(lavaan)
library(psych)
#分析前にNA(欠測)を含む個体(対象者)を除外する
#リストワイズ削除
bfi2<-na.omit(bfi[ , c("A1", "A2", "A3", "A4", "A5", "gender")])
#変数に名前を付ける
colnames(bfi2)<-c("a1","a2","a3","a4","a5","gender")
#分析モデル 1
model <- '
A =~ a1 + a2 + a3 + a4 + a5
a1 ~~ a1;a2 ~~ a2;a3 ~~ a3;a4 ~~ a4;a5 ~~ a5
A ~~ 1*A
'
fit1 <- lavaan(model, data=bfi2)
summary(fit1, standardized=T, fit.measures = TRUE)
#分析モデル 2
fit2 <- lavaan(model, data=bfi2, group = "gender")
summary(fit2, standardized=T, fit.measures = TRUE)
########################################