[R] {psych} fa.parallel() : 実データとランダム平行行列のスクリープロットを描画する関数

説明

fa.parallel()は実データ行列(ないしその相関行列)とランダム平行行列のスクリープロットを対比的に描画する関数である。

成分ないし因子数を決定する方法の1つとして、連続する固有値に対するスクリープロット(scree plot)を描画する方法がある。

スクリープロット上の急激な傾きの変化は抽出すべき成分あるいは因子数を示唆する。(主成分分析で成分数、因子分析で因子数を決定し、具体的に基づいて主成分分析/因子分析を実行するキオトを、成分や因子を「抽出する」extractと表現する。)

平行分析(Parallel” analyis)は実データと同じサイズの乱数データを使用してそのスクリープロットを描き、実データのスクリープロットの比較する技術である。

fa.parallel()はtetrachoricあるいはpolychoric分析においてこれを実施する。

使用法(通常)

fa.parallel(データフレーム)

使用法(完全)

fa.parallel(x,n.obs=NULL,fm="minres",fa="both",main="Parallel Analysis Scree Plots",
n.iter=20,error.bars=FALSE,se.bars=TRUE,SMC=FALSE,ylabel=NULL,show.legend=TRUE,
sim=TRUE,quant=.95,cor="cor",use="pairwise")
fa.parallel.poly(x ,n.iter=10,SMC=TRUE,  fm = "minres",correct=TRUE,sim=FALSE,
       fa="both",global=TRUE) 
## S3 method for class 'poly.parallel'
plot(x,show.legend=TRUE,fa="both",...)

実行例

> fa.parallel(bfi[,1:25])
Parallel analysis suggests that the number of factors =  6  and the number of components =  6

因子数(成分数)としては6が適切と提言してくれています。

fa.parallel2

コメント