【Rで多変量解析#12】確認的因子分析

記事の目的

確認的因子分析をRを使用して実装していきます。データの作成から実装するので、コピペで再現することが可能です。

 

目次

  1. ライブラリ
  2. データの作成
  3. 分析結果(cfa)
  4. 分析結果(sem)

 

1 ライブラリ

library(dplyr)
library(ggplot2)
library(lavaan)
library(semPlot)

 

2 データの作成

set.seed(1)
理系 <- rnorm(100, 50, 10)
文系 <- rnorm(100, 50, 10)
英語 <- rnorm(100, 文系, 10) %>% round()
数学 <- rnorm(100, 理系, 10) %>% round()
国語 <- rnorm(100, 文系, 10) %>% round()
理科 <- rnorm(100, 理系, 10) %>% round()
社会 <- rnorm(100, 文系, 10) %>% round()
data <- data.frame(英語, 数学, 国語, 理科, 社会)
data <- apply(data, 2, scale)
data %>% head()

 

3 分析結果(cfa)

data.model <- '理系=~数学+理科
文系=~英語+国語+社会'
model <- cfa(data.model, data=data)
summary(model,fit.measures=TRUE)

 

4 分析結果(sem)

model2 <- sem(data.model, data=data)
semPaths(model2, "model", "est", rotation = 2,
mar=c(3,5,3,7), # 余白の指定、下、左、上、右の順
edge.label.cex=1.5, # 矢印の係数の文字の大きさ
sizeMan = 15,
sizeLat = 15,
style = "lisrel",
curve = 3
)