ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Rで因子分析

2011-07-20 11:00:45 | そのほか
方法

1.データを作成・読み込む
  Rで線形回帰分析のときのようにCSVを読んでもいいし
  Rで主成分分析のときのように直接入力してもいい
   ただし、CSVファイルは以下の点に注意
     ・1行目は、各項目の見出し(ないしは、header=FALSEで読み込む)
     ・行番号は、つけない



国語,算数,社会,理科
20,100,40,50
50,60,79,80

    今回は、CSVで読み込んでみる
     データ<-read.csv("読み込むCSVファイル",header=T)


2.まず、因子数を決定する
   相関係数行列の固有値が1以上とかいうので、選びたい場合、
   相関係数行列(cor(データ))の固有値(eigen(行列))をもとめ、
   その値($value)を表示する。

     eigen(cor(データ))$value


   ただし、因子数は、上限がある
    因子数≦(2*観測変数の個数+1-(8*観測変数の個数+1)^0.5)/2


3.因子数が決まったら、因子分析

   factanal(データ,factors=決めた因子数,rotate="none")

   rotate="none"だと、回転しない。
   そうすると、因子負荷量がわかりにくいかもしれない。
   ここでは、それより寄与率やp値をみて、因子数の妥当性を確認
   ここのP値は、検定のときと違い、高いほうがいい



4.各因子の因子負荷量がわかりづらかったら、回転する

   factanal(データ,factors=決めた因子数,rotate="varmax")

  varmaxでも判りにくかったら・・

   factanal(データ,factors=決めた因子数,rotate="promax")



5.それぞれの人(レコード)の因子得点をもとめる

   factanal(データ,factors=決めた因子数,scores="Bartlett")$scores

  トムソンの回帰推定法でやる場合は

   factanal(データ,factors=決めた因子数,scores="regression")$scores



6.プロットしたい(散布図に出したい)場合

plot(factanal(データ,factors=決めた因子数,scores="Bartlett")$scores)



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする