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基準をみる