猪原・狩野 非反復因子分析法(excel版)


最終更新日:
counter: (2001/9/25からの累積)

ダウンロード(excel 2000 with vba) 2001.9.26にバグフィクス

2001.9.26 構造行列の0.35以上の網掛けが絶対値になっていなかったのを修正。


[はじめに]

ここで説明するプログラム(ik_factor.bas)は猪原・狩野非反復因子分析法をexcel 2000に移植したものである。さらに直接oblimin 回転するオプションをつけている。excel 2000において動くことを確認している。ほかのexcel でも動くであろうと思われる。

狩野氏の IKEST.BAS(1992) と小笠原氏のROEF Version 1.0(2000)のうちのDGQ1をexcel 2000 のvba に移植し、出力に関してexcel に合うようにしたものである。

猪原・狩野の非反復因子分析法はIhara and Kano(1986), Kano(1990a)にその方法が記されている。狩野氏のホームページに簡単な説明と文献が記されているのでそちらを参照してください。

Browne et al. のCEFA においても非反復法のPACE が搭載されている。これはKano(1990a)のアルゴリズムを使用していると言及している。チェックしてみると、Kano(1990a)の最大法と同じ結果になる。ただし、不適解になるときにも結果を適当な結果を出力する。つまり、独自分散が負となるとき、つまり共通性が1より大きくなるときは独自分散を0として計算している。

Kano(1990b)において最大法よりも平均法のほうが不適解が少ないことが示されている。実際に、最大法において不適解になる例でも平均法では不適解にならない例に遭遇している。ただし、平均法は変数の数が多くなると、計算時間が飛躍的に増える。例えば、私の使っている今のところ高速の部類に入るMPU 1MHz の場合、63変数だと、9分40秒かかった。最大法で処理すると1分11秒である。

[データシート]

  1. データは素データ相関行列を扱うことができる。どちらであるかはプログラムが自動判断する。(これはちょっと気持ち悪い。しかし、SPSSのようにデータtype にcorr を指定しているのにそれを判断しないのはいただけない。)
  2. データは所定のセルにサンプル数変数の数抽出する因子数抽出法回転法タイトル変数名データを入れる。
  3. サンプル数(A1)(必須):もし相関行列データであって、サンプル数不明の場合は適当に5より大きい数字を入れてください。素データの場合は正確に入れてください。
  4. 変数の数(A2)(必須):実際に使う変数の数ではなく、すべての変数の数です。例えば行番号が入っている場合は、行番号も変数として数えます。(行番号のように処理に使わない変数は変数名の上に x 印をつけておきます。)
  5. 抽出する因子数(A4)(必須):最大求める因子数を入れます。1因子解からこのこのセルに指定した因子数まですべての解を求めます。
  6. 抽出法(A5):既定値は平均法の猪原・狩野非反復因子分析法( ik )です。この場合はなにも入れる必要はありません。時間短縮のために最大法を使う場合は maxik と入れる。
  7. 回転法(A6):既定値はoblimin(γ=0)(oblimin) です。オプションは回転しない( no )です。
  8. タイトル(B1):タイトルがあるほうが、後日見るときわかりやすい。各処理の頭に出力されます。
  9. 変数名(4行目)(必須):変数名はデータに対応させ4行目にいれます。相関行列の場合は、1列目も変数名になります。
  10. データ(5行目から)(必須):素データは、数字でないデータがある場合、そのサンプルをデータからはずします。相関行列データは下三角を読みます。対角に1を入れてください。相関行列と素データの判別に使います。
  11. 使用しない変数指定(3行目):使用しない変数名の上に×印(または x)。使用する変数のみを指定する場合は使用する変数の上に○印(またはo)。まったく印のない場合は全変数使用。
  12. サンプルデータがありますのでそれを見ればわかりやすい。
  13. 以上のコメントをセルに貼り付けて注釈を見ながら入力できるように、Run_prep_datasheetというマクロがある。新しいシートにて走らせるか、データがすでにあるシートのうえで走らせる。このマクロは3行挿入するので、データが1行目にあるときはT行目に変数名を挿入してから走らせてください。

[処理]

  1. データシートのbook は猪原・狩野非反復因子分析のvbaのあるbook とは違うbookにしたほうがあとで結果を見やすい。
  2. 猪原・狩野非反復因子分析book を先に立ち上げ、データのあるbook を立ち上げる、または、新規作成→book で新しいbook を開く。
  3. [データ]にある要領のデータシートを作成する。
    必要に応じて、ツールマクロRun_prep_datasheet をダブルクリック
  4. 猪原・狩野非反復因子分析法の実施→直接oblimin法(斜交回転)
    ツールマクロRun_IK_Factor をダブルクリック
  5. 直接oblimin の結果の因子パタンを因子ごとにまとめたいとき
    ツールマクロRun_sort_patternをダブルクリック

[出力]

  1. 猪原・狩野非反復因子分析法の結果は1枚目のシートに出力される。シート名はIK_1のようにIK_数字となる。数字は1があれば、2というように使われていない数字を1から探し、一番小さい数字を割り当てる。
  2. オプション等出力
  3. I-K ESTIMATES FOR PSI が次に出力される。が、一般には必要ない。
    (不適解は独自分散のIK推定値が負の値となるときである。この場合、IK estimator が赤字になる。)
  4. 次に推定因子数。もしも指定因子数が推定因子数よりも小さい場合、推定因子数が指定因子数になる。
  5. そのあと、1因子解から指定した因子まで独自性と回転前の因子負荷量が出力される。この結果が猪原・狩野法の解である。
    (IK推定値は独自性と対応しているので、猪原・狩野法ではまず独自性を出力する。)
  6. 回転にnoを指定しなければ、直接obliminの結果が出力される。直接obliminの結果は2因子から指定因子数まで各1シートに出力される。シート名は先の IK_1 5 のように猪原・狩野法の解のシート名に因子数をつけたものになる。もし同じ名前があれば置き換えられる。
  7. 直接oblimin 法の計算プログラムは小笠原(2000)からvba に移植したものです。もとのプログラムは直接oblimin だけでなく汎用の直接斜交解を求めるものです。移植にあたって多少変更を加えている。例えば、収束精度を一桁甘くしている。これは、収束しない場合がときどきでてきたためである。それでも収束しない場合があり、これはその精度でうち切り、結果を出力するようにした。
  8. 直接oblimin の出力は、因子パタン行列、因子構造行列、因子間相関行列である。絶対値が0.35より大きいセルは水色の網掛けをしている。因子パタン行列を重みの絶対値の大きい順に並べるには、Run_sort_patternを使う。

[識別性の問題]

非反復因子分析においても他の探索的因子分析と共通に、1因子に2変数しか負荷しないときは識別性が不可(Kano, 1997) となるため、その因子に関しては因子負荷量または因子パタンの値は正しくない。値が大きく異なっていることもある。該当の2変数を削除して分析するか、その因子に負荷する変数を追加して、再調査する。もっとも、もともとの因子が単純直交であれば、2変数を入れたままの分析の他の因子については正しく処理されている。

猪原・狩野法では絶対に不適解にならないので識別性の問題には注意を要する。不適解に付いての説明はKano(1997),狩野(1998)を参照してください。

[因子数決定について]

狩野基準の因子数も面白いところをついている。すでに、MAPが最小因子数、PA(smc)が最大因子数になることが多いことが知られている。このことから、MAPとParallel analysis(SMC) の因子数を求め挟むのがいいであろう。狩野基準は回転前の固有値の大きさを概算する。しかし、回転後の因子パタンを元に考慮すべきではないだろうか。そのことを考慮すると、回転後の因子パタンの大きさが有意であるという条件をつけるほうがいいであろう。とすると小笠原氏の一連の研究つまりはROEFまたはBrowne et al.(1999)のCEFA によって因子パタンの標準誤差を求め、因子パタンが有意でないかどうか判定して、因子数を決めるということになろう。有意かどうかの判定基準はCudeck and O’Dell(1994)を使用することになる。

Parallel analysis についてはこちら。SPSSのスクリプトはこちら。SAS等についてはこちらにリンクが。

[サンプルデータについて]

(1)性格検査データ(素データ)
柳井ほか(1990)に掲載されているデータのうち男子学生100名の性格検査データである。このデータは最尤法やAICを悩ませるものとしてなかなか興味深いものである。同書88頁の表を参照して欲しい。猪原・狩野法においても最大法を使うと6因子解において不適解がでる。平均法を使うと不適解はでない。また、因子数の推定においても最大法と平均法では違ってくる。

ここでは載せないが、女子学生100名の性格検査においても6因子解においては最大法において不適解になる。平均法にすると不適解はでない。

男女込みにしたデータは鈴木督久氏のホームページにある。

ここでは、行番号が最初にある。これの変数名の上に x をつけ、使用しないようにしている。

(2)能力テスト17変数データ(Bechtoldt,1961) (相関行列)
Thurstone and Thurstone(1941)の21変数データのうち17変数を使用したもの。サンプルを2分割している。もとのデータは437人であるが、2分割データは212人と213人となっている。ここでのデータは213人のほうである。7因子中6因子を使用している。記憶2変数、語彙、語の流暢性、空間、数字、推論各3変数使用している。最尤法の6因子解は不適解になる。記憶が2変数しかないため、識別性に問題が生じる。なお、21変数すべての相関行列はこっちにある。

(3)PMA63変数(Thurstone and Thurstone, 1941)(相関行列)
Thurstone and Thurstone(1941)の最初の分析データである。このデータの処理にはIBMの機械を使っている。そのおかげか、Pearson の積率相関係数になった。よかった。

変数が多いときも最大法(maxik)だと短時間に処理が終わることを確認してほしい。直接obliminでも少し時間がかかっているが、これだけをvba の処理にしては短時間である。

Thurstone and Thurstone(1941)の分析は10因子解であり、そのうち7因子をPMA(Primary mental abilities) として採用している。にもかかわらず7因子21テストだけを測定した3章では知覚因子をその性質が曖昧と排除しようとしている。事実のちには排除した。

なお, Thurstone(1938)の相関行列は鈴木督久さんのところSAS program)にある。もともとのPMAの(7)因子はこのデータからだしている。しかし、四分相関行列であり、かつ正定値ではないという問題がある。

[謝辞]

大阪大学狩野裕教授からIKEST.BAS(Kano, 1990a) のQuick Basic のプログラムをいただきました。小樽商科大学小笠原春彦教授からはROSEF Version 1.0 (Ogasawara, 2000) のFortran90プログラムをいただき、vba 移植の公開の許可をいただきました。記して感謝いたします。

[引用文献]

Bechtoldt,H.P. (1961). An empirical study of the factor analysis stability hypothesis. Psychometrika, 26, 405-432.

Browne, M. W., Cudeck, R., Tateneni, K., and Mels, G. (1999). CEFA: Comprehensive exploratory factor analysis.:Manual. http://quantrm2.psy.ohio-state.edu/Browne/

Cudeck, R., & O’Dell, L. L. (1994). Applications of standard error estimates in unrestricted factor analysis: Significance tests for loadings and correlations. Psychological Bulletin, 115, 475-487.

Ihara, M. and Kano, Y. (1986). A new estimator of the uniqueness in factor analysis. Psychometrika, 51, 563-566.

Kano, Y. (1990). Noniterative estimation and the choice of the number of factors in exploratory factor analysis. Psychometrika, 55, 277-291

Kano, Y. (1990). Comparative studies of non-iterative estimators based on Ihara and Kano's method in exploratory factor analysis. Communications in Statistics Part A, 19, 431-444.

Kano, Y. (1997). Exploratory factor analysis with a common factor with two indicators. Behaviometrika, 24, 179-197.(dvi file) (ps file)

狩野裕 (1998). 不適解の原因と処理:探索的因子分析 大阪大学人間科学部紀要, 24, 303-327.

Ogasawara,H.(2000). ROEF Version 1.0 User's guide, http://www.res.otaru-uc.ac.jp/~hogasa/rosef10.html

Thurstone, L. L., and Thurstone, T.G. (1941). Factorial studies of intelligence. Psychometric Monograph, No.2. Chicago: University of Chicago Press. 21 var data

柳井晴夫・繁桝算男・前川眞一・市川雅教(2000). 因子分析−その理論と方法− 朝倉書店  データ


堀 啓造(home page) e-mail hori@ec.kagawa-u.ac.jp