毎回やる儀式

今日のモデルのRQ例

  • お笑いの評価基準って,要するに重要なのはどこなんだろうね?
  • 野球選手の個性がみたい。個性が一番わかりやすくなるには,どういう評価をしたらいいんだろう?
  • 世の中にはいろんな性格を表す言葉があるけれど,同じようなものも多い。本当は全部で何種類なの?
  • 女子力,コミュ力,社会人基礎力・・・いろいろな「力」があるらしいけど,これをどうやって測ればいいの?
  • レジャーを研究する人が,小学生に「夏休みを楽しんだかどうか」についてのアンケートを行ったんだけど,子どもってどういうのを楽しいと思うんだろうね?

今日のモデルのRQ例解説

今日のRQは,上2つは主成分分析Principle Component Analysis,下3つは因子分析Factor Analysisという名前がついています。

主成分分析は,次のような目的で使われます。

  • 複数の評価次元をまとめて少数にする
  • 個人差を最大にする「点数配分」を機械的に求め,対象者を区別しやすくする

一方,因子分析は次のように説明されます。

  • 複数の項目の背後に潜む次元を明らかにする
  • 背後に潜む次元ごとのスコアを算出し,回答者を分類するのに使う

いずれの方法も,似たような問題関心を持っていると思いませんか?

主成分分析でやりたいこと

主成分分析は「要するに」という情報のまとめ方についての技術です。例えば身長と体重でプロ野球選手の体躯(ガタイ)は特徴付けられますが,この二つの変数は互いに相関しあっていますね。相関しあっている,ということはうまく足し合わせると一つになったりするんじゃないかしら?なるんです。

例えば「身長」と「体重」を組み合わせた変数でプロ野球選手を表現してみたいと思います。プロ野球選手の特徴を際立たせるのが目的ですから(みんな同じになっても仕方がないので),この三つの変数に重みをつけて,なにかその特徴を表現する変数を作ることをイメージをしてみてください。

数学的にはこうなります。 \[ P = w_1 * height + w_2 * weight\]

ここで,作られる変数\(P\)の分散を最大にするように,三つの変数\(w_1,w_2\)の重みを決めます。ここで\(P\)を主成分と呼びます。またこの方法が主成分分析(PCA,Principle Component Analysis)と言われるものです。

こうして作られた合成変数\(P\)はプロ野球選手の特徴を表現したスコアです。この\(P\)の分散が最大になるように未知数\(w_1,w_2\)を定める,というのがこの分析で行われることです。身長を100倍して,体重を30倍して,いやいやもっともっと大きな数字で,というときりがありませんし,目的は\(P\)を大きくすることではなくて\(P\)の分散を大きくすることですから,\(\sum w_i^2 = 1\)という上限の制約を与えてこの問題をときます。

因子分析でやりたいこと

心理学では因子分析がよく使われます。たとえば質問紙調査で性格や態度について色々きいてみたとします。ある性格(態度)を持っている人であれば,いくつかの項目セットには同じような回答パターンが出てくると考えられます。たとえば「外交的な性格」をもっているひとであれば,「外に出かけるのが楽しい」「人と会話するのが楽しい」などの項目に「当てはまる(7)」というでしょうし,外交的な性格の逆で内向的な性格を持っている人であれば,同じ項目に「当てはまらない(1)」ということになるでしょう。外交度の高さ・低さによって,回答パターンの高さ・低さに影響があるはずです。

我々がデータとして手に入れることができるのは回答パターンだけですが,回答パターンのなかで相関関係の高い項目群を取り出して眺めてみると,「そこには外向性があるんじゃないか?」と判断することができます。

「性格」「学力」「女子力」のように,あるいは「夏休みの楽しみ方」のような構成概念は目に見えません。しかしそういうのが関係しそうな項目から調査票をつくれば,複数の項目に共通した反応が出てくるはず。たとえば,学力が高い人は,いろんな問題を出してもどんどん正解していくし,学力が低い人はいろんな問題にどんどん間違えていく,という傾向があるはずです。

因子分析法は,この傾向を相関関係からとらえ,「背後にこういうまとまりがあるんじゃないか」というのを見つけ出してくる手法です。目に見えないものを見えるようにというとなんだか魔法のような,怪しげな術があるのかと思うかもしれませんが,今回のテーマはまさにそういうことなのです。

目に見えないもの=心とまでは言いませんが,ここで言わんとすることを専門的に言うと「潜在変数」とか「合成変数」ということになります。主成分分析の場合は主成分,因子分析の場合は因子とよばれますが,より一般的に「(評価)次元」ということもあります。例えば主成分分析で作られた\(P\)は「ガタイ」次元が見つかった,といっても良いわけです。

因子分析と主成分分析の違い

この二つのどこが違うかというと,

の2点が挙げられます。

主成分分析は標準化してないスコアでも計算できます。因子分析は普通,変数間関係を標準化した相関行列から分析を始めます。

主成分分析は変数のスコアをそのまま使いますが,因子分析は知能テストや性格検査を背景に生まれてきたこともあって,得られた変数の数字には誤差が含まれているのではないかという仮定をおきます。そこが大きく違うところで,分析結果の処理や使い方,数学的背景は同じだと思ってください。

主成分分析をやってみましょう

とりあえず主成分分析をやってみましょう。psychパッケージを使いますので,まだの方はインストールしてください。

install.packages(psych)

データはお笑い評定を使います。KOCデータを読み込みます。

koc <- read.csv("owarai1.csv",fileEncoding="UTF-8")

評定者の特徴を「違いがはっきりするように」特徴付けます。主成分分析はpsychパッケージのprincipal関数を使います

library(psych)
result.pri <- principal(koc[2:10])
result.pri
## Principal Components Analysis
## Call: principal(r = koc[2:10])
## Standardized loadings (pattern matrix) based upon correlation matrix
##                     PC1   h2   u2 com
## アキナ             0.85 0.72 0.28   1
## カミナリ           0.36 0.13 0.87   1
## 相席スタート       0.93 0.86 0.14   1
## スリムクラブ       0.78 0.61 0.39   1
## ハライチ           0.81 0.66 0.34   1
## スーパーマラドーナ 0.91 0.83 0.17   1
## さらば青春の光     0.85 0.73 0.27   1
## 和牛               0.52 0.27 0.73   1
## 銀シャリ           0.92 0.85 0.15   1
## 
##                 PC1
## SS loadings    5.66
## Proportion Var 0.63
## 
## Mean item complexity =  1
## Test of the hypothesis that 1 component is sufficient.
## 
## The root mean square of the residuals (RMSR) is  0.13 
##  with the empirical chi square  15.08  with prob <  0.97 
## 
## Fit based upon off diagonal values = 0.95

出てきた結果から,それぞれの得点を「PC1」にある数字をかけて足し合わせた点数を算出すると,回答者の「評価得点」が決まるということです。もちろん計算するのは面倒なので,機械にやらせます。

result.pri$scores
##               PC1
##  [1,]  0.52243558
##  [2,]  1.53278570
##  [3,] -2.17186614
##  [4,] -1.22512210
##  [5,]  0.83331738
##  [6,]  0.16603268
##  [7,] -0.10830602
##  [8,] -0.53159350
##  [9,] -0.33010313
## [10,]  0.44834484
## [11,]  0.91167372
## [12,] -0.04759901

こうして一次元に並べて評定者を特徴付けることができました。

データを縦横逆にして,演者の方を振り分けることもできます。

result.pri2 <- principal(t(koc[2:10]))
## Warning in cor.smooth(r): Matrix was not positive definite, smoothing was
## done
## Warning in principal(t(koc[2:10])): The matrix is not positive semi-
## definite, scores found from Structure loadings
result.pri2
## Principal Components Analysis
## Call: principal(r = t(koc[2:10]))
## Standardized loadings (pattern matrix) based upon correlation matrix
##     PC1    h2   u2 com
## 1  0.75 0.564 0.44   1
## 2  0.66 0.438 0.56   1
## 3  0.19 0.038 0.96   1
## 4  0.66 0.438 0.56   1
## 5  0.63 0.395 0.61   1
## 6  0.54 0.293 0.71   1
## 7  0.91 0.823 0.18   1
## 8  0.12 0.015 0.98   1
## 9  0.85 0.718 0.28   1
## 10 0.35 0.124 0.88   1
## 11 0.77 0.586 0.41   1
## 12 0.11 0.012 0.99   1
## 
##                 PC1
## SS loadings    4.44
## Proportion Var 0.37
## 
## Mean item complexity =  1
## Test of the hypothesis that 1 component is sufficient.
## 
## The root mean square of the residuals (RMSR) is  0.22 
##  with the empirical chi square  59.51  with prob <  0.28 
## 
## Fit based upon off diagonal values = 0.67
result.pri2$scores
##                            PC1
## アキナ             -1.44533982
## カミナリ           -5.43767881
## 相席スタート       -2.24667695
## スリムクラブ       -6.87789787
## ハライチ            1.84234057
## スーパーマラドーナ  4.56293746
## さらば青春の光     -0.06293712
## 和牛                6.05535629
## 銀シャリ            3.60989625

赤字の警告が出ていますが,今は気にしなくて結構です。

因子分析をやってみましょう

さて,では因子分析です。この手法は一つ注意が必要です。この手法は列数より行数が大きくないとできません。誤差も考えるので,そのための情報がたくさん必要で,目安として変数の数(列数)の十倍ぐらいのデータ数(行数)が必要です。

なので,使うデータを野球データに切り替えましょう。 使う変数を一部に限定します。量的変数だけにしておきます。

baseball <- read.csv("ball2017.csv",fileEncoding = "UTF-8")
# ここで使う変数は次の通りです。
fa.dat <- subset(baseball, select=c("PA","HR","K","pay"))

因子数を決める手法

因子分析を始める場合,まず説明する潜在変数=因子の数をいくつにするか,を決めなければなりません。因子数の決め方は幾つかあります。

  1. スクリープロットを見て考える
  2. 固有値が1.0を超えるところまで採用する
  3. 累積寄与率が5割をこえるところまで採用する
  4. 適合度指標をみて最適値を得る
  5. 乱数に基づくデータと比べる(平行分析)
  6. 因子で相関データを綺麗に説明できるように (最小平平均偏相関法,MAP)

1-3は古典な方法,4-6はより客観的で現代的な方法です。おすすめは5と6です。

実際にやってみましょう。

因子数を決める

# psychパッケージを使います
# install.packages("psych")
library(psych)
fa.parallel(fa.dat,SMC=TRUE)

## Parallel analysis suggests that the number of factors =  1  and the number of components =  1
VSS(fa.dat)

## 
## Very Simple Structure
## Call: vss(x = x, n = n, rotate = rotate, diagonal = diagonal, fm = fm, 
##     n.obs = n.obs, plot = plot, title = title, use = use, cor = cor)
## VSS complexity 1 achieves a maximimum of 0.88  with  1  factors
## VSS complexity 2 achieves a maximimum of 0.95  with  2  factors
## 
## The Velicer MAP achieves a minimum of NA  with  1  factors 
## BIC achieves a minimum of  NA  with  1  factors
## Sample Size adjusted BIC achieves a minimum of  NA  with  1  factors
## 
## Statistics by number of factors 
##   vss1 vss2  map dof  chisq  prob sqresid  fit RMSEA   BIC SABIC complex
## 1 0.88 0.00 0.15   2 8.7781 0.012    0.94 0.88  0.21 0.065   6.4     1.0
## 2 0.80 0.95 0.40  -1 0.0053    NA    0.37 0.95    NA    NA    NA     1.2
## 3 0.48 0.80 1.00  -3 0.0000    NA    0.51 0.94    NA    NA    NA     1.9
## 4 0.48 0.80   NA  -4 0.0000    NA    0.51 0.94    NA    NA    NA     1.9
##    eChisq    SRMR eCRMS eBIC
## 1 2.7e+00 5.4e-02 0.094   -6
## 2 7.6e-04 9.0e-04    NA   NA
## 3 2.4e-21 1.6e-12    NA   NA
## 4 2.4e-21 1.6e-12    NA   NA

結果として,平行分析では1因子が良いということでした。では一つに絞ってやってみましょう。

因子分析を行う

result.fa <- fa(fa.dat,nfactors =1)
print(result.fa,sort=T)
## Factor Analysis using method =  minres
## Call: fa(r = fa.dat, nfactors = 1)
## Standardized loadings (pattern matrix) based upon correlation matrix
##     V  MR1   h2   u2 com
## K   3 0.90 0.82 0.18   1
## HR  2 0.83 0.68 0.32   1
## PA  1 0.74 0.55 0.45   1
## pay 4 0.50 0.25 0.75   1
## 
##                 MR1
## SS loadings    2.30
## Proportion Var 0.57
## 
## Mean item complexity =  1
## Test of the hypothesis that 1 factor is sufficient.
## 
## The degrees of freedom for the null model are  6  and the objective function was  1.85 with Chi Square of  138.32
## The degrees of freedom for the model are 2  and the objective function was  0.12 
## 
## The root mean square of the residuals (RMSR) is  0.05 
## The df corrected root mean square of the residuals is  0.09 
## 
## The harmonic number of observations is  78 with the empirical chi square  2.73  with prob <  0.26 
## The total number of observations was  78  with Likelihood Chi Square =  8.78  with prob <  0.012 
## 
## Tucker Lewis Index of factoring reliability =  0.845
## RMSEA index =  0.215  and the 90 % confidence intervals are  0.083 0.36
## BIC =  0.06
## Fit based upon off diagonal values = 0.99
## Measures of factor score adequacy             
##                                                    MR1
## Correlation of (regression) scores with factors   0.94
## Multiple R square of scores with factors          0.89
## Minimum correlation of possible factor scores     0.78

結果の出力には,大きい順に示すsortを入れてみました。さて,因子分析でも点数を計算することができます。

head(result.fa$scores)
##          MR1
## 1  1.7173993
## 2  0.9928152
## 3  0.9021045
## 4  1.0468604
## 5 -0.8001943
## 6  1.6502515
tail(result.fa$scores)
##           MR1
## 73 -0.8679364
## 74  1.5012342
## 75 -1.1254874
## 76 -0.1182995
## 77  0.4133865
## 78  0.1908554

今回は四つの変数を一つにまとめました。実際の性格検査をはじめとする調査では,もっと多くの項目,もっと多くのデータを扱います。 サンプルデータを使ってやってみましょう。

dat <- bfi[1:25]
nrow(dat)
## [1] 2800
VSS(dat)

## 
## Very Simple Structure
## Call: vss(x = x, n = n, rotate = rotate, diagonal = diagonal, fm = fm, 
##     n.obs = n.obs, plot = plot, title = title, use = use, cor = cor)
## VSS complexity 1 achieves a maximimum of 0.58  with  4  factors
## VSS complexity 2 achieves a maximimum of 0.74  with  5  factors
## 
## The Velicer MAP achieves a minimum of 0.01  with  5  factors 
## BIC achieves a minimum of  -513.09  with  8  factors
## Sample Size adjusted BIC achieves a minimum of  -106.39  with  8  factors
## 
## Statistics by number of factors 
##   vss1 vss2   map dof chisq     prob sqresid  fit RMSEA  BIC SABIC complex
## 1 0.49 0.00 0.024 275 11863  0.0e+00    25.9 0.49 0.123 9680 10554     1.0
## 2 0.54 0.63 0.018 251  7362  0.0e+00    18.6 0.63 0.101 5370  6168     1.2
## 3 0.56 0.70 0.017 228  5096  0.0e+00    14.6 0.71 0.088 3286  4010     1.3
## 4 0.58 0.74 0.015 206  3422  0.0e+00    11.5 0.77 0.075 1787  2441     1.4
## 5 0.54 0.74 0.015 185  1809 4.3e-264     9.4 0.81 0.056  341   928     1.5
## 6 0.54 0.71 0.016 165  1032 1.8e-125     8.3 0.84 0.043 -277   247     1.8
## 7 0.51 0.70 0.019 146   708  1.2e-74     7.9 0.85 0.037 -451    13     1.9
## 8 0.51 0.66 0.022 128   503  7.1e-46     7.4 0.85 0.032 -513  -106     2.0
##   eChisq  SRMR eCRMS  eBIC
## 1  23725 0.119 0.124 21542
## 2  12173 0.085 0.093 10180
## 3   7019 0.065 0.074  5209
## 4   3606 0.046 0.056  1971
## 5   1412 0.029 0.037   -57
## 6    649 0.020 0.027  -661
## 7    435 0.016 0.023  -724
## 8    278 0.013 0.020  -738
fa.parallel(dat)

## Parallel analysis suggests that the number of factors =  6  and the number of components =  6

まず因子数ですが,基準によっては4,5,6など提示する因子数が違ってきますね。ここは5でやってみましょうか。

result.fa2 <- fa(dat,nfactors = 5)
## Loading required namespace: GPArotation
print(result.fa2,sort=T)
## Factor Analysis using method =  minres
## Call: fa(r = dat, nfactors = 5)
## Standardized loadings (pattern matrix) based upon correlation matrix
##    item   MR2   MR1   MR3   MR5   MR4   h2   u2 com
## N1   16  0.81  0.10  0.00 -0.11 -0.05 0.65 0.35 1.1
## N2   17  0.78  0.04  0.01 -0.09  0.01 0.60 0.40 1.0
## N3   18  0.71 -0.10 -0.04  0.08  0.02 0.55 0.45 1.1
## N5   20  0.49 -0.20  0.00  0.21 -0.15 0.35 0.65 2.0
## N4   19  0.47 -0.39 -0.14  0.09  0.08 0.49 0.51 2.3
## E2   12  0.10 -0.68 -0.02 -0.05 -0.06 0.54 0.46 1.1
## E4   14  0.01  0.59  0.02  0.29 -0.08 0.53 0.47 1.5
## E1   11 -0.06 -0.56  0.11 -0.08 -0.10 0.35 0.65 1.2
## E5   15  0.15  0.42  0.27  0.05  0.21 0.40 0.60 2.6
## E3   13  0.08  0.42  0.00  0.25  0.28 0.44 0.56 2.6
## C2    7  0.15 -0.09  0.67  0.08  0.04 0.45 0.55 1.2
## C4    9  0.17  0.00 -0.61  0.04 -0.05 0.45 0.55 1.2
## C3    8  0.03 -0.06  0.57  0.09 -0.07 0.32 0.68 1.1
## C5   10  0.19 -0.14 -0.55  0.02  0.09 0.43 0.57 1.4
## C1    6  0.07 -0.03  0.55 -0.02  0.15 0.33 0.67 1.2
## A3    3 -0.03  0.12  0.02  0.66  0.03 0.52 0.48 1.1
## A2    2 -0.02  0.00  0.08  0.64  0.03 0.45 0.55 1.0
## A5    5 -0.11  0.23  0.01  0.53  0.04 0.46 0.54 1.5
## A4    4 -0.06  0.06  0.19  0.43 -0.15 0.28 0.72 1.7
## A1    1  0.21  0.17  0.07 -0.41 -0.06 0.19 0.81 2.0
## O3   23  0.03  0.15  0.02  0.08  0.61 0.46 0.54 1.2
## O5   25  0.13  0.10 -0.03  0.04 -0.54 0.30 0.70 1.2
## O1   21  0.02  0.10  0.07  0.02  0.51 0.31 0.69 1.1
## O2   22  0.19  0.06 -0.08  0.16 -0.46 0.26 0.74 1.7
## O4   24  0.13 -0.32 -0.02  0.17  0.37 0.25 0.75 2.7
## 
##                        MR2  MR1  MR3  MR5  MR4
## SS loadings           2.57 2.20 2.03 1.99 1.59
## Proportion Var        0.10 0.09 0.08 0.08 0.06
## Cumulative Var        0.10 0.19 0.27 0.35 0.41
## Proportion Explained  0.25 0.21 0.20 0.19 0.15
## Cumulative Proportion 0.25 0.46 0.66 0.85 1.00
## 
##  With factor correlations of 
##       MR2   MR1   MR3   MR5   MR4
## MR2  1.00 -0.21 -0.19 -0.04 -0.01
## MR1 -0.21  1.00  0.23  0.33  0.17
## MR3 -0.19  0.23  1.00  0.20  0.19
## MR5 -0.04  0.33  0.20  1.00  0.19
## MR4 -0.01  0.17  0.19  0.19  1.00
## 
## Mean item complexity =  1.5
## Test of the hypothesis that 5 factors are sufficient.
## 
## The degrees of freedom for the null model are  300  and the objective function was  7.23 with Chi Square of  20163.79
## The degrees of freedom for the model are 185  and the objective function was  0.65 
## 
## The root mean square of the residuals (RMSR) is  0.03 
## The df corrected root mean square of the residuals is  0.04 
## 
## The harmonic number of observations is  2762 with the empirical chi square  1392.16  with prob <  5.6e-184 
## The total number of observations was  2800  with Likelihood Chi Square =  1808.94  with prob <  4.3e-264 
## 
## Tucker Lewis Index of factoring reliability =  0.867
## RMSEA index =  0.056  and the 90 % confidence intervals are  0.054 0.058
## BIC =  340.53
## Fit based upon off diagonal values = 0.98
## Measures of factor score adequacy             
##                                                    MR2  MR1  MR3  MR5  MR4
## Correlation of (regression) scores with factors   0.92 0.89 0.88 0.88 0.84
## Multiple R square of scores with factors          0.85 0.79 0.77 0.77 0.71
## Minimum correlation of possible factor scores     0.70 0.59 0.54 0.54 0.42

ちょっとわかりにくいところもあるので,因子負荷量が小さなところを表示しないようにしてみます。

print(result.fa2,sort=T,cut=0.3)
## Factor Analysis using method =  minres
## Call: fa(r = dat, nfactors = 5)
## Standardized loadings (pattern matrix) based upon correlation matrix
##    item   MR2   MR1   MR3   MR5   MR4   h2   u2 com
## N1   16  0.81                         0.65 0.35 1.1
## N2   17  0.78                         0.60 0.40 1.0
## N3   18  0.71                         0.55 0.45 1.1
## N5   20  0.49                         0.35 0.65 2.0
## N4   19  0.47 -0.39                   0.49 0.51 2.3
## E2   12       -0.68                   0.54 0.46 1.1
## E4   14        0.59                   0.53 0.47 1.5
## E1   11       -0.56                   0.35 0.65 1.2
## E5   15        0.42                   0.40 0.60 2.6
## E3   13        0.42                   0.44 0.56 2.6
## C2    7              0.67             0.45 0.55 1.2
## C4    9             -0.61             0.45 0.55 1.2
## C3    8              0.57             0.32 0.68 1.1
## C5   10             -0.55             0.43 0.57 1.4
## C1    6              0.55             0.33 0.67 1.2
## A3    3                    0.66       0.52 0.48 1.1
## A2    2                    0.64       0.45 0.55 1.0
## A5    5                    0.53       0.46 0.54 1.5
## A4    4                    0.43       0.28 0.72 1.7
## A1    1                   -0.41       0.19 0.81 2.0
## O3   23                          0.61 0.46 0.54 1.2
## O5   25                         -0.54 0.30 0.70 1.2
## O1   21                          0.51 0.31 0.69 1.1
## O2   22                         -0.46 0.26 0.74 1.7
## O4   24       -0.32              0.37 0.25 0.75 2.7
## 
##                        MR2  MR1  MR3  MR5  MR4
## SS loadings           2.57 2.20 2.03 1.99 1.59
## Proportion Var        0.10 0.09 0.08 0.08 0.06
## Cumulative Var        0.10 0.19 0.27 0.35 0.41
## Proportion Explained  0.25 0.21 0.20 0.19 0.15
## Cumulative Proportion 0.25 0.46 0.66 0.85 1.00
## 
##  With factor correlations of 
##       MR2   MR1   MR3   MR5   MR4
## MR2  1.00 -0.21 -0.19 -0.04 -0.01
## MR1 -0.21  1.00  0.23  0.33  0.17
## MR3 -0.19  0.23  1.00  0.20  0.19
## MR5 -0.04  0.33  0.20  1.00  0.19
## MR4 -0.01  0.17  0.19  0.19  1.00
## 
## Mean item complexity =  1.5
## Test of the hypothesis that 5 factors are sufficient.
## 
## The degrees of freedom for the null model are  300  and the objective function was  7.23 with Chi Square of  20163.79
## The degrees of freedom for the model are 185  and the objective function was  0.65 
## 
## The root mean square of the residuals (RMSR) is  0.03 
## The df corrected root mean square of the residuals is  0.04 
## 
## The harmonic number of observations is  2762 with the empirical chi square  1392.16  with prob <  5.6e-184 
## The total number of observations was  2800  with Likelihood Chi Square =  1808.94  with prob <  4.3e-264 
## 
## Tucker Lewis Index of factoring reliability =  0.867
## RMSEA index =  0.056  and the 90 % confidence intervals are  0.054 0.058
## BIC =  340.53
## Fit based upon off diagonal values = 0.98
## Measures of factor score adequacy             
##                                                    MR2  MR1  MR3  MR5  MR4
## Correlation of (regression) scores with factors   0.92 0.89 0.88 0.88 0.84
## Multiple R square of scores with factors          0.85 0.79 0.77 0.77 0.71
## Minimum correlation of possible factor scores     0.70 0.59 0.54 0.54 0.42

これを見て因子の意味を考え,因子に命名することが一般的です。 因子分析の結果の見方は次の通りです。

  • 因子負荷量を見て,まとまりの意味を考えます。
  • 累積寄与率もチェックしておきましょう
  • 因子間相関も見ておきましょう
  • その下には適合度指標が出ていますので,参考にしましょう

あまり小さな負荷量は考えるほどでもないので,表示をさせないオプションをつけています(cut=0.3)。 これはサンプルデータなので非常に綺麗な形で出ていますが,実際の分析ではもっとごちゃっとした結果になることがあります。そういう場合は結果を見やすくするために「回転」という技を使うことがあります。

MDSの時のように,ここで示されている数字は「因子=次元の座標」です。座標は原点は定まっているものの,東西南北がグルグルする可能性があるので,我々にとってわかりやすいように調整してやれば良いでしょう。手でぐいっと回すことができればいいのですが層にもいかないので,数学的な基準で回してやることにします。回転方法は色々あり,fa関数のデフォルトはoblimin回転です。変更するにはrotateオプションを使います。

result.fa2vari <- fa(dat,nfactors = 5,rotate="cluster")
print(result.fa2vari,sort=T,cut=0.3)
## Factor Analysis using method =  minres
## Call: fa(r = dat, nfactors = 5, rotate = "cluster")
## Standardized loadings (pattern matrix) based upon correlation matrix
##    item   MR2   MR1   MR3   MR5   MR4   h2   u2 com
## N1   16  0.80                         0.65 0.35 1.3
## N2   17  0.77                         0.60 0.40 1.2
## N3   18  0.74                         0.55 0.45 1.0
## N5   20  0.55                         0.35 0.65 1.5
## N4   19  0.55 -0.30                   0.49 0.51 1.9
## E2   12       -0.71                   0.54 0.46 1.2
## E4   14        0.63                   0.53 0.47 1.4
## E1   11       -0.62                   0.35 0.65 1.1
## E3   13        0.52                   0.44 0.56 1.6
## E5   15        0.50                   0.40 0.60 1.7
## C2    7              0.67             0.45 0.55 1.2
## C4    9             -0.61             0.45 0.55 1.2
## C3    8              0.57             0.32 0.68 1.1
## C5   10             -0.55             0.43 0.57 1.5
## C1    6              0.54             0.33 0.67 1.2
## A3    3                    0.64       0.52 0.48 1.2
## A2    2                    0.63       0.45 0.55 1.1
## A5    5                    0.50       0.46 0.54 1.6
## A1    1                   -0.45       0.19 0.81 1.6
## A4    4                    0.43       0.28 0.72 1.7
## O3   23                          0.57 0.46 0.54 1.5
## O5   25                         -0.54 0.30 0.70 1.1
## O1   21                          0.48 0.31 0.69 1.4
## O2   22                         -0.45 0.26 0.74 1.7
## O4   24                          0.41 0.25 0.75 2.6
## 
##                        MR2  MR1  MR3  MR5  MR4
## SS loadings           2.70 2.46 1.92 1.84 1.45
## Proportion Var        0.11 0.10 0.08 0.07 0.06
## Cumulative Var        0.11 0.21 0.28 0.36 0.41
## Proportion Explained  0.26 0.24 0.19 0.18 0.14
## Cumulative Proportion 0.26 0.50 0.68 0.86 1.00
## 
##  With factor correlations of 
##       MR2   MR1   MR3   MR5   MR4
## MR2  1.00 -0.22 -0.21 -0.13 -0.01
## MR1 -0.22  1.00  0.33  0.44  0.20
## MR3 -0.21  0.33  1.00  0.25  0.21
## MR5 -0.13  0.44  0.25  1.00  0.16
## MR4 -0.01  0.20  0.21  0.16  1.00
## 
## Mean item complexity =  1.4
## Test of the hypothesis that 5 factors are sufficient.
## 
## The degrees of freedom for the null model are  300  and the objective function was  7.23 with Chi Square of  20163.79
## The degrees of freedom for the model are 185  and the objective function was  0.65 
## 
## The root mean square of the residuals (RMSR) is  0.03 
## The df corrected root mean square of the residuals is  0.04 
## 
## The harmonic number of observations is  2762 with the empirical chi square  1392.16  with prob <  5.6e-184 
## The total number of observations was  2800  with Likelihood Chi Square =  1808.94  with prob <  4.3e-264 
## 
## Tucker Lewis Index of factoring reliability =  0.867
## RMSEA index =  0.056  and the 90 % confidence intervals are  0.054 0.058
## BIC =  340.53
## Fit based upon off diagonal values = 0.98
## Measures of factor score adequacy             
##                                                    MR2  MR1  MR3  MR5  MR4
## Correlation of (regression) scores with factors   0.93 0.91 0.88 0.88 0.83
## Multiple R square of scores with factors          0.86 0.83 0.77 0.77 0.69
## Minimum correlation of possible factor scores     0.71 0.65 0.54 0.54 0.39

落穂拾い

因子分析の留意点を幾つか挙げておきます。

  • 推定方法,今回はデフォルトのminres法を使いましたが,オプションで変えることができます。
  • 回転方法,今回はデフォルトのoblimin回転を使っていますが,回転方には他にもあります。
    • 直交回転はバリマックスが有名です。
    • 斜交回転はプロマックス法,独立クラスター法,ジオミン法などが有名です。
    • GPArotationパッケージを使うと他にもいろいろな回転ができます。

本日の課題

次のサイトにあるセールスマンデータを使って,次のオプションで因子分析をしてください。元データはM. Kendall and A. Stuart “The Advanced Theory of Statistics” Griffinのもので,48人のセールスマンを15項目で評価したものです。