マーケティングにおいて、コンバージョン数などの定量的な数値を分析しただけでは、顧客の本音までは分からないことも多いのではないでしょうか。定量分析だけでは分からない顧客満足度などを調べるため、アンケート調査は多くの企業で行われています。多変量解析などの手法を活用することで、集計したデータからはより多くの示唆を得ることができるでしょう。
本シリーズでは、アンケート調査の分析手法を数回に分けてご紹介したいと思います。1回目は、因子分析の手法を用いて、アンケート質問項目のグループ分けに取り組んでみました。
#因子分析とは?
複数の変数で記述された量的データを分析する方法で、各説明変数に影響している共通因子を抽出します。アンケート調査の場合、質問項目に共通している因子を探し、項目同士をグルーピングすることで、アンケートの構造を把握しやすくなります。
多くの変数を少数の項目に置き換えるという点で、主成分分析との類似性がよく指摘されますが、主成分分析では変数間の相関関係から無相関の合成変数を求めて変数を縮約するのに対し、因子分析は変数間の相関関係から共通因子を抽出し、変数を少数の共通因子にまとめるという違いがあります。
#分析開始
それでは、Rでサンプルデータを実際に分析してみましょう。今回は、以下のサイトより、自動車を購入する際に重視する項目に関するアンケートデータ(n=90)を使用しました。
①まずサンプルデータを読み込みます。自動車を購入する際に考慮する点については、以下の選択肢が与えられており、回答者は1~5のいずれかを選びます。
・Price
・Safety
・Exterior_Looks
・Space_comfort
・Technology
・After_Sales_Service
・Resale_Value
・Fuel_Type
・Fuel_Efficiency
・Color
・Maintenance
・Test_drive
・Product_reviews
・Testimonials
data <- read.csv("car.csv")
head(data)
各項目の相関係数を見てみましょう。安全性と快適さには弱い正の相関があるなどの特徴が見て取れます。
cor <- cor(data)
②因子分析を行うには、質問項目を何分割するかを決める必要があります。決め方にはいくつか種類があり、今回は代表的な手法であるスクリープロットを使います。
手順は以下の通りです。
- データの相関行列を計算
- 相関行列の固有値を計算
- スクリーテストを行い因子数を決める
相関行列はすでに計算しているので、固有値の計算とスクリーテストを行います。
eigen <- eigen(cor)$values
plot(eigen, type="b")
グラフの固有値減衰をみると、3で大きく下回っていることが分かります。今回は3つに分類することとします。
③因子数を3として、因子分析を行います。「rotation」は、デフォルトでNoneになっており、因子を解釈しやすくなる方法として、バリマックス回転(varimax)かプロマックス回転(promax)を指定できます。今回は代表的な手法であるバリマックス回転を使用します。
factanal <- factanal(x=data,factors=3,rotation="varimax")
print(factanal, cutoff=0)
Loadings:に出力された数値を「因子負荷量」といい、各グループと質問項目の関係の強さを示しています。この値が0.4以上なら関係が強いとされることが多いようです。
今回の出力結果からは、質問項目を以下の3グループに分けることができそうです。
グループ1:スペースの快適さ、アフターサービス、燃料のタイプ
グループ2:価格、売却時の価格、燃費、メンテナンス
グループ3:色
グループ2は価格やコストパフォーマンスに関する質問がまとめられていることが分かります。一方で、外観などはどのグループも低めの数値となっており、あまり考慮しないという人が多いのかもしれません。