草薙の研究ログ

英語の先生をやってます。

因子分析で任意の項目を落としたときのモデルのあてはまり

ステップワイズ探索的因子分析(SEFA)のウェブサイトが最近動かないらしい(2014年7月現在)。

 

ちょっと似たようなことをしようと思って。相変わらず雑なやり方だけど。

 

もうRでジャックナイフみたいに全部項目の数だけ因子分析しちゃう。

使うのは,psychパッケージのfa関数。

 

一番簡単(で雑)なのは,

 

idfasim<-function(data,numfac){
for(i in 1:ncol(data))
{
print(fa(data[,-i],numfac))
}
}

とかやっちゃって,

idefa(データフレーム, 因子数)とかやってfa関数の出力を全部読んじゃう。

自作関数の名前どうでもいいww item dropped factor analysis みたいな。

 

これじゃ面倒なので,BICだけ見るとか。

 

idefabic<-function(data,numfac){
bics=numeric(0)
for(i in 1:ncol(data))
{
bics[i]=fa(data[,-i],numfac,rotate="promax")[23]
}
print(bics)
plot(1:ncol(data),bics,xlab="Item Dropped",ylab="BIC")
}

 

 これでBICだけで比べてみるとか。これは単純に落とした項目とその時のBICだけ値で出力し,以下のような図をプロットするだけ。まだましね。

 

f:id:kusanagik:20140724160523p:plain

別にどの値取り出して比べても同じだけどね。カイ二乗でもいいし。

さて。