ひとことで言うと#
2つの変数を**縦軸と横軸に配置した表(クロス表)**を作り、それぞれの組み合わせでデータの件数や割合を集計する手法。「性別×購入商品」「年代×満足度」のように掛け合わせることで、単純集計では見えない関係性やパターンが浮かび上がる。
押さえておきたい用語#
- クロス表(Cross Table)
- 2つの変数を行と列に配置して、各セルにデータの件数や割合を集計した表のこと。ピボットテーブルで簡単に作成できる。
- 構成比(Composition Ratio)
- 各セルの値を列合計や行合計で割った割合のこと。実数だけでは比較できないため、構成比に変換して初めてセグメント間の差が見える。
- カイ二乗検定(Chi-Square Test)
- クロス表で見つかった差が偶然ではなく統計的に有意かを検証する手法のこと。p値が0.05未満なら有意差ありと判断する。
- 単純集計(Simple Tabulation)
- 1つの変数だけを集計すること。全体の平均や合計はわかるが、属性ごとの違いが見えない。クロス集計はこの限界を補う。
クロス集計の全体像#
こんな悩みに効く#
- アンケート結果を集計したが、全体の平均値だけでは特徴がつかめない
- 「若い人と年配の人で傾向が違うのでは?」という仮説を検証したい
- データはあるが、どう切り口を作ればいいかわからない
基本の使い方#
分析の目的に応じて、掛け合わせる2つの変数を選ぶ。
基本ルール:
- 横軸(列): 原因・属性にあたる変数(性別、年代、地域など)
- 縦軸(行): 結果・行動にあたる変数(購入有無、満足度、利用頻度など)
よくある掛け合わせ:
| 横軸(属性) | 縦軸(行動・結果) | 知りたいこと |
|---|---|---|
| 年代 | 購入チャネル | 年代によって購入経路が違うか? |
| 性別 | 商品カテゴリ | 性別で売れる商品が違うか? |
| 利用頻度 | 満足度 | ヘビーユーザーの方が満足度が高いか? |
| 流入経路 | コンバージョン率 | どの経路が最も成果につながるか? |
2つの変数を掛け合わせた表を作る。
例:「年代 × サービスの認知経路」のクロス集計
| 認知経路\年代 | 20代 | 30代 | 40代 | 50代以上 | 合計 |
|---|---|---|---|---|---|
| SNS | 85人 | 45人 | 12人 | 3人 | 145人 |
| Web検索 | 30人 | 60人 | 50人 | 25人 | 165人 |
| テレビCM | 5人 | 20人 | 40人 | 55人 | 120人 |
| 口コミ | 15人 | 25人 | 18人 | 12人 | 70人 |
| 合計 | 135人 | 150人 | 120人 | 95人 | 500人 |
ツール: Excelのピボットテーブル、Googleスプレッドシート、Python(pandas.crosstab)、BIツール。
実数だけでは各セグメントの規模が異なるため比較しにくい。列方向の構成比に変換する。
| 認知経路\年代 | 20代 | 30代 | 40代 | 50代以上 |
|---|---|---|---|---|
| SNS | 63% | 30% | 10% | 3% |
| Web検索 | 22% | 40% | 42% | 26% |
| テレビCM | 4% | 13% | 33% | 58% |
| 口コミ | 11% | 17% | 15% | 13% |
一目で年代ごとの認知経路の違いが見える:
- 20代はSNSが圧倒的(63%)
- 30〜40代はWeb検索が主力
- 50代以上はテレビCMが最大(58%)
クロス表の差が「偶然ではない」ことを確認するために、**カイ二乗検定(χ²検定)**を行う。
- p値 < 0.05 → 年代と認知経路には統計的に有意な関連がある
- p値 ≥ 0.05 → 偶然の誤差かもしれない(サンプルを増やして再検証)
有意な差が確認できたら、アクションにつなげる:
- 20代向けの施策はSNSに集中投下する
- 50代以上の開拓にはテレビCMが最も効率的
- 30〜40代はSEO対策の強化が有効
具体例#
状況: ECサイトの利用者満足度アンケート(回答者800人)。全体の満足度は75%だが、「どの属性の顧客が不満を持っているか」を特定したい。
クロス集計1: 利用歴 × 満足度
| 満足度\利用歴 | 半年未満 | 半年〜1年 | 1年以上 |
|---|---|---|---|
| 満足 | 60% | 78% | 88% |
| 普通 | 25% | 15% | 10% |
| 不満 | 15% | 7% | 2% |
→ 利用歴が短いほど不満率が高い。新規ユーザーのオンボーディングに問題がある。
クロス集計2: デバイス × 満足度
| 満足度\デバイス | PC | スマホ | タブレット |
|---|---|---|---|
| 満足 | 82% | 68% | 80% |
| 普通 | 12% | 20% | 14% |
| 不満 | 6% | 12% | 6% |
→ スマホユーザーの不満率が倍。スマホ版のUI/UXに課題がある。
3重クロス: 利用歴半年未満×スマホの不満率は22%(最も高い)。
施策と結果: スマホ版UI改善後、スマホ新規ユーザーの不満率が22%→10%に改善。全体満足度が75%→82%に向上。
状況: 年間応募者3,200名の人材紹介会社。採用単価を下げるため、応募経路と職種の関係を分析。
クロス集計: 応募経路 × 職種(構成比)
| 応募経路\職種 | エンジニア | 営業 | 事務 | デザイナー |
|---|---|---|---|---|
| 求人サイト | 25% | 55% | 60% | 20% |
| SNS広告 | 45% | 15% | 10% | 50% |
| 社員紹介 | 20% | 25% | 20% | 15% |
| 自社サイト | 10% | 5% | 10% | 15% |
発見: エンジニアとデザイナーはSNS広告経由が最多だが、営業と事務は求人サイトが圧倒的。
アクション: 職種別に広告予算を再配分。エンジニア採用のSNS広告費を2倍にし、営業採用の求人サイト掲載を強化。採用単価が平均42万円→31万円に削減、年間で約3,500万円のコスト削減。
状況: 50店舗の飲食チェーン。月間売上1.2億円のメニュー構成を最適化するため、POSデータ30万件を時間帯×メニューカテゴリでクロス集計。
クロス集計結果(構成比):
| メニュー\時間帯 | 11-13時 | 13-17時 | 17-20時 | 20-23時 |
|---|---|---|---|---|
| 定食 | 65% | 20% | 30% | 10% |
| 単品 | 15% | 30% | 25% | 45% |
| ドリンク | 5% | 35% | 20% | 35% |
| デザート | 15% | 15% | 25% | 10% |
発見: ランチは定食が65%を占めるが、夜は単品とドリンクが80%。にもかかわらず、仕入れはランチ・ディナー同じ比率で行っていた。
アクション: 時間帯別の売上構成に合わせて仕入れ量を調整。定食用食材の仕入れを朝に集中、単品食材は夕方の追加発注に変更。食材廃棄率が12%→5%に改善、年間約2,800万円のコスト削減。
やりがちな失敗パターン#
- 掛け合わせを闇雲に増やす — 変数が5つあると10通りのクロスが可能だが、全部作っても意味がない。仮説を先に立てて、検証に必要なクロスだけを作る
- 実数だけで比較する — 「20代のSNS経由が85人で最多」と言っても、20代のサンプルが多いだけかもしれない。必ず構成比(%)に変換して比較する
- サンプルが少ないセルの結果を信じる — クロスの各セルに入るサンプル数が少ない(30未満)と、偶然による偏りが大きい。セルあたり30以上のサンプルを確保するか、カテゴリを統合する
- 「差がある」と見えても統計検定をしない — 5ポイント程度の差は偶然の可能性がある。カイ二乗検定で有意差を確認してからアクションに移す
まとめ#
クロス集計は、2つの変数を掛け合わせてデータの関係性を発見する、データ分析の最も基本的で強力な手法。Excelのピボットテーブルだけで実行でき、特別なツールは不要。「全体の数字」だけでは見えない発見が、クロスの切り口を変えるだけで次々と出てくる。まずは「属性×行動」のクロスを1つ作ることから始めよう。