因子分析の因子抽出方法について

 
 

 

因子分析をする場合、方法として抽出法と回転法を選択する必要があります。

しかし、様々な抽出法・因子軸の回転方法があり、かつ、それらがどういうアルゴリズムで計算されているのかわからないことも多いと思います。最近いろいろ質問を受けることが多かったので、今回は因子分析の各種方法について少し解説します。

因子分析は統計手法の発展やコンピューターの計算能力によって、オーソドックスとなる方法がいろいろ変ってきました。昔の論文の因子分析といえば、ほぼ主成分分析+バリマックス回転でした。この方法は計算量が少なく、ほぼ確実に解が求まることがメリットです。1日かけて計算して、解が求まらなかったら悲劇ですからね。

次の流行は主因子法+バリマックス、場合によってはプロマックス回転、という感じだったように思います。90年代あたりの論文は、まだプロマックス回転も少ないです。

最近は最尤法+プロマックス回転が主流でしょうか。この方法を使って査読で文句を言われることはほとんどないでしょうから、そういう意味で探索的因子分析では選択肢について迷うことががなくなってきているのかもしれません。

因子分析をSPSSで実行する場合、とりあえず「最尤法+プロマックス回転でやれ!」と先輩に言われることが多いと思いますが、なぜその方法なのか、イマイチわからないことも多いでしょう。そして最尤法だと上手くいかない場合にどうすればいいのか、そのあたりについても不明なことが多い場合もあるでしょう。

続きでは、それぞれの方法の簡単な説明と、困ったときの解決法などについて触れます。

 

因子の抽出方法と回転法の区別

因子分析では、因子抽出法と回転法の二つを選びます。

抽出法は、最尤法、主因子法、主成分法などがそれにあたります。
回転法は、バリマックス回転、プロマックス回転などなどがそれです。

探索的因子分析の場合、抽出法と回転法は完全に独立しているので、任意に組み合わせて使うことができます。(確認的因子分析では、話がまた変わってきます)

因子抽出法は、簡単に言えば、共通性(あるいは独自性)を推定する方法です。
因子分析の基本的な性質で、共通性+独自性=1 というのがありますから、どちらかが推定できればOKです。因子抽出とは、どこまでが因子で共通に説明できていて、どこからが項目独自の情報なのか、を切り分ける作業です。共通性の推定は、データの適合度に影響します。なのでより正確に共通性を推定する方法が求められます。

共通性の初期値を決める、というのも因子抽出法にかかわる問題の一つです。ただ、最近の方法では共通性の初期値はそれほど最終的な解に影響しないので、それほど問題にはなりません。

一方、因子軸の回転法は、共通性が推定された後の話です。なので、データの適合度には影響しません。つまり、どの回転法を選んでもデータとの適合は変わらないです。

因子分析では共通性が推定できても、それだけでは因子負荷量は一意に定まりません。よって、別の基準によって制約をかけることで因子負荷量を求める必要があるわけです。その「別の基準」が回転法になるわけです。

因子分析の流れは、以下のようになります。

共通性の初期値を決める → 共通性を推定する → 求まった共通性をもとに因子負荷量を回転法の基準で一意に定める

 

因子抽出法

因子抽出法にはいろいろありますが、基本的に知っておくといい方法に限って解説します。

最尤法

最尤法というのは因子分析に限らず、母数を推定するための一般的な統計的推定法の名称です。手元にあるデータからみて,最もありえそうな因子モデルを推定する方法です。モデルから見た場合の、データの得られやすさを尤度といいます。最も得られやすいモデルの推定法=尤度を最大にする推定法ということで、最尤法といいます。

最尤法は、漸近一致性(サンプルサイズが大きくなると、解が母数に一致する)、漸近有効性(サンプルサイズが大きくなると、解は最も誤差が小さくなる)、漸近正規性(サンプルサイズが大きくなると、標本分布は正規分布になる)といった望ましい性質を持っています。簡単に言えば、サンプルサイズが十分大きければ、最もよい推定をするということです。

最尤法は多変量正規性を仮定していることから、データが正規分布でないといけない、というのはよく聞く話です。実際そうなのですが、正規性が崩れても漸近一致性は依然として成立することから、因子負荷量や適合度の検定を行わないのであれば、それほど問題はありません(狩野・三浦, 2002)。漸近正規性は成立しなくなるので、検定結果は怪しくなります。

また、最尤法には尺度不変という便利な性質があります。これはデータが標準化されていてもいなくても、同じ解を出す、という性質です。因子分析は基本的に相関行列を使うので、標準化された解を出すのがほとんどですが、最尤法の場合は共分散行列を使っても同じ解になります。この性質によって、変数間で共通性が大きく違う場合でも、それを考慮に入れた解を求めることができます。

これらの性質から、最初に試すべき方法としては躊躇うことなく最尤法があげられるでしょう。

しかし、最尤法は推定精度が高い分、不適解も多く出てきます。
不適解とは、共通性の推定が1を超えることです。共通性は定義上1を超えないので、まさに不適なのです。
不適解の原因として、いくつか考えられるのは、

  1. サンプルサイズが小さい
  2. データ内部で局所的に相関が高い項目がある
  3. 真の因子数よりも過大に因子数を見積もって推定している(モデルがデータに合っていない)

等があげられます(他にも可能性はあります)。

2と3は項目を削ったり、モデルを変更することで解決しますが、1はデータを追加しないと解決しません。
そこで、とりあえず手元のデータでそれなりな解を推定したい場合に、最尤法以外の方法が候補として挙がってくるわけです。

最小二乗法

最小二乗法も、最尤法同様、一般的な統計的推定法の名前です。
データとモデルの解離を、残差の二乗和として定義し、それを最小にするモデルを推定する方法です。(残差の)二乗和を最小にするから、最小二乗法です。

最小二乗法は、データの正規性などを仮定しないため、比較的使いやすい方法です。
しかし、漸近有効ではない(最も誤差が小さい方法ではない)ため、サンプルサイズが大きくデータが正規分布に近いなら、最尤法のほうがより正確に共通性を推定することができます。

最小二乗法と最尤法の違いは、誤差の重みづけ方法にあります。最小二乗法はすべての変数の誤差を、同じ重みで考えます。よって、共通性が低い項目の影響も強く受けてしまいます。一方、最尤法は共通性が小さい項目はモデルにあまり貢献しないため、重みを小さくして推定します。

最小二乗法は、最尤法に比べて不適解をあまり出しません。それは、すこし鈍感な方法だからです。決して望ましい性質ではないのですが、とりあえず今のデータでそれらしい解を出したい場合には、最小二乗法は有効です。

また、最小二乗法によって得られる因子負荷量は尺度不変ではありません。共分散行列と相関行列では、解が異なります。ただし、最小二乗法の中にも、一般化最小二乗法(あるいは重みづけのある最小二乗法)という方法があります。この方法の場合、残差を共通性で重みづけるので、尺度不変になり、推定精度が向上します(しかし、その分不適解も多くなります)

主因子法

昔よく使われていた方法です。あまり知られていませんが、主因子法には2種類方法があります。それは反復主因子法と、反復しない主因子法です。だいたい前者を主因子法と呼びますが、場合によっては後者をさしている場合もあるので注意が必要です。

主因子法とは、共通性の初期値を決め、共通性を対角に代入した相関行列を固有値分解することで共通性を推定する方法です。しかしそれだけではまだ共通性は正確ではないため、推定された共通性を再代入し、収束するまで繰り返して計算する方法が、「反復主因子法」です。

すなわち、1回だけ固有値計算する方法が「反復しない主因子法」で、収束するまで何度も繰り返して固有値計算をするのが「反復主因子法」です。当然、反復する方が推定精度は高いです。なお、SPSSの主因子法は、反復主因子法です。

反復主因子法は、実は上で紹介した最小二乗法と数学的には同じです。よって、推定法の性質は最小二乗法と同じになります。ただ、反復主因子法と最小二乗法は解を求めるアルゴリズムが異なります。最小二乗法のほうがより計算回数が少ない方法(ニュートン法)を使うため、より早く正確な解が求まります。反復主因子法は、計算効率が悪く、また正しい解に収束する前に計算が止まってしまうことも多くあります。

では反復主因子法のメリットはないのかというと、そうでもないのです。

実は最小二乗法は、ニュートン法という非常に効率のいいアルゴリズムを使いますが、そのぶん不適解が出る可能性がまだ高いのです(最尤法よりは低い)。一方、反復主因子法は、解が不適解に近づくと、値がほとんど変化しなくなり、計算上は収束したことになってしまいます。よって、(それがメリットかどうかはわかりませんが)不適解が出る前の解を得ることができます。

よって、最小二乗法でも不適解が出る場合、反復主因子法を使えば、不適解がでるギリギリの解を得ることができる場合があります。まぁそんなデータはもう一度取り直した方がいいかもしれませんが・・・。

反復しない主因子法は、推定精度がとても低いので、あまりオススメはしません。が、次に説明する主成分法よりはマシです。反復しない主因子法は、共通性の初期値をそれらしい値で代用して、固有値分解によって共通性を求める方法です。よって、初期値に何を使うのかがとても重要になります。よく使われるのがSMC(その項目と、それ以外の項目の重相関係数の二乗)です。SMCは共通性の下限の推定値になります(すべての変数間の相関が等しい場合は、共通性と一致する)。それ以外の方法もありますが、とりあえずはSMCを使えば問題ないでしょう。SPSSは、主因子法の場合は初期値にSMCを使います。SASは自分で指定できます。

主成分法

主成分法とは、数学的には標準化された(相関行列を用いた)主成分分析と同様であることから、こう呼ばれます。

主成分法は、共通性を推定せず、相関行列そのものを固有値分解します。主成分法は、共通性を推定する方法ではなく、変数を合成する場合に最も分散が大きくなる基準を求めるものなので、不当に共通性が大きく推定されたかのように見えます。言わば、誤差と因子共通性をきっちり区別していない方法なのです。

昔に主成分法がよく用いられたのは、SPSSのデフォルトだったから、という話があります。笑い話のようではありますが、笑えない問題ではあります。SPSSとしては確実に解を出す主成分法をデフォルトにしているんだろうと思うのですが、ちゃんと理解して使うことが求められます。

なお、誤解してはいけいないのは、主成分分析は、因子分析と異なる文脈では非常に有用な方法です。単位が異なる変数を合成することができるため、とても便利です。心理学以外の分野ではむしろ主成分分析のほうが多用されているかもしれません。

心理尺度のように、「尺度全体で共通の何かを測定している」という仮定があるなら、主成分分析ではなくて、因子分析を使うべきです。なので、最悪でも反復しない主因子法を使う方がいいでしょう。

 

オススメのステップ

まず最初は迷うことなく最尤法を使います。ただ、最尤法がうまく適合しない場合も多いと思います。

もし不適解が出た場合、共通性が1になっている項目を省けるかどうかを考えます。例えば、他にかなりよく似た項目があって、その項目がなくなっても問題ない場合は省きます。

それが省けない項目の場合、因子数を変えてみます。指定した因子数よりも少ない因子数を指定してうまく解が求まった場合はその因子数がデータに合っていない可能性があります。ただ、先行研究の因子数を再現したい場合は、因子数を変えるのに抵抗があるかもしれません。その場合は別の推定法を使います。

またそもそもサンプルサイズが小さい場合は、最尤法をあきらめるほうがいいかもしれません。

別の推定法として候補に挙がるのは、最小二乗法です。一般化最小二乗法を使ってもいいですが、最尤法で不適解が出た場合、一般化最小二乗法でも出る場合が多いです。もし一般化最小二乗法で上手く解が求まれば、それでOKです。

最小二乗法でも不適解が出たり、収束しなかった場合は、反復主因子法が次の候補です。おそらく反復する回数が多くなることが予想されるので、SPSSなどのオプションで、最大反復数を初期値の25から100ぐらいまで上げてから実行するといいでしょう。

あるいは、データを追加することも、この段階では考慮したほうがいいでしょう。もう一度項目の選定を考え直すのも手です。

反復主因子法に限らずですが(特に反復主因子法で問題が大きいですが)、SPSSの結果がちゃんと収束したものかどうかをチェックしましょう。SPSSでは収束しなかった場合には以下のように、さらっとしか警告しないので、注意が必要です。最大数を上げて推定し直してみましょう。

factorSPSS.jpg

ついでに上のデータでは、反復主因子法で42回で収束しました。最小二乗法では4回で不適解がなく収束します。最尤法は収束しましたが不適解でした。

ただし、反復主因子法と最小二乗法は微妙に解が違っていました。つまり、反復主因子法は収束する前に止まってしまっているといえます。その場合は、収束基準を小さくすることで解決する場合があります。このデータの場合、反復主因子法の収束基準を初期値の0.001から0.0001に変えると、80回の反復で最小二乗法とほぼ同じ解になりました。

長くなったので、回転法については次回に書きます。

 
This entry was posted in 心理統計学. Bookmark the permalink.