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 .

解説

[Q] 回転前の因子負荷量を読み込んで回転だけしたい
[A] 以下の手順で実行する
(1)FACマトリクスデータで回転前負荷量データを用意する

 ・データは,項目が行方向(横),因子が列方向(縦)にならび,各セルには負荷量が入っている
 ・先頭2つの変数名は必ず下例の通りにする
因子負荷量の出力を元にマトリクスを作成する方法

ROWTYPE_FACTOR_V1V2V3V4V5V6V7V8V9V10
FACTOR10.47800.52100.64400.50000.38400.48500.29900.32300.46800.3160
FACTOR2 -0.3150-0.4270-0.0300-0.2850-0.1780-0.0650-0.07200.10800.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では指定してもしなくても正しく実行される)

参考 因子負荷量の出力を元にマトリクスを作成する方法
  1. SPSSの出力画面とExcelを開く(SPSSのデータシートとExcelは新規作成にしておく)
  2. SPSS出力画面で読み込みたい因子負荷量の表を選択
  3. 右クリックし「コピー」
  4. Excelの画面にして「貼り付け」
  5. データ部分を選択し「コピー」
  6. SPSSのデータエディタ画面に貼り付け
    (変数名部分は文字型でないと貼り付けられない.変数名を貼り付けたい場合は,第1変数を予め変数ビューで「文字型」に設定しておく)
  7. SPSSで[データ]-[行と列の入れ換え]
  8. 回転させる変数と変数名にする変数をそれぞれを選び[OK]
  9. 他の変数を設定しておわり

戻る| トップへ