SPSS Win
勝手にFAQ
因子分析編
トラブル
[Q] 抽出因子数を指定しても無視される。
[A] シンタックスで/CRITERIA サブコマンドより後ろに,/EXTRACTIONサブコマンドがないと
/CRITERIA FACTORSによる抽出因子数の指定が無視され,固有値1以上の因子抽出になってしまうらしい。
[悪い例]
FACTOR
/MISSING PAIRWISE
/ANALYSIS v1 to v20
/PRINT INITIAL EXTRACTION ROTATION
/FORMAT SORT
/EXTRACTION PAF ←この2行の
/CRITERIA FACTORS(3) ITERATE(100) ←順序が逆
/ROTATION PROMAX(4)
/METHOD=CORRELATION.
[Q] 共通性の推定値が1を越えてエラーになる
[A] いわゆる「Heywoodケース」と呼ばれるものでデータや因子数が不適当な場合に起きることが多い。まずカラムミスや欠損値の指定ミスなどを疑ってみるとよいかもしれない。
[Q] 相関行列の計算で「この値は正値行列ではありません」とエラーになってしまう
[A] 逆行列が計算できないなどデータに問題がある時のエラー。まず項目数よりもケース数が少なくないかチェックしてみるとよい。
[Q] 回転前の因子行列が棒線になってしまう。
[A] 「因子抽出」「回転のない因子解」のチェックを外すと回転前の因子行列の出力を省略されるが,タイトルと表が出力されてしまうらしい。同様に回転を省略すると,回転後の表の残骸が出力されてしまう。
ヒント
[Q] 因子分析の因子負荷プロット図にラベルを出力させないようにするには?
[A] できない。ビューア画面で後から編集・削除するしかない
[Q] 共通性の推定値(初期値)の指定の仕方
[A] SASと異なり,因子抽出法ごとに固定されている。主因子法ではSMCが採用されている
(因子抽出法のプルダウンメニューを右クリックするとそれぞれの説明が表示される)
[Q] FAC形式のマトリクスデータの構造は?
[A] 以下の通り
rowtype_ factor_ V1 V2 .....
FACTOR 1 因子負荷量
FACTOR 2 因子負荷量
FACTOR 3 因子負荷量
[Q] 相関行列データから入力したい
[A] 原則としてSPSS独自のCOR型フォーマットのマトリックスデータを作成し以下のようなコマンドシンタックスを用いるs
FACTOR
/MATRIX IN(COR=*)
/MISSING PAIRWISE
/ANALYSIS x1 to x10
/PRINT INITIAL EXTRACTION
/CRITERIA MINEIGEN(1) ITERATE(100)
/EXTRACTION PAF
/ROTATION NOROTATE
/METHOD=CORRELATION .
解説
- MATRIX IN文は最初に指定しなければならない
- MATRIX IN(COR=)はCOR型の相関行列データを示す。このほかcov,facなど各種の
データから入力可能
- (COR=*)は現在のデータエディタ上にデータがあることを示す
- ファイルから読み込むときは*の代わりにファイル名を記す
- /MISSING PAIRWISE:欠損値はペアごとの除去しか認められない。明示的に書かないと警告が出る
- /ANALYSIS x1 to x10:分析する変数はここで指定。VARIABLESは指定しない
[Q] 回転前の因子負荷量を読み込んで回転だけしたい
[A] 以下の手順で実行する
(1)FACマトリクスデータで回転前負荷量データを用意する
・データは,項目が行方向(横),因子が列方向(縦)にならび,各セルには負荷量が入っている
・先頭2つの変数名は必ず下例の通りにする
→因子負荷量の出力を元にマトリクスを作成する方法
- 変数ROWTYPE_は必ず文字型変数とし,変数幅を8文字に設定すること.それより多くても少なくてもエラーになる
変数の内容は"FACTOR"とする。スペルが違っていると実行時にSPSSがフリーズして「プロセッサの中止」でも実行中止できなくなる場合があるので注意
- 変数FACTOR_は数値型にすること。変数の内容は因子の番号。同じ因子番号を複数に指定すると,回転ができないなどエラーになる
例
ROWTYPE_ | FACTOR_ | V1 | V2 | V3 | V4 | V5 | V6 | V7 | V8 | V9 | V10 |
FACTOR | 1 | 0.4780 | 0.5210 | 0.6440 | 0.5000 | 0.3840 | 0.4850 | 0.2990 | 0.3230 | 0.4680 | 0.3160 |
FACTOR | 2 | -0.3150 | -0.4270 | -0.0300 | -0.2850 | -0.1780 | -0.0650 | -0.0720 | 0.1080 | 0.0120 | -0.0890 |
↑文字型8文字 | ↑数値型 | ↑数値型 |
(2)以下のようなシンタックスを実行
・FAC=*はデータ作業ファイル上にある場合の指定.別ファイルの場合はFAC=file名とする
・variablesは指定しない
・/ROTATIONにはお好みの回転法を指示
FACTOR
/MATRIX=IN(FAC=*)
/MISSING PAIRWISE
/ANALYSIS V1 to V10 ←※この行 下記注意参照
/FORMAT SORT ←※負荷量の大きい順に並べたい時指定しておくと便利
/ROTATION PROMAX.
※注意
SPSS11.5および13では/ANALYSISコマンドを指定すると
因子行列入力での ANALYSIS サブコマンドに、変数のサブセットを指定することはできません。このコマンドは実行されません。(SPSS11.5)
因子行列入力での ANALYSISサブコマンドに、変数のサブセットを指定することはできません(SPSS13)
などのエラーになってしまうので,/ANALYSISを指定せず,すべての変数を使って計算する(11.5より前,12.0ではこの問題は発生しない。14.0では指定してもしなくても正しく実行される)
参考 因子負荷量の出力を元にマトリクスを作成する方法
- SPSSの出力画面とExcelを開く(SPSSのデータシートとExcelは新規作成にしておく)
- SPSS出力画面で読み込みたい因子負荷量の表を選択
- 右クリックし「コピー」
- Excelの画面にして「貼り付け」
- データ部分を選択し「コピー」
- SPSSのデータエディタ画面に貼り付け
(変数名部分は文字型でないと貼り付けられない.変数名を貼り付けたい場合は,第1変数を予め変数ビューで「文字型」に設定しておく)
- SPSSで[データ]-[行と列の入れ換え]
- 回転させる変数と変数名にする変数をそれぞれを選び[OK]
- 他の変数を設定しておわり
戻る|
トップへ