SPSSとStataの因子分析:結果を合致させるには

Stata使いですが,SPSSとはなかなか縁が切れないものです.
ソフトウェアが違うと,(デフォルトでの)計算の仕方が違っているものです.特に,因子分析の結果は,なかなか合わない.使用ソフトとバージョンを書いておくようにというような指示があったりしますが,それでも,どうしたら合うのかは,気になるものです.というわけで,絶対に合うという保証はありませんが(当然でしょう),とりあえず,経験的にこうやったら合ったという情報を上げておきましょう.

■SPSS(ver.24)とStata(ver.14.2)の因子分析(6/17/17アップデート)
主成分分析・バリマックス回転:Stataの回転時のオプションで”Apply the Kaiser normalization”を選択すれば,SPSSのデフォルト状態と同じ結果が得られる.コマンドでは,
rotate, kaiser
である.
主成分分析・プロマックス回転:Stataの回転時のオプションで”Apply the Kaiser normalization” を選択し,さらに,Promax power=4 とすると,SPSSのデフォルト状態と同じ結果が得られる.コマンドでは,
rotate, promax(4) oblique kaiser
である.
ただし,アウトプットのSPSSのパターン行列と,Stataのパターン行列は,因子の並び順が異なっている.SPSSの場合には,「説明された分散の合計」の「回転後の負荷量平方和」に現れた因子順に,パターン行列の因子が並んでいる.しかし,SPSSの「回転後の負荷量平方和」の成分は,大→小の順番に並んでいない.(「抽出後の負荷量平方和」の順に大→小へと並んでいる.)Stataの場合には,SPSSの「回転後の負荷量平方和」を大→小の順番に並べた上で,その順に従ってパターン行列の因子が並んでいる.しかし,Stata側では,SPSSの「回転後の負荷量平方和」に相当するものが表示されないので,回転前の因子との対応がどうなっているのかはわからない.
主因子法1(デフォルト状態):そもそも,デフォルト状態で計算させると,SPSSとStataでは,抽出される因子数などが違っている.
また,Stataのデフォルトは,principal factor (PF)であるが,これは,繰り返し共通性の推定をしないようなので,ipfとすべきである.なお,SPSSのデフォルトの繰り返し数は25であり,Stataで同様に設定しても,やはりSPSSとは抽出される因子数などが違っている.
そこで,
主因子法2(抽出因子数を合わせる):SPSSとStata ipf で抽出される因子数を揃えると,同じ結果が出るようになる.そのためには,SPSSの「因子の固定数:抽出する因子」の数と,Stataの”Maximum number of factors to be retained” の数を揃える.Stataの方は,最大数(maximum number)と記述されているが,実際には固定数である.最大数を設定すると固有値が1未満の場合でも,ちゃんと指定した最大数まで取ってくれる.
主因子法のバリマックス回転:Stataの回転時のオプションで”Apply the Kaiser normalization”を選択すれば,SPSSのデフォルト状態と同じ結果が得られる.コマンドでは,
rotate, kaiser
である.
主因子法のプロマックス回転:Stataの回転時のオプションで”Apply the Kaiser normalization” を選択し,さらに,Promax power=4 とすると,SPSSのデフォルト状態と同じ結果が得られる.コマンドでは,
rotate, promax(4) oblique kaiser
である.
ただし,アウトプットのSPSSのパターン行列と,Stataのパターン行列は,因子の並び順が異なっている.SPSSの場合には,「説明された分散の合計」の「回転後の負荷量平方和」に現れた因子順に,パターン行列の因子が並んでいる.しかし,SPSSの「回転後の負荷量平方和」の成分は,大→小の順番に並んでいない.(「抽出後の負荷量平方和」の順に大→小へと並んでいる.)Stataの場合には,SPSSの「回転後の負荷量平方和」を大→小の順番に並べた上で,その順に従ってパターン行列の因子が並んでいる.しかし,Stata側では,SPSSの「回転後の負荷量平方和」に相当するものが表示されないので,回転前の因子との対応がどうなっているのかはわからない.
最尤法1(デフォルト状態):そもそも,デフォルト状態で計算させると,SPSSとStataでは,抽出される因子数などが違っている.
最尤法2(抽出因子数を合わせる):SPSSとStataで抽出される因子数を揃えると,同じ結果が出るようになる.そのためには,SPSSの「因子の固定数:抽出する因子」の数と,Stataの”Maximum number of factors to be retained” の数を揃える.Stataの方は,最大数(maximum number)と記述されているが,実際には固定数である.最大数を設定すると固有値が1未満の場合でも,ちゃんと指定した最大数まで取ってくれる.
最尤法のバリマックス回転:Stataの回転時のオプションで”Apply the Kaiser normalization”を選択すれば,SPSSのデフォルト状態と同じ結果が得られる.コマンドでは,
rotate, kaiser
である.
最尤法のプロマックス回転:Stataの回転時のオプションで”Apply the Kaiser normalization” を選択し,さらに,Promax power=4 とすると,SPSSのデフォルト状態と同じ結果が得られる.コマンドでは,
rotate, promax(4) oblique kaiser
である.
ただし,アウトプットのSPSSのパターン行列と,Stataのパターン行列は,因子の並び順が異なっている.SPSSの場合には,「説明された分散の合計」の「回転後の負荷量平方和」に現れた因子順に,パターン行列の因子が並んでいる.しかし,SPSSの「回転後の負荷量平方和」の成分は,大→小の順番に並んでいない.(「抽出後の負荷量平方和」の順に大→小へと並んでいる.)Stataの場合には,SPSSの「回転後の負荷量平方和」を大→小の順番に並べた上で,その順に従ってパターン行列の因子が並んでいる.しかし,Stata側では,SPSSの「回転後の負荷量平方和」に相当するものが表示されないので,回転前の因子との対応がどうなっているのかはわからない.