=====================
《ビジネス×サイエンス》
#02 位置と集団を見抜く

<導入>
   ■ 1. 「位置と集団」のビジネスとサイエンス
<ビジネス編>
   ■ 2. 顧客の地図を描く ~ 顧客クラスタの事例と解答
   ■ 3. 戦略を練るための「地図」思考 ~ 様々な事例と通底する理念
<サイエンス編>
   ■ 4. クラスタ生成の統計アルゴリズム ~ 階層的手法、k-means法
   ■ 5. クラスタを支える数理的概念 ~ 距離の定義、クラスタ数、FAQ (このページ)
=====================

 

■ 5. クラスタを支える数理的概念 ~ 距離の定義、クラスタ数、FAQ

クラスタリングの技術として、どの手法を使うか以前に決定的に重要なのは、「点と点の間の距離」をどう定義するか、だということは、ここまで読んでこられれば明白だと思います。

 

■ 5.1 変数の指数化

まず、「距離」の前に、変数一つ一つをどう定義すべきかを考えましょう。

例えば、心理に基づくクラスタリングとして、30個の要素をどのくらい重視しているかを6段階で回答してもらったとしましょう。
「1.とても重視した/2.重視した/3.どちらかというと重視した/4.どちらかというと重視しなかった/5.重視しなかった/6.全く重視しなかった」
回答者のAさん、Bさん、Cさんの回答分布は以下のようでした。この3人の回答データをそのまま使うのは適切でしょうか?


画像が見えない場合はこちら

あるいは、行動に基づくクラスタリングとして、「エンゲル係数(食費の割合)」、「一ヶ月の外食費」、「カード決済の割合」を取ったとしましょう。
調査母集団の統計分布は以下のようでした。このデータをそのまま使うのは適切でしょうか?


画像が見えない場合はこちら

いずれも、分布の中心も広がりもばらばらですから、このままで使うのが不適であることは分かりやすいと思います。

最も一般的な手法として、教科書によく書かれている「標準化(または正規化、standardization, normalization)」の手法は、以下の式に従うことです。

(標準化した変数) = {(オリジナル変数) - (平均値)} ÷ (標準偏差)

平均値を引くことで中心が左右どちらかに偏るアンバランスを補正し、標準偏差で割ることで分布が広い/狭いのどちらかに偏るアンバランスを補正するわけです。この式で変換すると変数は全て、「平均が0、標準偏差が1」に揃えられます。

筆者が知る限り、マーケティングやビッグデータの専門会社を名乗る会社に分析を発注すると、教科書通りにこの標準化をした指数で計算してくるケースがほとんです。ですが、クラスタリングで使うには、この計算式をナイーブに使ったのではうまく機能することは残念ながら期待できません。

 

<心理情報ケース>

先程の心理情報のケースをまず考えてみましょう。

標準化の式を使うと、変数の分布は以下のようになります。


画像が見えない場合はこちら

一見、3人の回答分布が中央に揃ってこれで良いようにも見えます。ですが、ここで深刻な問題はまず、標準的な分布域(おおむね中心点より標準偏差2つ分以内)から飛び跳ねた値が出来てしまっていることです。この飛び跳ねた値はクラスタ形成で独立したグループを作ってしまい、小さな「飛び値クラスタ」がいくつか、そして全体のほとんどを占める「普通の人クラスタ」、という構成になってしまうことがあるのです。「標準化式」という技術的な理由だけでそんな切り分け方になってしまっては、クラスタの戦略的意味合いの議論以前にそもそも使いものになりません。

そして解釈の面でも、この分布は少々受け入れにくいものです。まず、6段階の真ん中の評価の位置は、プラスでもマイナスでもどちらでもない評価の基準点のはずですが、これが人によってばらばらにずれてしまいます。また、6段階の最も右、最も左につけた、それぞれの回答者にとっての最大限の評価も、人によってばらばらにずれてしまいます。上記のグラフでは例えば、Aさんにとっての最高評価が、Cさんにとっての中立評価とほとんど変わらなくなってしまっています。

これらの問題を解消するために、筆者が工夫して使っているのは以下の方法です。


画像が見えない場合はこちら

  f(x) = (x/x_{rm max})^alpha cdot x_{rm max} quadquad (x geq 0)

つまり、6段階評価の「真ん中」と「右端」、「左端」の数値は固定しながら、それをつなぐ線をひとりひとりの回答の偏りに応じて変化させています。係数alphaは、「右半分の算術平均が+1、左半分の算術平均が-1」となるバランスを目指して、最適化のアルゴリズムを使って見つけ出しています。(固定点の条件さえ満たせばこの式以外であってもよいわけですが、これが最もシンプルな形だと思います。)

もうひとつ重要なtipsとして、「何を重視しているか」を基準にクラスタを生成する際には、ポジティブ(右半分)の評価だけを残し、ネガティブ(左半分)の評価は切り落とす(一律ゼロとする)と、経験上はるかに明確なクラスタが生成されます。

 

<行動情報ケース>

では、行動情報のケースについても考えてみましょう。

同様に、ナイーブな標準化式で変換すると以下のようになります。


画像が見えない場合はこちら

正規分布(normal distribution)であれば、平均値の左右、標準偏差2つ分(2 sigma)までに95.6%が、標準偏差3つ分(3 sigma)までに99.7%が収まります。ですから、このうち《エンゲル係数》はおおよそ正規分布に近い形で収まっていますが、《月間外食費》で+5以上まで、《カード率》で+13以上まで分布が伸びていますから、正規分布に近いと仮定して扱うのは不適切です。これらの極端な飛び値が悪さをして、これではまともなクラスタは生成できません。「外食費が飛び抜けて高い人だけ1%」、「カード利用率がほぼ100%の人だけ1%」のクラスタが出来て、残りの90%以上が一クラスタにまとまってしまって、戦略の地図として役立たずの結果になります。

補正の方法は正解が一つというわけではありませんが、代表的な補正を示しましょう。

まず《月間外食費》。千円の人もいれば、1万円の人、10万円の人もいます。このような分布には対数で評価するのが最も自然でしょう。千円の人と1万円の人の間の間隔は、1万円の人と1万9千円の人の間の間隔と同じではなく、1万円の人と10万円の人の間の間隔が同じとみなすのが自然ですから、単にクラスタ生成の調整というだけでなく、本質的な距離の評価としてもこの手法のほうが優位だと考えるべきです。(注意点として、対数関数はゼロのとき無定義になりますから、千円以下の人は千円とみなすなど、切り捨ての操作が必要になります)


画像が見えない場合はこちら

  f(x) = log x

次に、上記の《カード率》のように0%から100%の間に分布する割合の変数で0に偏ってしまっている場合。この時、0%の人と10%の人の間の間隔は、80%の人と90%の人の間の間隔と同じとは直感的に思えないはずです。この場合は、累乗根の式を使うのが最も自然な補正だと思います。この変換であれば、動かすべきではない「0%の位置」、「100%の位置」は一切変えることなく、分布傾向を整えることができます。


画像が見えない場合はこちら

  f(x) = sqrt[n]{x} = x^{(1/n)}

これらの処理を行ったうえで標準化式を適用すれば、直感的に意図していた通りのクラスタリングができる指数化の出来上がりです。

さあ、これで各変数の指数化が出来ましたから、次に、多数の変数をたばねて「距離」を定義しましょう。

 

■ 5.2 多次元空間の「距離」

多次元空間での「点」と「点」との間の「距離」の定義を考えましょう。多次元というと、1次元は直線、2次元は平面、3次元は立体空間、4次元はドラえもんのポケット・・・人間の頭の中で想像できるのは3次元が限界ですが、定義は10次元でも100次元でも同じです。分かりやすく三次元で書いてみましょう。

 

<ユークリッド距離>

最も馴染みやすい「距離」の定義は「ユークリッド距離 (Euclidean distance)」でしょう。つまり、中学校で「三平方の定理(ピタゴラスの定理)」として習った距離の計算式です。数式で書くなら、点p_1 (x_1, y_1, z_1)、点p_2 (x_2, y_2, z_2)の間のユークリッド距離r_E(p_1, p_2)は以下の式になります。

  r_{rm E}(p_1, p_2) = sqrt{ (x_1 - x_2)^2 + (y_1 - y_2)^2 + (z_1 - z_2)^2}


画像が見えない場合はこちら

「k-means」のように距離の大小比較のみを行う場合は、上記の式で平方根を取る計算を省いた「二乗ユークリッド距離 (squared Euclidean distance)」を代わりに利用して計算量を削減できます。なお、距離の絶対値を扱う場合は、「二乗ユークリッド距離」を使用すると、より離れた場合の距離が大きく評価されますので、クラスタはより局所的にまとまりがちになります。

 

<マンハッタン距離>

ユークリッド距離とは異なるものに、「マンハッタン距離 (Manhattan distance)」という定義があります。「マンハッタン」という名前はつまり、日本で言えば京都や札幌の街の「碁盤の目」ということですね。先程と同様に定義式を書くと以下の通り。

  r_{rm M}(p_1, p_2) = |x_1 - x_2| + |y_1 - y_2| + |z_1 - z_2|


画像が見えない場合はこちら

ユークリッド距離とマンハッタン距離の違いを考えてみましょう。原点(0,0,0)から(1,1,1)までの間の距離は、ユークリッド距離では1.73、マンハッタン距離では3.00。つまりこの点は、ユークリッド距離では(2,0,0)より原点に近く、マンハッタン距離では(2,0,0)より原点に遠いことになります。いくつもの軸で差がある場合を「遠い」と評価するか、一つの軸で大きく差がある場合を「遠い」と評価するかによって、距離の定義を選ぶことが出来ます。基本的にはユークリッド距離を使い、目的によってはマンハッタン距離を使うことを考えてもよいでしょう。

 

<多次元の罠と次元削減>

あまりに次元の数が多くなってくると、人間の直感では把握しきれない事態が生じます。そこで問題になることがあるのが、多次元空間では距離の差がつきにくくなるという性質です。

100次元の「立方体」にランダムに点を分布させて、その中心点からの距離(ユークリッド距離)を計算すると、分布は以下のグラフのようになります。


画像が見えない場合はこちら

100次元空間では、ほとんどの「隣接している点」が100次元のうち数十次元で中心点からずれているので、距離を計算した値の違いが小さくなってきてしまうのです。この傾向は、1,000次元、10,000次元など数が増えれば増えるほど顕著になってきてしまいます。

この問題を解決するためには、もともと100次元だった情報を、より少ない次元の情報に集約する手法が用いられます。主成分分析(Principal Component Analysis; PCA)を使えば、100個の軸の情報を合成して、なるべく多くの情報を維持して10個や20個の軸に再編することができます。このプロセスを次元削減(dimension reduction)と呼びます。

ただ実際のところ、ビジネスでの大半のケースのように、シンプルなk-meansクラスタリングを数十次元で使う限りは、次元削減のステップを入れなくても結果が大きく狂うことは経験上ほとんどありません。k-meansの手法では、距離の大小比較をするだけで、距離の絶対値を使うプロセスは一度もないわけです。例えば、以下の3次元散布図は、80個の軸を使ってk-meansで生成したクラスタを、3つの主成分を使ってプロットしたものです。立体的にそれぞれのクラスタが分布していることが見て取れます。


画像が見えない場合はこちら

 

■ 5.3 クラスタ数の決定

Last but not least。

「k-meansクラスタリング」も「階層的クラスタリング」も、何個のクラスタに分かれば状態を選べばいいかの情報は与えてくれません。何か別の方法で、ベストなクラスタ数を選ぶ必要があります。そしてこここそ、統計の科学的センスとビジネスの戦略的センスとが交わるところ。

 

<数式による吟味>

数学の補助を借りる手段としては、「階層的クラスタリング」のWard’smethodでも触れた、「エネルギー」の計算式を使うことが出来ます。ここでの「エネルギー」は、全ての点から、その点が属するクラスタのクラスタ中心(そのクラスタのメンバーの算術平均、言いかえれば「重心」)までの距離を計算し、それの二乗を合計したもの、とします。ここで「距離」はユークリッド距離です。この式はつまり、より近い点同士をくくったほうがエネルギーロスが少ない、という状況設定を意味しています。

  E = sumlimits_{k={rm clusters}} sumlimits_i | vec{r_i} - vec{r_{c_k}} |^2

Ward’s methodを使って「階層的クラスタリング」を行うと、「エネルギー」はクラスタを統合してクラスタ数を減らすたびに確実に増えます。「エネルギー」の増分が小さいペアから統合するので、その増分も毎回大きくなります。一方、「k-means法」では、一般的にはクラスタ数が少ないほど「エネルギー」は大きいですが、その増分は必ずしも毎回大きくなるとは限りません。


画像が見えない場合はこちら

このグラフでへこんでいるところ、つまりクラスタ数を減らしてもそれほど「エネルギー」の増分が大きくないところは、より安定している、よりおさまりのよいクラスタになっていると言えます。この例で言えば、右側のk-meansクラスタリングではk=6やk=9、左側の階層的クラスタリングではk=8やk=3が有力と考えられます。これは、ベストなクラスタ数を選択する上でとてもよい参考値になります。(なお、この計算値は、同じクラスタ数の中でも、乱数で生成したk-means法の結果から出来の良いものを選び出すのにも使えます)

この計算を使って筋の良いクラスタ数は選べますが、最終的には、「ビジネス戦略の地図として有効か」、で判断するべきです。

 

<戦略的センスによる吟味>

まず、人間が下す戦略判断を支えられる個数として、適切な範囲は4-10個程度でしょう(動物によっては群れの中の数十匹の個体を一瞥で認識できるそうですが、人間にその能力はありません)。欲を出して対象を細かく分割したくなりがちですが、過度な細分化は混乱のもとです。

また、クラスタ数が多いほど、それぞれのクラスタの特徴の違いを明瞭に把握しにくくなってきます。企業内の様々な部署で顧客クラスタの概念が浸透して活用されるようになるためには、それぞれのクラスタがいきいきとした特徴を持った顧客像と認識されるのが肝心です。顧客クラスタリングでクラスタの違いが明確で処々に矛盾のない結果をまとめられるのは、教科書的に単純にk-means法を適用した場合で4-5個、精緻な調整を重ねる技術があっても十数個が限界です。

「各クラスタが明瞭で、戦略的議論に堪えるか」の判定は、各クラスタについて、(クラスタ生成に使った以外の)戦略を考える際に重視する軸の集計をしてみると簡便にチェックできます。例えば、顧客クラスタリングでは、自社/競合他社からどれを選択するか、が最も重要な情報ですから、各社のシェアがクラスタによって明瞭に異なっているクラスタリング結果がより有効なはずです。

そして、k-means法の直接的な結果である「クラスタ中心の座標」を一覧表として出力してみましょう。それぞれのクラスタの特徴をたちどころに読み取って一言で言い表せるニックネームを付けることが出来れば、そのクラスタは社内に浸透して数年間に渡って力を発揮するポテンシャルを持っているはずです。

 

■ 5.4 <サイエンス編>まとめ

ここまで読んでいただければ、これらの手法は「仕組み」を一度理解しさえすればとてもシンプルなものだと感じていただけたのではないでしょうか。また、その時間を惜しんで、統計ソフトのボタンを押すだけで使えるようになったつもりでいると、意図していないぐちゃぐちゃの結果が出ることのほうが多い、ということも感じていただけたでしょうか。特に、指数化の方法を吟味するくだりや、アルゴリズムのバリエーションから最適な手法を選ぶくだりは、「仕組み」をすっ飛ばして統計ソフトを使っているだけの人には想像もつかないはずです。

実際、マーケティングや市場分析の専門会社などと名乗っている会社にこのような顧客クラスタリングを含む市場分析を発注しても、筆者が目にしたうち半数以上では内実は、科学的思考力とビジネス戦略の基礎を持たない「専門家」が統計ソフトのボタンを押しているだけです。そうすると、「戦略の地図」として全く機能しない分析結果に、口だけは達者な営業マンがこじつけの戦略ストーリーを後付けで飾り付けることになります。高額の対価を受け取る業者の多くがそのような体たらくなのはとても残念に思います。このテキストを書いているのも、カギ括弧つきの「スペシャリスト」たちの玉石混交状態が改善し、同時に発注者側の意思決定権者も「仕組み」を知って見極める目を持つことで、世の中全体としてより高い水準の意思決定が浸透することへの貢献を期待してのものです。「ビッグデータ」に「データサイエンティスト」、「ビジネスインテリジェンス」など横文字用語の普及に専念するばかりで中身がついていかなければ、かえって世の中の失望を招くばかりになりかねません。

これらの「科学的な思考技術」は、企業や行政など、意思決定に関わる人全てに浸透する価値のあるものだと思っています。敢えて大きなことを言えば、今は企業経営者には法律や会計を専攻した方が多いわけですが、それと同程度に、社会的な意思決定に関わる職には自然科学の教養が評価され、MBAの代わりに理学・工学の修士課程を修めるビジネスパーソンが増える・・・そんな時代になれば、「事の軽重」がきちんと評価されず、瑣末な政争が本当に重大な課題(例えば地球温暖化や人口動態、政府財政)に優先してしまう現状に変革をもたらせるかもしれません。ここで書いている一つ一つの手法の企業への浸透も、その小さな一歩となることを願っています。

 

なお、本稿では、科学的基礎を持たない人にも興味を持って読んでいただけるよう、数式をなるべく使わない説明を心掛けています。ですが、実際にこれらの考え方を自在に使いこなすには、科学リテラシーの基礎的な概念に馴れ親しむことも大きな助けとなります。本稿で興味を持っていただいた方は、ぜひご興味の方向性に合った詳しい専門書を探してみてください。その中で理解が難しかった点などは質問としてお寄せいただければ、次回の改稿時に解説を追記する参考にいたします。

 

■ 5.5 FAQ

Q.
中期経営計画の戦略設計のため、アンケート調査によって消費者のクラスタリングを行おうと考えています。サンプル数はどのように考えて設定すればよいでしょうか?

A.
アンケート調査で、定量的な意味を読み取る最小限のサンプル数は、30程度を目安にするとよいと考えます。生成したクラスタそれぞれについて、世代や職業、収入帯、各社のシェアなど、10個程度の要素に分けたときの割合を様々に集計してクラスタの特徴を探ることになるので、ひとつのクラスタにつきその10倍、300程度を確保できるとよいでしょう。クラスタ数を5-7個程度にすることを想定すると、小さめのクラスタで300サンプルになることを考えると、全体では3,000サンプル程度がひとつの目安となります。もちろん、予算に余裕があれば、これより大きな10,000サンプル規模で調査を実施できるとより自由に詳細を分析できる基礎データが手に入ります。逆に、予算に余裕がない場合に精度をある程度犠牲にするなら、1,000サンプル程度でも一定の成果を得られます。
(※誤差論は別の回で詳しく説明します)

 

Q.
消費者のクラスタリングを行ってから1年後、市場にどのような変化が生じたのかを追い掛けるために、初回と同じ設計での調査を実施することを考えています。クラスタの規模の変動、クラスタ内の自社・競合シェアの変動を確認しようと思います。この考え方は正しいでしょうか?

A.
「クラスタの規模の変動」の追跡は、必ずしも適切ではありません。k-means法を使っている限り、クラスタの定義は「クラスタ中心」のみであって「クラスタ境界」ではないことを念頭に置きましょう。数百万人のDBなど極めて大規模な母集団を使用しない限り、あるいは5年や10年経過しての調査でない限り、クラスタの規模を再測定しても、その変分は意味のある変動よりも誤差のほうがずっと大きいはずです。例えば、人口統計で、20代(20-29歳)の人数、30代(30-39歳)の人数の変動を追跡することには意味があります。ですが、中心点にしか意味のない「アラサー」、「アラフォー」の人数の変動を追跡してもあまり意味がありません。一方、「クラスタ内のシェアの変動」は、先の例でも「アラサーの人数の変化」は意味がなくとも「アラサーの人々の好みの変化」は意味があるように、こちらは十分なサンプル数を確保すれば検証の価値はまだあると考えます。ただ、可能であれば、全く同一の母集団を対象とした継続調査の実施を検討するべきです。

 

Q.
消費者のクラスタリングを行う際、まずPCA(またはFA)で最も寄与度の高い成分2つを選んで散布図を描くと、のっぺりと一様に広がってしまい、グループの切れ目のようなものは見られませんでした。この場合は、明確なクラスタが存在しないようなので、この市場の消費者はクラスタ分析に適しない均質な集団だと解釈すべきでしょうか?

A.
消費者のクラスタリングを行う主たる目的は、「市場の戦略的な地図」を作ること、それによって、ニーズが異なる人に対して一様ではない戦略を描くこと、です。散布図が一見一様に分布していたとしても、右寄りの人、左寄りの人で、異なったニーズを持っているはずですから、戦略の分化を放棄して均質な集団として扱わなければいけない理由はありません。例えば、20代、30代、40代、50代、60代の人々は、人数分布で言えばかなり一様に分布しているわけですが、だからといって20代の人も60代の人もひっくるめて均質な集団として単一な戦略を取るべし、とは考えられません。

 

Q.
クラスタリングに用いる変数の選択には、回帰分析(regression)を用いるべきでしょうか?それとも、主観的なビジネスセンスに従って選ぶべきでしょうか?

A.
クラスタリングに用いる変数は、「戦略の地図」の座標そのものです。何を基準に戦略を立てるべきと考えるか、その意思が入って当然だと思います。顧客の行動に基づくか感情に基づくかでも導かれる戦略は変わってきます。その業界に土地勘がない場合は客観的な指標となる回帰分析を使用してもよいとは思いますが、戦略の仮説が多少でもあるならば、それを地図に表せる軸をビジネスセンスで選択するべきだと考えます。
なお、消費者クラスタリングにおいて、顧客価値(CV)(=年間利用金額)に対する回帰分析で変数の振り落としを行う手法をよく見かけますが、これは理解に苦しみます。CV(ないしLTV:生涯顧客価値 Life Time Value)が高いクラスタと低いクラスタに分けるなら、CVが高いクラスタが重要だという結論を導くのが当然ですから、それであれば最初からCVだけを基準にパーセンタイルに分ければよい話で、「戦略の地図」としては機能しません。CVやLTVの代わりに、各社のシェアに対する回帰分析を用いれば、自社が陣取っているクラスタ、他社が陣取っているクラスタと、陣取り合戦の様相になるまさに「戦略の地図」を導くことになりますからまだ有効なはずです。

=====================
《ビジネス×サイエンス》
#02 位置と集団を見抜く

<導入>
   ■ 1. 「位置と集団」のビジネスとサイエンス
<ビジネス編>
   ■ 2. 顧客の地図を描く ~ 顧客クラスタの事例と解答
   ■ 3. 戦略を練るための「地図」思考 ~ 様々な事例と通底する理念
<サイエンス編>
   ■ 4. クラスタ生成の統計アルゴリズム ~ 階層的手法、k-means法
   ■ 5. クラスタを支える数理的概念 ~ 距離の定義、クラスタ数、FAQ (このページ)
=====================