こんにちは、SI部の杉です。

Rによる統計解析を紹介させていただいて今回で4回目となります。

一回目二回目で統計解析の基本である回帰分析(単・重)
三回目にデータの要約を行う主成分分析を紹介しました。

データの予想として回帰分析、まとめ・要約として主成分分析を見てきました。

今回は統計解析のもう一つの代表的な解析手法である因子分析について説明します。
主成分分析との違いを理解できていない(もしくはわからない)という人も多いようです。
因子分析と主成分分析との違いと、今回も例を挙げて因子分析の方法をRを用いてお見せします。

因子分析とは

【因子分析と主成分分析の違い】

前回の主成分分析に関する記事でも説明しましたが、主成分分析とは個々の観測データから相関性を求めて合成変数(主成分)を作り出すものでした。
そして、主成分分析の目的はデータの縮訳です。

対する因子分析は、観測データが合成変数であると仮定して個々の構成要素(因子と呼ぶ)を得ることです。
この構成要素(因子)とは、実際に観測されたものではなく、測定された変数間の相関関係を元に導き出される潜在的な変数です。
(引用文献:中部大学 ~心理データ解析)

算数 国語 理科 社会
A 45 60 55 80
B 55 80 65 90
C 100 60 60 55
D 65 50 40 60
E 70 45 70 65
F 25 65 50 75
G 55 75 45 55

例を挙げて考えてみましょう。
前回の例を用いて算数、国語、理科、社会の点数表があったとします。ここで各分析を説明すると、

主成分分析 ・・・

主成分分析ではこれらを相関関係でまとめて主成分1と主成分2に分けました。
その傾向を見て各種成分が、(例えば)文系と理系に分かれるということを見出しました。
各データをプロットし、テストの受験者全体をこの主成分で要約することが主成分分析の目的と言えます。
PCA_IMG

因子分析 ・・・

因子分析は主成分分析とは逆に、潜在的な因子として文系能力と理系能力があると推論します。
そして算数を取り上げてみると、この算数の得点は理系能力と文系能力が共に影響を与えることがわかるはずです。
(算数の文章問題を解くのに、文章を読解する能力が必要なため)
こういった共通に関わる因子のことを共通因子といい、他方、固有の影響しか与えないものを独自因子といいます。
因子分析の『因子』とは、共通因子のことを指しています。
そしてこの共通因子を求めることが因子分析の目的と言えるでしょう。
言い換えれば、受験者A~Gの算数、国語、理科、社会の得点から、文系能力(あるいは理系能力)を特定したいときに、用いるのが因子分析ということになります。

主成分分析との比較として、解析と結果の因果関係が逆になるという言い方がしばしばされるのはこのためです。
FA_IMG

また、大まかに言ってしまうと、主成分分析でできることは因子分析でも可能です。
(その逆もまた同様です)
しかし、場合によって使い分けることでデータ解析の制度が増すことが可能となります。
『合成得点を出してデータを縮約したい』ということであれば主成分分析、
『被験データを元にそれらの関係性を算出したい』ということであれば因子分析を用いればよいでしょう。

【因子分析の事例】

心理学、社会学などに度々利用されます。
また、マーケティングなどでは消費者心理やライフスタイルなどの分析に多く用いられることが多いようです。

コンビニエンスストアでのコーヒーの販売について前回の主成分分析で例を挙げましたが、(同様の分析は因子分析でも可能ですが)例えばコーヒーの購入層について以下の様な実態調査を行ったとします。

・コーヒーを飲むと眠気が覚める
・コーヒーを飲むとリラックスできる
・コーヒーの飲みすぎは体に良くない
・コーヒーはブラックの方が良い

これらの質問に対して、回答を『非常にそう思う』、『ややそう思う』、『どちらとも言えない』、

『ややそう思わない』、『全くそう思わない』までの5段階で分けて意見収集を行ったとします。

そして収集した結果を因子分析で算出します。
算出した結果から各因子の重みや傾向を見て、

第1因子:朝の眠気を覚ますために日常的に購入している顧客
第2因子:リラックスするために購入している顧客

などに分かれたとします(上の結果はあくまで例です)。
ここで二つの因子を抽出できたと解釈します。
購入者に共通の傾向が割り出されることになります。

対象者を、学生、会社員、主婦でグループに分けて因子分けして、各世代・職業ごとにどういった購入心理が働くかを調査して、顧客対象を絞ったり顧客をターゲッティングすることで利益を増やすことができるのです。

因子分析の実践

それでは百聞は一見に如かずということで、例によってサンプルデータを用いて因子分析を行ってみます。

今回はWEBで公開されている分析サンプルデータを元にデータを作成しました。
URL:http://iit.kke.co.jp/MarketingScience/Exercise/AnalysisSample/Factor_sample01.htm
自動車メーカーの類似度について、全く当てはまらない~非常に当てはまるの7段階でアンケート収集した結果を平均したものになります。

アンケートのイメージ:http://iit.kke.co.jp/MarketingScience/Exercise/AnalysisSample/img/Cluster_sample01.JPG

サンプルでは要素が少なすぎるため、HYUNDAIからRENAULTまでは追加で入れました。
※ただし、データの内容は執筆者が入れたものであり、実際にアンケートで収集したものではありません。

 メーカー センスがよい 格調高い 若々しい 信頼感のある 親しみやすい 先進的な 技術が優れている 独創的な スポーティーな 安心感のある
TOYOTA 4.14286 4.42857 4.03571 6.14286 5.57143 5.39286 6 4.75 4.03571 5.92857
NISSAN 4.92857 3.71429 4.85714 5.10714 5.57143 5.07143 4.67857 4.67857 4.75 5
HONDA 4.82143 3.67857 5.82143 5.03571 5.42857 5.53571 5.71429 5.32143 5.64286 4.75
FORD 3.5 4.17857 3.42857 3.78571 3.03571 3.25 3.78571 4.17857 3.89286 3.60714
 MERCEDES-BENZ 4.53571 6.42857 2.92857 5.75 2.60714 4.28571 5.42857 4.5 3.57143 5.71429
BMW 5.28571 5.67857 3.89286 5.28571 3.07143 4.25 5.14286 4.46429 4.60714 5.35714
HYUNDAI 3.41559 3.81231 3.51723 3.87125 5.19121 4.07554 4.15519 4.22157 4.31446 4.55111
FERRARI 5.21567 3.98513 6.29812 5.05215 3.31506 3.31506 5.45277 4.91212 6.67857 4.51218
 MITSUBISHI 4.37123 4.23964 4.21315 4.91532 5.36882 5.29447 5.51216 4.34551 5.25619 5.08515
 GENERAL MOTORS 3.93415 3.31215 4.28155 5.28121 4.59212 5.12117 4.98235 4.65621 4.55615 5.00569
 SUZUKI 4.33219 3.63222 4.12109 5.15617 5.15102 4.43155 5.05223 4.45136 3.98166 4.8175
RENAULT 3.95611 3.85201 4.33187 4.45334 4.72143 4.8375 4.91841 5.0174 5.2175 4.61225

では、いつものようにデータを読み込んで、因子分析の『方法を選択して』Rを実行します。

ここでの方法とは回転のことをいい、主にバリマックス回転とプロマックス回転というものがあります。
(他にも直接オブリミン、コーティマックス、エカマックス、プロクラステス、ターゲットなどもありますがここでは言及しません)

因子分析では共通性を推定するだけでは因子負荷量は定まりません。
判別するための制約が足りないため、解を識別させるための方法として回転を用いています。

簡単に説明すると、
・バリマックス回転

直交回転法のことで、各因子の負荷量が高い変数の個数を最小にします。
因子の解釈の単純化ができますが、逆に因子間の相関が無視される場合もあります。
※因子が直行するモデルを仮定している。つまり因子間の相関がすべて0になるため。

・プロマックス回転

斜交回転のことで、因子を相関させることができ、大規模なデータセットにも活用可能です。
※ただし、斜交回転をしても相関が殆どない場合もあります。

rotation_IMG

一般にどちらが優れているということはありませんが、プロマックス回転が多く利用されているようです。
プロマックス回転で解析したあとに、因子の相関関係がないことが分かればバリマックス回転で解析し直しても良いでしょう。
※とりわけ心理学ではプロマックス回転が好まれるようです。

従って、今回は購入者の心理的データということもあり、プロマックス回転を考慮します。

以下のコードを実行します。

【因子分析コード】

# データの読み込みです。
data = read.csv(‘ファイルの保存パス\Factor_sample01.csv’,head=T,row.names=1)

# 因子数と回転の指定。今回はプロマックス回転を考慮します。
efa

# 因子分析の結果をコンソールへ表示します。
print(efa, cutoff=0)

# 因子分析の結果をプロットします。
plot(efa$loadings[,1:2], type=”n”, xlim=c(-2,2), ylim=c(-2,2))
text(efa$loadings[,1:2], colnames(data[,1:10]))

Fa_exe_result_IMG

さて、結果のプロットで、各調査項目がどの位置にあるか確認してみましょう。
例えば、『格調高い』と『若々しい』あるいは『スポーティーな』というのは大局的な意味合いになります。
プロット図でも対極的な位置にあるのが確認できます。

横軸(第一因子)については外見に関する項目が多いようです。

また、信頼感がある、安心感があるというのは、乗っていて安全を感じることに起因すると考えられるので、技術力が高いメーカーであれば信頼感、安心感も高くなることでしょう。

すなわち、縦の軸(第二因子)は上に行くほど技術的な部分が多く出てきています。

これに以下のコードによってメーカーをプロットして照らし合わせてみます。

# 各メーカーの平均データもプロットします。
par(new=T)
plot(efa$scores[,1:2], type=”n”, xlim=c(-2,2), ylim=c(-2,2), col=556)
text(efa$scores[,1:2], rownames(data), col=556)

Fa_data_plot_IMG

TOYOTAは技術的な面で優れていることになります。
HONDAやFERRALIはスポーツ的なイメージが強いといえます。
(モータースポーツの印象も強いためだと思われます)

また、MERCEDES-BENZのような車には気品のあるようなイメージがついています。

以上のことから、

・乗り心地を重視する人はTOYOTA
・若者向けのスポーティーなイメージを重視する人はHONDA、FERRALI
・気品さをイメージする人はMERCEDES-BENZ
・総合的に判断する人はMITSUBISHIやNISSAN

を選ぶ傾向があるといえます。

まとめ

さて、以上で因子分析の紹介を終わります。
主成分分析とかなり似ている部分がありましたが、大ざっぱに分けると

・因子数と因子のパターンの決定をあらかじめ行いデータの解釈を行うのが因子分析
・データから作った複数の合成変数によってデータの解釈を行うのが主成分分析

と言えます。

また、厳密な違いというのはウェブや書籍でも公開されていますので、
それらと照らし合わせて理解を深めるのもいいでしょう。
(また、前回行ったメジャーリーガーの傾向を因子分析で行ってみると、類似点と相違点を認識で来てよいかもしれません)

余談になりますが、データ解析は解析した結果をどう活用するかが最も大切であるといえます。
例えば、車のメーカーが利益を上げたい場合、客層の拡大を計ったとします。
他社のお客さんを取り込むためにどういったマーケティング戦略が必要か、どういった商品を開発すればよいかの意思決定に繋げなければなりません。
逆に、固有の客層を手堅く維持するためにどういった戦略が必要か?という視点で考えたい場合もあるでしょう。

データ分析とは、データの収集から始まり解析、結果を分析してアクションに移すところまでの一連の流れ
だと考えています。
データ自体が整合性がある良質なものであれば解析対象のデータ数は少なくて済みます。
(統計解析とは本来そのように出来ているから)

せいぜい 100 ~ 1000 のデータがあれば殆どの場合において解析は可能でしょう。
逆にデータの整合性が曖昧な大量データは統計解析にはあまり向いていないのではないかと筆者は考えています。
整合性があればサンプリングされたもので解析すればよいし、整合性がなければそもそも分析対象として向いていないためです。

どんなデータで何を解析~分析したいのかを明確にしてようやく出発点に立てるのではないでしょうか。

今回は以上になります。ありがとうございました。