■google

■最近のコメント
■最近のトラックバック
■最近の記事
■月別アーカイブ
■ブログランキング
■ブログ検索

■ブロとも申請フォーム
■リンク
■RSSフィード
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


スポンサー広告 | --:--:--
因子分析

本当に久しぶりの更新となってしまいましたが,
今回は因子分析についてです.


因子分析は,多くの変数を少数の因子で説明しようとするものです.
似た手法として主成分分析がありますが,
主成分分析は直交する軸を見つけるものであるのに対して,
因子分析は,相関関係から共通する因子を見つけていきます.

例として,次のようなアンケートがあったとします.

------------------------------------------------------------

Q あなたはこの車について以下の項目を5段階で評価してください.

1.パワー
2.コーナリング
3.かわいさ
4.かっこよさ
5.室内の広さ
6.色の選択
7.軽快さ
8.カーナビ

------------------------------------------------------------


こういったアンケートをA車,B車,C車に対して行い,
次のようなデータが得られたとします.(これは擬似データです)
擬似データ

(※クリックすると大きくなります.
出てきた画像の右下に出てくるマークをクリックすると
きれいなります.)


まず,これをkuruma.csvで保存します.
(エクセルに入力→名前を付けて保存のときに
 ファイルの種類をcsv(カンマ区切り)を選択)
ここでは,FドライブのRdataフォルダに保存しました.
それをRに呼び出します.
kuruma<-read.table("F:/Rdata/kuruma.csv",sep=",",header=T)
sep=","はカンマ区切りという意味で,
header=Tは1行目を行名にするということです.

ファイルを読み込んだら,いよいよ因子分析です.
因子分析はfactanalというコマンドを使います.
resultに因子分析の結果を入れます.
ここでは,因子の数を2と指定しました.
result<-factanal(kuruma[,2:9],factors=2,scores = "Bartlett")
resultで結果が返り,因子得点,因子負荷量を
見ることができます.

因子分析をやったら,因子(軸)の解釈をします.
分かりやすくするために,横軸に第1因子,
縦軸に第2因子をとって,各評価項目をプロットしてみます.


因子分析の結果であるresultの中の
loadingsは因子負荷量を表していますので,
次のようなコマンドでプロットできます.

plot(result$loadings[,1:2],type="n",xlim=c(-1,1),ylim=c(-1,1))
text(result$loadings[,1:2],colnames(kuruma[,2:9]))

type="n"はプロットの点を書かないということで,
xlim=c(-1,1),ylim=c(-1,1)は軸の範囲を示しています.
(最初は軸の範囲はまず指定せずに,やってみて,
みづらかったら調整してください)
プロットの点の変わりに行名(各評価項目)をテキストで
プロットするのは,textというコマンドです.
すると,以下のような図が描画されます.
因子分析結果


(※クリックすると大きくなります.
出てきた画像の右下に出てくるマークをクリックすると
きれいなります.)


どうでしょうか?
横軸では,右にいくほど室内の項目,
左に行くほど,外見の項目が並び,
縦軸では,上に行くほど機能性の項目が
並んでいるように見えます.

また,言葉と言葉の距離が近いほど類似性が
高いといえます.
これを見ると,確かに似た言葉が近いようです.

さらに,分析を進めるために,ここで,
A車,B車,C車それぞれの第1因子の平均,
第2因子の平均をこの図の上に重ねて見ましょう.

pointsで重ねてプロットできます.
データを見てA車は1行目から14行目,
B車は15行目から29行目,C車は30行目から44行目
にあるので,次のようにコマンドがかけます.
pchはプロットする文字を指定します.
points(mean(result$scores[1:14,1]),mean(result$scores[1:14]),pch="A")
points(mean(result$scores[15:29,1]),mean(result$scores[15:29]),pch="B")
points(mean(result$scores[30:44,1]),mean(result$scores[30:44]),pch="C")


その結果得られる図は次のようです.
因子分析2

(※クリックすると大きくなります.
出てきた画像の右下に出てくるマークをクリックすると
きれいなります.)

A,B,Cのプロットされた位置に,
近いキーワードはその車の特徴に近く,
先ほどの軸の意味合いも考慮すると,A,B,Cの
消費者が感じる車のイメージは次のように解釈できます.

A:機能性は劣っているが,デザイン性が良い.
B:機能性もデザイン性もバランスが良い.
C:機能性に優れ,室内環境も良い.

こんな感じでしょうか.

あくまで一つの切り口に過ぎませんが,
因子分析を使って視覚的に,
対象の類似性や評価を捉えることができるので,
面白いです.
スポンサードリンク


スポンサーサイト
因子分析 | 21:52:47 | Trackback(0) | Comments(0)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。