ラベル

2022年9月9日金曜日

Stataで因子分析をする方法ー因子負荷量をソートする(並び替え)

 前回の記事でStataを使った因子分析について書いてみたが、やはり因子負荷量が数値順になっていないと解釈しにくいし、Excelにコピペして論文用の表を作るときも面倒くさい。

そこで便利なのがユーザー開発のコマンドで、探せばかなりの数があり、無料でインストールして使用することが出来る。

因子分析後の因子負荷量の並び替えをするコマンドは、sortl。このコマンドをfinditで探してインストールし、実行すれば、以下のように数値順で並び替えたものが出力される。



2022年9月7日水曜日

Stataで因子分析をする方法

StataはWin, Macの両方で使用出来る統計ソフトで、一つのソフトで基礎的な分析から構造方程式モデリング、マルチレベルモデリングなども可能なソフトです。

心理学分野ではあまりユーザーは多くなく、どちらかといえば経済学、社会学にユーザーが多い印象があります。

ただ、1. 一つのソフトで全部まかなえる事、2. 海外の査読者に統計手法を説明するときに楽な事、3. マニュアルが揃っている事(英文だが)、4. 新しい分析手法を積極的に取り入れている事、など導入メリットが多く、心理学分野でも今後人気が出てくる可能性はあると思います。

現在出版されているマニュアルの多くが英語であったり、英語バージョンのソフトをもとに執筆されていますので、多くの人は「Stataって日本語化されてないんでしょ?」と思っているかもしれませんが、最近のバージョンではメニューが日本語化され、ほぼSPSSと同程度の使い勝手になっています。

しかしながら、SPSSに慣れた人にとっては、操作方法や出力の違いが気になると思いますので、今回は心理学でポピュラーな多変量解析方法の一つである、因子分析を例にとってStataの操作画面を説明したいと思います。

なお、私自身はStataの1ユーザーでしかないですし、統計解析の専門家でもありませんので、間違っている箇所もあると思います。あくまでも参考としてお考えください。


1. データの読み込み


Stataが読み込むことの出来るデータ形式は思ったより多いのですが、一番楽なのは、おそらくExcel形式のデータを読み込むことだと思います。




Stataを起動したら、ファイル>インポート>Excelシート形式(.xls, .xlsx)の順に選ぶとExcelファイルを読み込むことが出来ます。読み込む前にExcelの方で、シートの数は一つだけ残して保存し、変数名はすべて英数字にしておく方が良いと思います。




一応、どのシートから読み込むのか、も選べるのですが、この手の統計ソフトはすぐに不安定になるので、データの構造は出来るだけシンプルにしておきたいところです。1行名を変数名としてインポートする、というところにチェックを入れてからOKを押すと読み込みが終了します。


2. 因子分析ー因子の抽出編

因子分析を行う際は、統計>多変量解析>因子分析/主成分分析>因子分析の順に選ぶことになります。このメニューが日本語化されて、だいぶ楽になったように思いますね。



次にすることは、どの変数を使用するのか、ということです。ここのインターフェイスは、まだあまり洗練されておらず、使用する変数を一つ一つクリックしていかなければなりません。シフトを押しながら一気に選択、もできません。大量の変数を用いた因子分析をする際はご注意ください。




変数を選んだら、抽出方法を選びます。主因子、主成分、最尤法などがあります。もう少しオプションがあっても良いように思いますが、結局使用するのは主因子法、主成分分析、最尤法が多いと思いますので、これだけでもそんなに困らないのではと思います。

保持する因子の最大数、という箇所にチェックを入れることができるのですが、ここにチェックを入れると抽出する因子数が固定されます。じゃあ100と入れたら因子数が100個抽出されるのか?と思うのですが(項目数以上は設定できません)、不適解が出たら計算を終了しますので、普通の因子数を決めない探索的因子分析をしたときの解が出てきます。




これでOKをしたときの出力がこちらです。3因子が抽出されています。
メニューは日本語化していますが、出力はまだ日本語化されていません。
固有値(eigenvalue)や因子負荷量(factor loadings)など、基本的な因子分析関係の英単語を覚えておかないと意味がわかりにくいかもしれません。
ここで判断しないといけないのは、因子数がこれで大丈夫か?ということです。
この分析では6項目で分析しているのですが、3因子だとちょっと多いかもしれません。



3. 因子分析ースクリープロット編

因子数を決定する方法はいくつかあるのですが、今回はスクリープロットを使って検討してみたいと思います。
因子のスクリープロットを出力するためには、上記の因子の抽出関係のコマンドではなく、統計コマンドの一番下から2番目の「推定後の分析」を選択します。



推定後の分析から、「因子分析のレポートとグラフ」をクリックすると、いろいろなオプションが出てきます。この中で「固有値のスクリープロット」を選んで「開く」を押すと下の画面になります。



ここでも様々なオプションがあり、どこをどう設定すれば良いか迷ってしまうのですが、ここはデフォルト、つまり何もいじらずにOKをすれば大丈夫です。
そうするとこのような画面が出てきます。



これまで因子分析をした経験がある人であれば、この図の意味はわかると思います。簡単に解釈すると、固有値のプロットが急角度で下がっているところか、固有値1以上の因子のみ解釈するか、というのが一般的だと思います。この図だと、2と3の間で急角度で下がっていますし、固有値1以上の因子数は2ですので、今回は因子数を2として解釈した方が良さそうです。

さっそく因子分析コマンドに戻って、最尤法を指定し、抽出する因子数を2に固定(最大数=固定と思ってください)して分析します。



2因子に固定して分析した結果が下の画面です。分析は正常に終了していると思いますが、因子の解釈はこのままだと難しいです。他の統計ソフトだと、因子の解釈を行うために因子の回転方法を指定し、因子構造や因子パターンをチェックするのですが、Stataの因子分析コマンドでは回転を指定する箇所はありません。
Stataで因子を回転させるためには、スクリープロットと同じく「推定後の分析」を選ぶ必要があります。



4. 因子分析ー因子負荷量の回転編

さきほどと同じく、推定後の分析から「因子負荷量を回転する」を選ぶと下の画面になります。
直交回転としてバリマックス、クォーティマックス、エカマックス、斜交回転としてプロマックス、オブリミンなどSPSSよりも回転手法の選択肢が多いです。
使用頻度が多いのはプロマックスが多いと思いますが、注意事項としては、プロマックスを選ぶと「指数」という数値を入れるところが出てきます。これは因子間相関に関連する数値で、SPSSではカッパに当たります。SPSSではカッパ=4がデフォルト、SASではカッパ=3がデフォルトになっています。今回はSPSSの出力との比較を行うため、カッパを4として分析します。
オプションの箇所でKaiserの正規化を適用する、回転する因子または成分の数を指定する、にもチェックを入れると、SPSSの結果と類似した結果になると思います。



このコマンドを選択してOKをすると、プロマックス回転後の結果がやっと出力され、いつものように因子分析の結果を解釈するモードに入ることが出来ます。

5. StataとSPSSの出力比較とまとめ

最後にStataの出力とSPSSで同じように分析した出力結果の画像を貼っておきます。
Stataは小数点以下4桁ですので、少し比較しにくいですが、因子1への因子負荷量が変数1は0.0280、変数2は0.7857、、、でSPSSでは因子1への因子負荷量が0.028、変数2は0.786、、、となっており、ほぼ同じ結果になっていることが読み取れます。





Stataが本領発揮するのはもう少し難しい分析手法からだと思うのですが、因子分析もしようと思えば出来るんだぞ、ということが言いたかったので記事にしてみました。ユーザーインターフェイスはさすがにSPSSの方が洗練されていると思いますが、因子分析の結果をもとに構造方程式モデリングやマルチレベル分析を行うのであれば、使用統計ソフトの一貫性を保つ意味で、Stataを使用するメリットがあるかもしれません。

以上です。