LoginSignup
2
5

More than 5 years have passed since last update.

因子分析(promax回転)でRとSPSSの結果を一致させる

Last updated at Posted at 2017-01-14

概要

内容

背景

  • 共同研究者と同じアンケートデータを同じ手法(promax回転,最尤法)で解析しているはずなのに,結果(数値)が大幅に異なることが…

原因

  • 共同研究者はSPSS,こちら側ではR(psychパッケージのfa関数)を使っているので,そこに原因があるのは確実
  • よく見たら,SPSSはkaiserの正規化をしているのに,Rではしていなかったので,kaiser関数を当ててみたりする
  • それでも合わず…
  • こちらのサイトによると,共通性の平方根で重み付けしていないことが原因とのこと.

解決方法(Usage)

− 同じく,上記サイトにその差分を吸収する関数があるのでそれを使う.

たとえばこんな感じ

sample.R
dat <- read.csv("sample.csv", h=T, row.names=1)
print(promax2(fa(dat,2,rotate="varimax", fm="ml")),digits=3)

に,してあげると,小数点以下3桁目くらいに細かいズレがあるものの,ほぼSPSSの結果と一致するような値を得ることが出来る.

解析例

たとえばこちらのサイトの例だと,SPSS(バージョンその他不明)で得たとして紹介されているLoadingは以下の通り

SPSS 因子1 因子2
社会 .940 -9.146E-02
国語 .829 -3.322E-02
英語 .648 .249
数学 -.127 1.042
理科 .175 .599

R(version 3.3.2)のpsych(v1.6.8)と,上記のサイトにあるpromax2を用い,同じデータを処理1して得たLoadingは以下の通り(SPSSと比較しやすいように順番を入れ替え済み)

R ML2 ML1
社会 0.940 -0.092
国語 0.829 -0.033
英語 0.647 0.295
数学 -0.127 1.041
理科 0.174 0.601

検索用のタグ

因子分析,プロマックス回転,promax回転,SPSS,R,値,一致しない.


  1. 上述の sample.R がその時の処理 

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5