JMP は使い方が特殊だし,不十分な分析結果しか得られない点で大きな問題を持っている。なんにも知らずに使っていると,とんでもないことになるかも知れないので,注意すべき点を挙げておく。
「因子分析」について
まず,「因子分析」をしようと「分析」メニューを探しても,「多変量」のところに「主成分分析」しかないことにびっくりする。「まさか因子分析ができないのじゃないだろうな」と。いぶかりながらも「主成分分析」をクリックしても,因子分析の一言もないウインドウが開くので,たいていの人は「因子分析はできないんだなあ」とあきらめるかも知れない。オンラインヘルプを引けば,この先に因子分析をする道が開けていることはわかるのだが。
ともあれ,変数を指定して OK ボタンをクリックすると,結果出力ウインドウが開き,やっと「主成分分析/因子分析」という用語が見える。横の▼をクリックしても,「主成分の回転」しか見えない。さすがにここまで来ると,「やっぱり因子分析はできないんだなあ」と引き返す人が多いだろう。
「主成分の回転」をクリックするとやっと因子分析を選択するウインドウが出てくる。でも,デフォルトチェックは「主成分分析」に付いている。「共通因子分析」の方をチェックする。まだ,「回転させたい主成分数」などと書いてある所へ「因子数」を指定する。回転方法は 17 種類もあるのに Promax 回転はない。ちなみに,最尤法による因子抽出もできない。
まあ,上に書いたように使いにくいこと甚だしいのは置いておこう。びっくりするのはこれからだ。
問題点を,具体的に示そう。
データ(10 変数,100 例)
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1 55 53 58 67 57 53 50 52 49 43
2 67 56 60 54 51 39 34 49 39 43
3 54 45 60 43 44 38 31 50 45 57
4 51 41 36 57 43 56 49 30 48 42
5 68 49 46 63 45 49 44 47 50 60
:
97 55 61 64 64 68 62 71 42 37 34
98 56 64 43 52 53 50 48 51 43 56
99 71 62 58 59 58 60 55 33 36 46
100 53 47 39 59 55 49 42 39 47 51
| V1 | 0.61545 |
| V2 | 0.51941 |
| V3 | 0.25152 |
| V4 | 0.65722 |
| V5 | 0.48406 |
| V6 | 0.63654 |
| V7 | 0.66903 |
| V8 | 0.33707 |
| V9 | 0.48071 |
| V10 | 0.38860 |
縮小した相関係数行列の固有値
縮小した相関係数行列という用語に驚く(要するに対角成分に共通性 SMC を入れた相関係数行列のこと)
累積寄与率が 100% を超えているのは,ご愛敬とはいえない(何のために因子数を入力させたのか)
| 固有値 | 2.1765 | 1.9906 | 1.4194 | 0.1639 | 0.0505 | -0.0798 | -0.1240 | -0.1501 | -0.1535 | -0.2539 |
| 寄与率 | 43.1877 | 39.4985 | 28.1655 | 3.2522 | 1.0014 | -1.5839 | -2.4596 | -2.9786 | -3.0454 | -5.0380 |
| 累積寄与率 | 43.1877 | 82.6862 | 110.8517 | 114.1039 | 115.1054 | 113.5215 | 111.0619 | 108.0834 | 105.0380 | 100.0000 |
| V1 | 0.8174146 | -0.112664 | 0.0403761 |
| V2 | 0.7272931 | -0.067517 | 0.1397364 |
| V3 | 0.4422879 | 0.1493453 | 0.1428637 |
| V4 | 0.8600484 | 0.038378 | 0.0169197 |
| V5 | -0.026013 | 0.7162139 | 0.0444897 |
| V6 | -0.008266 | 0.8287369 | -0.017459 |
| V7 | 0.0582675 | 0.8539378 | 0.1052255 |
| V8 | -0.049156 | -0.105564 | 0.6305146 |
| V9 | -0.167507 | -0.092615 | 0.7325297 |
| V10 | -0.097274 | 0.0292002 | 0.6558041 |
この「回転前の因子パターン」は,共通性の反復推定なしの主因子解である。
そんなばかな。
いまどき共通性の反復推定なしの主因子解を求める統計ソフトを探す方が難しい(SPSS では,反復回数に 1 回を指定すればよいが)。
ということで,R でやってみよう。
> x <- read.csv("dat10.dat") # 上のデータを x に読み込む
> x <- x[,-1]
> r <- cor(x) # 相関係数行列
> SMC <- 1-1/diag(solve(cor(x))) # SMC
> diag(r) <- SMC # 相関係数行列の対角成分に SMC を代入
> ans <- eigen(r) # 固有値・固有ベクトルを求める
> (before <- t(sqrt(ans$values[1:3])*t(ans$vectors[,1:3]))) # 因子負荷量
[,1] [,2] [,3]
[1,] -0.817414641 0.11266439 -0.04037608
[2,] -0.727293071 0.06751711 -0.13973643 符号は因子単位で反転できるので,
[3,] -0.442287879 -0.14934525 -0.14286366 JMP と同じ解が表示されている
[4,] -0.860048420 -0.03837805 -0.01691966
[5,] 0.026013348 -0.71621389 -0.04448974
[6,] 0.008266148 -0.82873688 0.01745875
[7,] -0.058267547 -0.85393778 -0.10522548
[8,] 0.049156355 0.10556384 -0.63051457
[9,] 0.167506912 0.09261514 -0.73252966
[10,] 0.097273812 -0.02920018 -0.65580410
JMP の因子分析についてはここで打ち止め。これ以上の吟味は無用。
共通性の反復推定をしないと,かなり違った解が出ることもある。
いずれにせよ,不十分な主因子解にどんな回転をほどこしても,駄目な結果しか得られないことは明らか。
いいですね?JMP の因子分析は使ってはいけません。
念のため,SPSS による分析結果をつけておきます。
| 因子行列a | |||
|   | 因子 | ||
| 1 | 2 | 3 | |
| V1 | 0.834 | -0.128 | 0.057 |
| V2 | 0.718 | -0.076 | 0.154 |
| V3 | 0.427 | 0.136 | 0.146 |
| V4 | 0.906 | 0.029 | 0.040 |
| V5 | -0.018 | 0.706 | 0.044 |
| V6 | 0.002 | 0.838 | -0.008 |
| V7 | 0.071 | 0.905 | 0.122 |
| V8 | -0.062 | -0.111 | 0.642 |
| V9 | -0.194 | -0.101 | 0.805 |
| V10 | -0.106 | 0.027 | 0.645 |
| 因子抽出法: 主因子法 | |||
| a. 3 個の因子が抽出されました。 14 回の反復が必要です。 | |||