クロス集計
Cross Tabulation ・ くろすしゅうけい
2つのカテゴリ変数を行と列に取り、組み合わせごとの件数で関係を読む集計法
✦ 30秒で試す — 航海「感染者の多くは接種者」でも、接種が効かないとは限らない感染した14人のうち9人が接種者。接種は感染を?予想してみる概要
クロス集計は、2つのカテゴリ変数(性別、購入の有無、都道府県のような「種類」を表す変数)を表の行と列に取り、組み合わせごとの件数を数え上げる集計法です。できあがった表はクロス集計表、統計学では分割表(contingency table)と呼ばれます。「男女別に見た商品Aの購入率」「年代別に見た支持政党の割合」のように、アンケート分析やマーケティングで最も頻繁に使われる分析手法のひとつです。
1つの変数の件数を数える度数分布が「この変数はどんな内訳か」を答えるのに対し、クロス集計はそれを2変数に拡張し、「一方の変数によって、もう一方の内訳が変わるか」という関係の有無を答えます。数値どうしの関係を見る散布図や相関係数に対して、クロス集計はカテゴリどうしの関係を見る基本道具、と位置づけると分かりやすいでしょう。
ExcelやスプレッドシートのピボットテーブルやSQLのGROUP BYで日常的に作られているものは、本質的にすべてクロス集計です。高度な統計手法を使う前に、まずクロス集計表を1枚作って眺める — それだけでデータの関係の骨格が見えてくることが少なくありません。手軽なぶん、読み方を誤ると簡単に逆の結論を引き出してしまう道具でもあります。
なぜ生まれたか
19世紀末まで、統計学の関心の中心は身長や収穫量のような「数値」でした。しかし現実の問いの多くは「ワクチンを接種したか/しなかったか」と「発病したか/しなかったか」のように、数値ではなくカテゴリの組み合わせで表れます。カテゴリ変数には平均も相関係数も素直には計算できないため、数値向けの道具がそのまま使えない — この空白を埋めるために、組み合わせの件数を表に整理して関係を読む方法が必要とされました。
これを体系化したのが、20世紀初頭のカール・ピアソンです。彼は1900年に、観測された度数が理論上の度数からどれだけずれているかを測るカイ二乗統計量を発表し、1904年には分割表という形式と、その関連の強さを測る方法を整理しました。「もし2つの変数が無関係(独立)だったら各セルの件数はいくつになるはずか」という期待値と実際の件数のズレを測るカイ二乗検定によって、クロス集計は単なる集計表から「関係があると言ってよいか」を統計的に判断できる分析手法へと発展し、仮説検定の最初期の応用例のひとつになりました。同じ頃、ピアソンの弟子のユールは、表を層に分けると関係が変わりうることにすでに気づいていました。
詳細
表の読み方 — 実数ではなく割合で比べる
クロス集計表には、各セルの件数(観測度数)と、行ごと・列ごとの合計(周辺度数)が並びます。ここで最も重要な作法は、セルの実数をそのまま比べないことです。行ごとに人数が違えば、実数の大小は関係の有無を何も語りません。「行の合計を100%とした割合(行パーセント)」に直して、行どうしで割合を比べる — これがクロス集計の基本の読み方です。
図の例では、実数だけ見ると50代の購入者(90人)が20代(60人)より多く、「50代向けの商品だ」と誤読しかねません。しかし行パーセントに直すと購入率は20代30%、50代15%で、関係は逆です。「原因側(説明したい要因)を行に置き、行方向に100%を取り、列の割合を行間で比べる」と覚えておくと、この誤読を避けられます。
行%と列% — 同じ表から別の問いに答える
割合には、行を100%とする行パーセントと、列を100%とする列パーセントの2通りがあり、それぞれ別の問いに答えます。上の例で「購入」の列を100%とすると、購入者150人のうち50代は90人で60%です。「購入者の6割は50代」は正しい記述ですが、そこから「50代ほど買いやすい」と読むのは誤りで、それは行パーセント(50代の購入率15%)が答える問いです。50代の購入者が多いのは、単に50代の客が多いからにすぎません。
この取り違えは、報告書で最も頻繁に起こるクロス集計の誤りです。「事故を起こした運転者の多くは運転歴10年以上」「感染者の過半数はワクチン接種者」といった列パーセント的な記述は、母数となる集団の大きさを無視すると、リスクの大小について正反対の印象を与えます。表を作るときは、どちらの方向に100%を取ったかを必ず明示し、「〇〇のうち何%が△△か」という文の形で読み上げて、自分の問いと一致しているかを確かめましょう。
関係の有無を検定する — カイ二乗検定
割合の差が見えたとして、それが偶然のばらつきの範囲か、意味のある関係かはどう判断するのでしょうか。ここで使われるのがカイ二乗検定です。発想は単純で、「もし2変数が独立なら、各セルの件数は(行の合計 × 列の合計 ÷ 全体)という期待度数になるはず」と考え、実際の観測度数と期待度数のズレの大きさを合計します。ズレが偶然では説明しにくいほど大きければ「関係がある」と判断する — 仮説検定の枠組みそのものです。アンケート分析で「属性と回答に有意な関連があった」と報告されるとき、その裏側ではたいていこの検定が動いています。
注意したいのは、検定が答えるのは「関係がゼロではないか」だけだという点です。回答者が数万人いれば、実務上どうでもよい1ポイントの差でも有意になります。関係の強さは、割合の差そのものや、クラメールの連関係数のような効果量で別に語る必要があります。
3つ目の変数に注意 — シンプソンのパラドックス
クロス集計の有名な落とし穴が、第3の変数を無視したときに起きるシンプソンのパラドックスです。全体のクロス集計では「治療Aの方が治癒率が高い」のに、重症・軽症に分けて集計し直すとどちらの層でも治療Bの方が高い、という逆転が実際に起こり得ます。原因は、隠れた変数(この例では重症度)が行と列の両方に影響しているためです。重症の患者ほど治療Bを受けやすく、しかも治りにくいなら、全体では治療Bが不利に見えてしまいます。このような第3の変数を交絡因子と呼びます。
気になる関係を見つけたら、関連しそうな第3の変数で層別したクロス集計(3重クロス)を作って関係が保たれるか確かめる — これはクロス集計を使ううえで必須の習慣です。ただし、どの変数で層別すべきかは表の数字だけからは決まりません。層別した結果と全体の結果のどちらを信じるべきかは、変数どうしの因果の向きについての知識で決まり、その判断を助けるのが因果推論の考え方です。
実務での位置づけ — セルの件数を確かめる
クロス集計は尺度水準でいう名義尺度・順序尺度の変数に対する主力の分析手法で、数値変数も年代・価格帯のように区切ってカテゴリ化すれば同じ土俵に載せられます。ただし区切り方しだいで見え方が変わるため、区切りの根拠は明示すべきです。
もうひとつの落とし穴が、周辺度数の小さいセルです。行や列を細かく分けるほど1セルあたりの件数が減り、割合が極端に不安定になります。「70代男性の満足度100%」が実は回答者2人だった、というのはよくある話です。割合を示すときは母数(n)を必ず添え、件数の少ない行はカテゴリを統合するか、「参考値」として扱いましょう。検定でも、期待度数が5未満のセルが多い表ではカイ二乗検定の近似が崩れるため、カテゴリの統合やフィッシャーの正確検定といった対処が定石です。手軽さゆえに乱造されがちな手法だからこそ、「割合の向きを確かめる」「第3の変数を疑う」「セルの件数を確かめる」という3つの規律が結果の信頼性を分けます。
試問
どの表も、行に属性(年代・接種の有無・運転歴)、列に結果(購入した/しない、感染した/しない、事故あり/なし)を置いたクロス集計表だとします。
9つの問いを、答えるのに必要な割合(どこを100%とするか)で仕分けよ
項目を選んでから、入れる箱を選びます
