[fpr 247] reanalysis of Haebara's Factor Analysis

狩野裕

狩野@スウガクヤです

昨日メイリングリストに入ったばかりですので、お手柔らかに。

日経リサーチの鈴木督久さんから、このメイリングリストで、南風原先生が探索的
因子分析されたデータは、実は不適解であったという報告があり、この件について
いろいろと議論がなされている、というお話を伺いました。

このデータに関する不適解を少し検討し、次のような結論に達しましたのでご報告
いたします。興味のある方は、ご意見など拝聴できれば幸いです。取りあえずは、
鈴木さんへお送りした返事です。


   %%%%%%%%%% 引 用 始 め %%%%%%%%%
日経リサーチ 鈴木督久さま:

本当に親切に、SAS 入力ファイルまでお送り下さいましてどうもありがとう
ごさいました。

例の不適解を少し検討しましたところ、かなり「悪性」だという気がいたします。

統計的には2因子解が当てはまります(pー値=10%)が、応用的観点から
3因子解を捜すとすれば、変数3、6に共通の因子F3 を導入することが考え
られます(pー値=42%、適解)。これらはデータだけからの推測で、変数名など
その他の情報をまったく無視していますので、ただの机上論かもしれません。
本日、渡部さんの本を捜すことを兼ねて東京に出向きますので、最終結論は
後日にしたいと思います。

メイリングリストの情報、どうも有難うございました。
近日中に、fpr のメイリングリストに入りたいと思います。
       %%%%% 引 用 終 わ り %%%%%%%%%%%


ここからは、上記のような結論に達した経緯です。まず、不適解(ヘイウッドケイス)
には「良性」と「悪性」があると思います。標本変動によるものが「良性」で、それ
以外の要因と考えられるものが「悪性」です。不適解が得られたとき「良性」の場合
もかなりあります。シミュレーションをやるとすぐにわかるのですが、シミュレーシ
ョンは、真のモデルが因子モデルであり、それから発生させた乱数に基づいて因子分
析をするのですから、不適解の原因は標本変動のみです。私の感じでは、12変量*
3因子*標本サイズ100だと、10%以上が不適解になるのではないかと思われま
す(勿論モデルの真値によりますが)。

従って、「南風原データの不適解が良性である」ということは十分考えられます。良
性の不適解に対しては、「独自性が非負である」という制約のもとで推定値を求めた
り(ほとんどのソフトウェアはデフォルトでそうなっているはず)、ペナルティ法や
ベイズ法が有効な推定法になると考えます。

「南風原データの不適解が良性ではない」と判断した理由を以下述べていきます。私
の解析(ソフトウェアは EQS; 最尤法)では、第3変数が不適解になりました。
\Psi_3=0 と推定されるわけです。勿論、\Psi>=0 という制約のもとで解を探していま
すから、負の値になることはありません。そこで、この制約を外してみます。すると、
反復は収束せず、"linearly dependent" とソフトウェアは怒ってきます。推定値を見
てみると
           \Lambda         \Psi               
V1  .588   0     0        .809
V2  .624  .188    0        .758
V3  .342  .656  9.417    -9.393
V4  .750 -.081  -.006      .657
V5  .730 -.088  -.002      .678
V6  .341  .187   .021      .921
V7  .277  .365   .003      .889
V8  .254  .303  -.032      .918
V9  .249  .664  -.024      .704
V10 .394  .369  -.025      .842
V11 .108  .425  -.024      .898
V12 .146  .515  -.018      .844

のようになっています。別の初期値から反復法を始めると、次のような解が得られま
した。

V1  .593    0      0       .805
V2  .633  .181     0       .753
V3  .329  .382   .020      .863
V4  .736 -.117  -.008      .666
V5  .729 -.114  -.003      .675
V6  .364  .259   .006      .895
V7  .286  .367  -.002      .885
V8  .213  .633-16.391   -16.374
V9  .262  .665   .012      .700
V10 .401  .354   .016      .845
V11 .113  .379   .006      .918
V12 .155  .472   .010      .868

このように、初期値によって解が大きく変わる、不適解になる変数が変わる、という
ことになると、このモデルは信用がおけないのではないかという気になってきます。
この2つの解にバリマックス回転などを施そうものなら、まったく違った回転解が得
られるものと思われます。

もし、不適解が「良性」であるならば、このようなことは起こらないはずです。

では、このデータに対して3因子探索的因子モデルはなぜ上手くないのでしょうか。
それには識別性の問題がからんできます。上の2つの解を比べてみると、

 i) 第1第2の因子負荷ベクトルは安定しており、両者にあまり違いがない; 
ii) 第3因子負荷ベクトルは一つだけ大きい因子負荷があり、残りはゼロに非常に近い

ことが分かります。そこで、次のような単純化したモデルを考えてみます:

           \Lambda         \Psi               
V1  .588   0     0        .809
V2  .624  .188    0        .758
V3  .342  .656    c          d
V4  .750 -.081    0        .657
V5  .730 -.088    0        .678
V6  .341  .187    0        .921
V7  .277  .365    0        .889
V8  .254  .303    0        .918
V9  .249  .664    0        .704
V10 .394  .369    0        .842
V11 .108  .425    0        .898
V12 .146  .515    0        .844

つまり、第3因子負荷ベクトルを大きな値の要素は除いて、その他はすべてゼロとお
くのです。Var(V3)=1 とすると、c と d の間には次の関係があります:

      .342^2 + .656^2 + c^2 + d^2 = 1

逆に言うと、この関係さえ保っておけば、いろんな値の (c,d) に対して、まったく同
一の共分散行列が再生できます。つまり、3因子探索的因子モデルにおけるこの真値は
識別可能でないということになります。\Psi_3=d^2>=0 という条件を外せば、c の値は
どんどん大きくなり得ますし、それに伴って、\Psi_3=d^2 の値は -\infinity へ発散
していくことになります。また、上式を満たす (c,d) 間で、反復ごとに推定値が振幅す
ることもあります。これらは、ソフトウェアの出力である iterative summary を見れ
ばよく分かります。

このような状況に遭遇した場合は、3因子解を求めず、2因子解を用いることを勧め
ます。第3因子は共通に説明する観測変量は1つしかないのですから、これは、独自
因子(or 固有因子)にしかすぎないのです。

さて、次のような場合も考えられます。

           \Lambda         \Psi               
V1  .588   0     0        .809
V2  .624  .188    0        .758
V3  .342  .656    c          d
V4  .750 -.081    0        .657
V5  .730 -.088    0        .678
V6  .341  .187    e          f
V7  .277  .365    0        .889
V8  .254  .303    0        .918
V9  .249  .664    0        .704
V10 .394  .369    0        .842
V11 .108  .425    0        .898
V12 .146  .515    0        .844

この場合、同一の分散行列を生み出すためにの (c,d,e,f) のみたすべき関係式は次の
ようになります。

      .342^2 + .656^2 + c^2 + d^2 = 1
      .341^2 + .187^2 + e^2 + f^2 = 1 
       c * e =ある一定値

このモデルは、先ほどの非ゼロ要素が1つの場合と簡単に区別できそうですが、実は
その区別は難しいのです。

独自分散>=0という条件を設けないときは、先ほどと同じように c はどんどん大きく
なり得ます。そのときは、3番目の条件式から、e はその絶対値が小さな値にならざ
るを得ません。そうすると、非ゼロ要素は、一見 c だけで、その数は1つと誤解してし
まう可能性があるのです。そこで、2因子解の残差行列
 
      Sー\Sigma^  (相関行列の差)
 
を見ることにします。例えば、残差行列の(3,6)要素の絶対値が大きければ、V3 と
V6 に非ゼロ要素 (c f) があると判断します。

「南風原データ」で見てみると、残差行列の(3,6)要素の絶対値が一番大きく、非ゼロ
要素 (c f) を考えるべきならば、V3 と V6 であると結論することになります。(LM
テストを使っても同じ結論)

以上の議論は、探索的因子分析で識別性を保証するためには、「因子負荷行列の各列
に3つ以上の非ゼロ要素が必要である」という有名な定理(Anderson-Rubin)の実際例
です。

先ほど述べたように、(因子負荷行列のある列に)非ゼロ要素が1つしかない場合は
それは、共通因子とは呼べず、独自因子へまとめるということを勧めました。

(因子負荷行列のある列に)非ゼロ要素が2つしかない場合は探索的因子分析できな
いという事実は、探索的因子分析の欠点といえます。

検証的(確認的)因子分析を使うというアプローチは横においておいて、探索的コン
テックストで、なんとかしたいと思います。ひとつの解決案は、独自分散の相関を
許すことです。「南風原データ」で考えてみると、E3 と E6 の間の相関を許し、
2因子の探索的因子モデルを当てはめることになります。この場合、通常の探索的
因子分析解(2因子)が得られ、これらの2つの共通因子の影響を取り除いた後、
V3 と V6 を説明する第3の共通因子が考えられるが、識別性の欠如により、因子負
荷の大きさは推定できない、という結論になります。決して、誤差の間に相関がある
ということではなくて、通常の探索的因子分析ではモデルの制約上抽出できない共通
因子がある、と考えるのです。


2因子解 VS 3因子解 については何とも言えません。一応、統計的には2因子解で
適合していると言えます(chi-squareのp-value=10%)。しかし、n=100では
検出力が十分ではなく、n数が十分大きくないがためにモデルを棄却できなかっただけ
ということも考えられます。

以上が私の推論です。数値だけを見ての推論です。この推論を鈴木さんにお送りして
いたわけです。その後、渡部先生の本を手にいれ、実際の変数名を検討し南風原先生の
解説を読んでみますと、私の推論はそんなに的外れでもないと思うのですが如何でしょ
うか。

多くの論客の方々のご意見をお待ちしています。


「いつも本と論文に向かって仕事をしている数理統計学家より」

=================================================================
狩野  裕 (筑波大学数学系)        Phone: 0298-53-4229(DI)
e-mail: kano (at) math.tsukuba.ac.jp     Fax : 0298-53-6501
=================================================================


スレッド表示 著者別表示 日付順表示 トップページ

ここは心理学研究の基礎メーリングリストに投稿された過去の記事を掲載しているページです。