Rで因子分析
#心理学データ解析法の「因子分析」のスライドを参照ください。
library(psych)
library(tidyverse)
#psychパッケージのデータbfiを使う
#International Personality Item Poolで提供されている25因子のパーソナリティ調査
View(bfi)#データの確認
head(bfi)#データの確認
###スライド7################################################################
#授業の進行上、協調性A1~A5、勤勉性C1~C5に限定したデータセットを作成する
#授業スライドでは、複数のデータ処理を一括で作業している(おすすめ)
#ここでは説明のため1つずつ作業
#協調性A1~A5、勤勉性C1~C5を選択して、bfi_ACというデータセットを作成
bfi_AC1 <- bfi %>%
select(A1:A5, C1:C5)
head(bfi_AC1)#確認
#元の資料より(ここにはない)、A1, C4, C5は逆転項⽬なので逆転させる
#授業スライドでは変数を上書きしているが、逆転させる際は変数は上書きせず新しい変数を作成する(あとで間違いチェックがしやすい)
#ここではrをつける
bfi_AC2<-bfi_AC1 %>%
mutate(A1r=7-A1,C4r=7-C4, C5r=7-C5)
head(bfi_AC2)#できているか確認
summary(bfi_AC2)#NAがあるのがわかるのでNAを削除
bfi_AC3 <- bfi_AC2 %>%
na.omit()
summary(bfi_AC3)#できているか確認
#逆転項目の元の変数を削除
bfi_AC4 <- bfi_AC3 %>%
select(-A1,-C4,-C5)
head(bfi_AC4) #できているか確認
###スライド9################################################################
#相関行列の確認
round(cor(bfi_AC4),2)
#並び替えをしたかったら
select<-c("A1r","A2","A3","A4","A5","C1","C2","C3","C4r","C5r")
bfi_AC4[select]#これで並び替えができる
round(cor(bfi_AC4[select]),2)
###スライド11################################################################
result<-factanal(bfi_AC4[select],factors=2, scores="regression", rotation="promax")
print(result, cutoff=0)
###スライド15################################################################
fa.parallel(bfi_AC4, fa="fa")
###スライド18################################################################
VSS(bfi_AC4,n=4) #MAP基準とBIC基準をみる