Exploratoryツールによる主成分分析(PCA)を試してみる
今回のゴールイメージ)
今回のゴールは、各支店ごとに取得した評価点データをもとに各変数との関係性、パターンや特徴を可視化してみようと思います。
参考サイト)
主成分分析の解説
https://exploratory.io/note/kanaugust/18-PCA-tWA7mRe3HR
スタートガイド
https://exploratory.io/note/kanaugust/6235618967553110
Tableau(タブロー)を使った主成分分析の場合
http://lovedata.main.jp/2018/04/01/959/
Exploratoryツールのダウンロード(デスクトップ版)
https://exploratory.io/download
主成分分析とは)
主成分分析(しゅせいぶんぶんせき、英: principal component analysis; PCA)は、相関のある多数の変数から相関のない少数で全体のばらつきを最もよく表す主成分と呼ばれる変数を合成する多変量解析の一手法[1]。データの次元を削減するために用いられる。
ざっくり説明すると、多数ある変数間の関係をデータの次元を削減しながら可視化することでデータ中のパターンや相関を理解するために用いられる分析手法です。
今回の手順)
- データ準備
- データ取り込みとサマリデータ確認
- 列ごとの相関確認
- 主成分分析(principal component analysis; PCA)を実施
- 解釈
データ準備
今回使用するデータはこちらです。
とある飲食チェーンの各支店ごとの評価点結果と捉えてください。
データ取り込みとサマリデータ確認
まずは、プロジェクトから新規作成をクリックします。
つぎに、下記のように任意でプロジェクト名を決めてください。
そして、データを取り込みます。
データを取り込む際、データフレーム>ファイルデータ>エクセルファイルを指定
さらに、データ状況を確認しながら、場合によってはデータ修正すると良いでしょう。問題なければ、「保存」をクリックし、データフレーム名を決めて完了します。
最後に、サマリーデータを確認しておきましょう。
数値型については、初期でヒストグラムと欠損値、最小値、最大値、中央値、平均値および、標準偏差などのサマリー数値を確認できると思います。
ちなみに、下記のように、グラフアイコンをクリックすると詳細チャートを確認することが可能です。
列ごとの相関確認
今回のテーマとは直接関係ありませんが、列ごとの相関を確認しておくと良いでしょう。
アナリティクス>タイプ:列ごとの相関 を選択する
下記の番号については、単なるシーケンス処理番号のため不要となります。したがって、選択から除外します。問題なければOKをクリックします。
実行ボタンをクリックすると下記のように、相関係数が計算されたヒートマップが作成されます。マウスオーバーで相関係数が確認できますが、色で判別可能です(赤は正の相関が強いことを示す)。
色を「反転」させる場合は、下記で調整可能です。
「自己参照」部分は、相関係数は1となるため、もっとも濃い色となります。
相関関係が強い変数の組み合わせは、「お出迎え – スマイル」、「スマイル – お客様対応」、「食事 – 雰囲気」などが挙げられます。
テキストで確認する場合は、「正の相関」および、「負の相関」を利用すると良いでしょう。
主成分分析(principal component analysis; PCA)を実施
それでは、本日のメインとなります、主成分分析を実施してみましょう。アナリティクス>+ボタン をクリックして下記のように「主成分分析(PCA)」を選択して下さい。
続いて、「変数の列」で実際に変数を設定します。
ここでは、「番号」以外の変数を全て設定することも可能ですが、先ほどの相関係数から、ここでは、最初に、もっとも正の相関係数が高かった「お出迎え」と「お客様対応」の2つの変数を使って検証してみます。
さらに、「色で分割」を支店名を指定してみましょう。
下記では、上野支店をマウスオーバーした状態です。ただし、このままだと真意を掴みづらいですね。この後、一手間加えてみます。
「お出迎え」と「お客様対応」を列で連結して新しいディメンションを作成してみます。
問題なければ、そのまま「実行」をクリックします。
下記のように、お出迎え – お客様対応の数値が連結されたディメンションが作成されました。
ふたたび、「アナリティクス」メニューへ戻ります。そして、ピンマークを、1.ローカル・データ -Excelから、2. 複数の列をつなげる(Unite)へドラッグ&ドロップして下さい。そうすると、左下の実行ボタンの下に赤字で「参照データが更新されています。実行をクリックして下さい。」と表示されますので、その通り、実行してみて下さい。
実行後、下記のように再設定後、さらに実行をクリックします。上野支店をマウスオーバーすると、「お出迎え – お客様対応」の数値の組み合わせが表示されるようになりました(4.45-4.3)。
今回は、常にラベルをテキスト表示させておきたいです。下記のように、設定してみましょう。
下記のように、ラベルを表記できるようになりました。
それでは、少し、解釈方法をみていきます。赤枠は上野支店です。
下記の図では、PC1とPC2の交差する0付近が平均と捉えると良いでしょう。そして、「お客様対応」と「お出迎え」のそれぞれのラベルが付いている側が高い数値方向と捉えて下さい。0を挟んで逆側が平均よりも低いと解釈できます。例えば、上野支店の場合、「お出迎え」の評点が4.45、「お客様対応」の評点が4.3ですので、その旨、確認できると思います。それとは逆側の御茶の水支店では、それぞれ評点が3.65_3.6であり、平均よりも低いということがみて取れます。
なお、PC1(97.7%)の97.7%は、全体のデータの散らばり具合をPC1で97%程度説明できてしまう、と捉えて下さい。PC2の2.3%と合計すると100%となります。「成分の重要度」リンクでも確認できます。
それでは、最後に、「番号」以外の変数を全て設定してみましょう。問題なければ、OKをクリックして実行ボタンをクリックします。※ラベルはそのままで良いです。
解釈
下記が実行結果です。
PC1で、もとのデータの散らばり具合を42%程度説明でき、PC2で、25.7%程度説明できると解釈できます。赤枠は、相関の高い変数同士が近接していると考えられます。大きく、上段赤枠を「接客力」、下段赤枠を「商品サービス力」の2つでざっくり、言い換えられるかもしれません。
ここから、下記のようにラベルを「支店名」に変更してみましょう。各支店ごとの特徴や関係性が見えてくるのではないでしょうか(ポジショニングマップ)。
目黒支店と小田原視点を強いて説明すると、接客力(お出迎え、スマイル、お客様対応、店舗内清掃)は平均並み、商品サービス力(雰囲気、食事、量、サービス料、店舗デザイン)は平均以下(むしろ悪い部類)と解釈できそうです。黄色枠は、上記で言うところの接客力が相対的に良くないといえそうです。ここまで解釈できれば、So What ? を導けるのではないでしょうか。
まとめ)
今回は、Exploratoryツールを使って、主成分分析(PCA)を試してみました。Exploratoryツールを使うことで、素早く統計的アプローチが可能になったかと思います。今後、GoogleアナリティクスとExploratoryツールを併用することで、Googleアナリティクス単体では実現できなかったような統計的アプローチからインサイトを得ることが主流になるかと思います。ぜひ、早めに準備してツールスキルを上げておくと良いと思います。