« 読了:小川・山本・宮田 (2014) 原発関連tweetに「沈黙の螺旋」は生じたか | メイン | 読了:「予測市場と集合知」特集号 (2010) »
2014年9月 9日 (火)
ある方に「私は未読ですがこんな論文があるようですよ」とお知らせしたのだが(畏れ多くも)、よく考えてみると、自分が読んでない資料を紹介するのはいかがなものか。私の最初の指導教官ならば、穏やかに「いやあ私にはよくわかりませんが、それは少し無責任な態度といえなくもないかもしれませんね」と仰るであろう。先生は謙虚さを煮詰めて温和さでコーティングしてスーツを着せたような方で、自著の内容について質問された際も「いやあ私にはよくわかりませんが」と前置きしたという逸話が残っているほどであり、従って発言の真意を知るのは素人には困難なのだが、もし上記のような発言があればそれは厳しいお叱りの言葉なのだ。
すいません師匠、読みますです、と心の中で勝手に叱られ勝手に恐縮して、印刷してみたら、これ、40ページもあるやんか...
Browne, M.W. (2001) An overview of analytic rotation in exploratory factor analysis. Multivariate Behavioral Research, 36(1), 111-150.
探索的因子分析における回転法のレビュー。いまホットな話題とは言い難いだろうが、実務で因子分析を使う人にとってはいまでも切実な話題である。そういえば先日も、市場調査会社のある優秀なリサーチャーに「バリマクス回転とエカマクス回転はどうちがうんですか」と正面から問われ、うろたえたものであった。(私の答え:「似たようなもんっすよ」)
冒頭で著者いわく、現状で一番使われている回転法は、直交ならバリマクス、斜交ならプロマクス、ちょっと詳しい人なら直接クオーティミンであろうとのこと。
まず記号の定義。$p \times m$の初期因子行列を$A$とする。$m \times m$ の変換行列を $T$とする。回転後の因子パターン行列$\Lambda$は
$\Lambda = A T$
準拠構造行列を $L$ とする。で、パターン行列なり構造行列なりの複雑性(opp.単純性)を表す連続的関数を最小化したい、というのがお題である。
回転後の因子間相関行列を$\Phi$とする。直交回転ならば、$T$は
$\Phi = T' T = I$
と制約される。制約の数は $m(m-1)/2$個。斜交回転ならば
diag($\Phi$) = diag($T^{-1} T^{-1'}$) = $I$
という制約がかかる(因子の分散を1にするため)。制約の数は$m$。このように、直交回転も斜交回転も$f(\Lambda)$の最小化であって、ちがいは制約の数に過ぎない。
因子行列の単純性とはなんぞや。Thurstone(1947)は5つの基準を挙げている:
- 各行がすくなくともひとつのゼロを持つ
- 各列がすくなくともm個のゼロを持つ
- 列のすべての対が、一方はゼロでなく他方はゼロである行をいくつか持つ
- (m>3のとき) 列のすべての対が、両方がゼロである行をいくつか持つ
- 列のすべての対が、どちらもゼロでない行をいくつか持つ
ただし、このうち単純構造の定義になっているのは最初の基準だけで、あとの4つは識別条件などである。
以下、$\Lambda$(ないし$L$) のある行における非ゼロ要素の数を、その変数の「複雑性」と呼ぶ。複雑性1の変数を「完全指標」と呼ぶ。すべての変数が完全指標だったら、それは完全クラスタ配置である(変数の排他的分類に成功しているわけだ)。これが単純性の行きつく先だ、と考える人が多い。しかしThurstoneの基準はもっとゆるい。
以下、有名無名とりまぜて、回転法の紹介。
1) Crawford-Ferguson基準。
まずは非負の要素{$s_1$, $s_2$, ...}を持つベクトル$s$について考える。その複雑性についてCarrollは次の指標を考えた:
$c(s) = \sum_j \sum_{l \neq j} s_j s_l$
つまり、要素のすべての対の積和である。下限 0 が得られるのは、非ゼロ要素がせいぜい1個までのときである。
因子負荷の平方の行列$S$について考える。行を$s_{i.}$, 列を$s_{.j}$で表す。各行の複雑性の総和と各列の複雑性の重み付け和
$f(L) = (1-\kappa) \sum_i c(s_{i.}) + \kappa \sum_j c(s_{.j})$
をCrawford-Ferguson基準という。
- 第一項は変数複雑性で、Thurstonの基準3, 4, 5に対応している。完全クラスタ配置のときはもちろん、Thurstonの基準1を満たしているだけで下限 0 が得られる。つまり、一般因子の有無に対してはinsensitiveである(←なるほど...)。
- 第二項は因子複雑性で、各列の非ゼロ要素が1個のときに下限 0 が得られる。これはThurstonの基準2に対応している。
このCrawford-Ferguson基準と直交制約を合わせると、いわゆるオーソマクス回転のファミリーが得られる。$\kappa=0$ならクオーティマクス、$\kappa=1/p$ならバリマクス、$\kappa=m/(2p)$ならエカマクスに等しい。ここまではCrawford-Ferguson(1970)よりも前に提案されていた。$k=(m-1)/(p+m-2)$ならパーシマクスで、$\Lambda$の全要素が等しいときに変数複雑性と因子複雑性の貢献が同じになるように配慮している。$k=1$なら因子パーシモニーで、これはあまり実用性がない。
斜交制約のみをかける場合も同様のファミリーを考えることができる。各手法のオリジナルの定式化と区別するために、頭にCF-をつけて、たとえばCF-varimaxなどという。ちなみに、オリジナルのバリマクスの定式化を斜交化しちゃうと因子間相関が1になっちゃうという問題が生じるのだが、CF-varimaxの斜交回転ではそういうことは起きない。
2) Geomin基準。
さきほどのCarrollの複雑性の関数は、Thurstonの発想とちょっとちがう。Thursonは基準1で、ゼロが1個でもあったらそりゃ単純だ、と考えていたのだ。そこで、非負の要素{$s_1$, $s_2$, ..., $s_m$}を持つベクトル$s$について、その複雑性を要素の総乗
$c(s) = s_1 s_2 s_3 ... s_m$
としよう。
で、準拠構造行列の複雑性を次のように定義する。まずすべての要素を平方する。行を$s_i$とする。各行の複雑性の総和
$f(L) = \sum_i c(s_i)$
を行列の複雑性とする。Thurstonはこれを最小化するアルゴリズムを考えたんだけど、うまくいかなかった。
その後Yates(1987)がこれを次のように書き換えた。因子パターン行列を使う。まずすべての要素を平方しておく。各行について複雑性を求め$1/m$乗する(つまりは各行内の幾何平均である)。これを足しあげる。
$f(\Lambda) = \sum_i c(s_i) ^{1/m}$
Yatesはこの式をちょいと加工して(省略)、うまく最小化できるようにした。これをGeomin基準という。
3) McCammonの最小エントロピー基準。
まずはエントロピーの定義から。合計1となるn個の非負要素からなるベクトル x について、エントロピーは
$Ent(x) = - \sum_i e(x_i)$
ただし$x_i = 0$のとき$e(x_i) = 0$, $x_i>0$のとき$e(x_i) = x_i ln(x_i)$である。どこかひとつが1(他はすべて0) のときに下限0が得られるわけで、その点ではCarrollの複雑性と同じである。
例によって、因子パターン行列の全要素を平方しておく。各要素を$s_{ij}$、行$i$ の総和を$S_{i.}$, 列$j$ の総和を$S_{.j}$、全総和を$S$として、
$f(\lambda) = -\sum_j \sum_i e(s_{ij}/S_{.j}) / -\sum_j e(S_{.j}/S)$
落ち着いて眺めると、要するに、列エントロピーの総和を、列和のエントロピーで割った値である。つまり、各因子が少数の高い負荷を持ち、他の負荷はすべて0、というときに小さくなる。これがMcCammon(1966)の最小エントロピー基準である。ちなみに直交回転でしか役に立たない。
4) McKeon(1968)のインフォマクス基準。
因子負荷行列の各要素を平方した行列を、あたかも2元クロス表のように捉え、連関の尤度比検定量を最大化する。うわあ、なんだそりゃ。数式は省略。
5) 部分的に特定したターゲットへと回転する方法。
CFAみたいに聞こえるが、ちょっと違うのである。たぶん一生使わないと思うので省略。
話かわって、初期行列の標準化。回転の前に初期因子行列$A$をなんらか標準化することが多い。2つの手法がある。
- Kaiser標準化。行方向の平方和がどの行でも同じになるようにする。変数の共通性に関わらず、すべての変数を平等に扱おうというわけである。
- Cureton & Mulaikの標準化(CM標準化)。なにやらよくわからん理屈によって、高い因子負荷をひとつだけ持っている変数を重視するように重み付けするそうである。超面倒そうなのでスキップ。
いずれもサンプルサイズが小さいときはやめといたほうが良い由。(これはSASのproc factorでいうところのNORM=オプションの話だと思う。SASの場合、NONE, KAISER, WEIGHT(CM標準化のこと), COVの4種類があって、デフォルトはKAISERである。)
数値計算の話。著者らはCEFAというプログラムを配っていて、この論文に載っている手法をカバーしている由。局所最適解に落ちないようにこんな工夫をしてます、云々。パス。
やれやれ。。。ここまでがレビューであった。
後半は数値例。疲れたので斜め読み。要点をメモしておくと、
- 完全クラスタ配置に近い配置であれば、どの方法でもうまくいく。
- そうでないときには、安定して大域最小解を示す手法が誤った解を示したり、良い解を示す手法が不安定だったりする。残念ながら、最良の手法はヒトの判断なしには選べない。
- CM標準化は善をなす場合と悪をなす場合がある。他の解と比較するように。
というわけで、この論文は探索的因子分析についてある程度知っている人向けのレビューであった。いきなりCrawford-Ferguson基準の観点から整理しちゃっていて、従来よく使われているプロマクス回転については説明がない。そのかわり最近のGeomin基準については丁寧な説明がある。
明日の実務に役立つアドバイスはないが、勉強にはなりました。ううむ、やっぱし銀の弾丸はないのか。
論文:データ解析(-2014) - 読了: Browne (2001) 探索的因子分析の回転法を総ざらえ