見出し画像

Tableauを用いたアンケート結果分析に関する考察(前編)

記事一覧

前編(イマココ)
後編
パブリッシュしたViz

序文

Tableauを用いたデータ可視化・分析を学ぶ中で、「アンケート結果の集計・分析」というテーマを知った。なんでも人々はデータの無為にピボットを繰り返し、肥大化したデータに悩まされているというではないか。真相を確かめるべく、取材班は現場へと急行した!
ここは一つ、Tableauの技術と己の勘を頼りに解決策を模索してみようと思う。最後までお付き合い頂ければ幸い。

結論から言ってしまうと、現時点で以下の3ケースがあると考えられる。3つ目については、今後現場の意見を聞きつつ考察を深めていく必要がりそうだ。
〇そもそもピボット不要
〇ピボットをするだけの十分な理由があるが、他のピボットと切り離した方がよい
〇アンケートについて理解が不足しているのでまだ分からない

背景

私は元々数値シミュレーション関係の専門職をやっており、2020年に転職してデータアナリストになった。従ってアンケートの分析をしたことは一度もない
だが、とあるTableau Prepのユーザーイベントでアンケートデータのピボットで困っているという話を聞いて違和感を覚えた。その後、具体的な方法は分からないが、「何かある」というゴーストの囁きが消えなかった。

といわけで、以下のような手順で検証を行うことにした。
〇アンケートのダミーデータ作成
〇Tableauに読み込んで触ってみる
〇なぜピボットをするのか・本当に必要なのか考察

今回作成したVizは公開しているので、ページトップのリンクから参照されたい。データはランダムに生成したものであり、自由に触って頂いて構わない。

なお、筆者はアンケート分析に関しては完全に素人であり、内容の不足や記載に不正確な点があるかもしれない。その場合はご指摘頂ければ幸いである。

As-Is分析

そもそもアナリストは、アンケートデータに対してどういう操作をしているのだろうか?知り合いの話やセミナーの内容から察するに、主に以下のような操作を行うようだ。
〇男女比や満足度などを集計・可視化する
〇SA群をピボットし、各満足度と推奨度のピアソン相関係数を求める

そして耳にするのは、「Tableauで複数回のピボットがまとめてできないから面倒」「Prepでピボットを繰り返したらデータ量が暴発した」etc.の声である。どうやら分析にたどり着く前の、データエンジニアリングのレベルで躓いているようだ。

ダミーデータ作成

今回は「携帯電話のセット割利用状況・契約に関する項目の満足度と推奨度」というアンケートを想定して、1,000行のデータを作成した(下図)。具体的には性別と1つのMA(マルチアンサー:複数回答可能な設問群)、満足度(1-10)を問う4つのSA(シングルアンサー:単一の値を回答する問)、そして最後に他者への推奨度(0-10)を問う設問1つから構成される。

値はエクセルで均一な分布の乱数を発生させ、完全ランダムに割り振った。そのせいで推奨度と満足度がほとんど嚙み合っていないがそんなの関係ねえ。男女比は1:1とした。以下、このデータを用いて実験を行っていく。

画像5

とりあえずピボットしてみる

まずはTableau Desktopを使って、データをピボットしてみた。エクセルデータを読み込ませた後、データ画面からカラムを選択してピボットする。すると下図のようになる。SA群の4カラムをピボットしたことで、データが4倍の4,000行になった。すると設問を示すカラム名が「ピボットのフィールド名」へ、満足度が「ピボットのフィールド値」へと変化した。

画像5

分かりにくいので、「ピボットのフィールド名」を「満足度項目」に、「ピボットのフィールド値」を「満足度」に変えておく。ちなみにピボットしたカラム名を変えない状態で別のカラム3つを選択してピボットしようとすると・・・できなかった。なぜか1つ目のピボットと同じデータが繰り返されてしまい、意味不明なことになった。どうやらカラムの名前で何かしらの判定が行われているらしい。

そこでピボットしたデータを一旦エクセルに保存し、ピボットしたカラム名を書き換えて再度ピボットを試したところ、今度はうまくいった。しかしすでにデータは12,000行、元のデータの実に12倍。これを繰り返したら、一体どうなってしまうんだ。

そもそもピボットとは

ピボットとは、バスケ以外で普段あまり使わない言葉だがデータの世界ではデータを縦持ちと横持ちの間で変換する作業を指す。具体的には、下図のような操作を行うことが多い。データの行数はオリジナルのN倍(ピボットでまとめたカラム数倍)に膨れ上がり、増えた行にはオリジナルと同じ値が複製される。

画像2

実際のところ、筆者がピボットに対して違和感を覚えたのはこの値の複製が原因である。とにかく値がダブるので、きちんと理解していないと解析結果が変わってしまう。複数回ピボットをすると、同じ値が更にダブるのでいよいよ訳が分からなくなる。人はなぜ、ピボットを繰り返すのか。

ピボットをn回繰り返すと、データのロー数はすごい勢いで増殖する。数学的に言うと以下の式で記述できる。

画像3

Mは元のデータ量(ロー数)、Niはi番目のピボットにおいてまとめるカラム数である。端的に言うとピボットを分割できるのであれば、データ量は掛け算から足し算になるので大幅に削減できる。

分析してみよう

まずは携帯キャリアごとに男女比を表計算を使って計算してみる。当然、ピボットは必要ない。各キャリアごとの年齢ヒストグラムを作るような場合も、ピボットする必要は特にない。

画像5

次に、携帯キャリアごとのNPSを計算してみる。推奨度に応じて、予めエクセル上で各ユーザーを3セグメントに分けてある。推奨度0-6のとき-1、7-8のとき0、9-10のとき1とした。これはNPS計算を楽にするための小細工。

今回は携帯キャリアごと・セット割プランごとのNPSを求めてみた(下図)。具体的には、下記の計算式を各セット割の設問について4つ作成する。セット割プラン項目は0か1が入っているMA設問である。

SUM([セット割プラン項目] * [推奨度セグメント]) / SUM([セット割プラン項目])

各セット割プランを契約している人数を数える必要はない。0か1しかないので、単に足すだけで人数カウントになる。

ここでセグメントを-1~1にしたことが生きてくる。掛け算して足し合わせれば、NPSが勝手に出てくるのだ。更にメジャーバリューを使うことで、ピボットせずとも携帯キャリア別・MA設問別の可視化ができた。

画像6

ところで推奨度の値を0-10の均一分布にしたことで、NPSが全体的にかなりマイナスに触れてしまった。一体どんな状況なのだろうか。

ということで分析内容によってはTableauを正しく使えばわざわざピボットしなくても、欲しいビジュアライゼーションが作れる。無駄なピボットを削減できる可能性が一つ示された。

後編へ続く

この記事が気に入ったらサポートをしてみませんか?