「統計学入門」の2回目です。まず前回の復習ですが、「回帰分析」が「一般化線形モデル」であるということは、一次関数の式で表すことができるということでしょうか。結論から言いますと、「一般化線形モデル(GLM)」は、線形モデルをベースにしながら、「0と1しかないデータ(合格・不合格など)や、件数・確率といった特殊な形式のデータも扱えるように拡張した数理モデル」です。
今回は「重回帰分析(Multiple Regression Analysis)」を扱います。「単回帰分析(Simple Regression)」の「単」が「1つだけ」を表していたのに対して、原因となる変数(説明変数)が「重」なるから「重回帰分析」なのです。たとえば、家賃を予測する時、「駅からの距離」だけで家賃を予測するのが「単回帰分析」であり、「駅からの距離」+「築年数」+「部屋の広さ」で家賃を予測するのが「重回帰分析」です。(ちなみに、この複数の原因(重)を使いつつ、予測する相手を数値ではなく『合格か不合格か(0か1か)』という確率に変えたものを「ロジスティック回帰」と呼びます。)
ここで「シンプソンのパラドックス」にふれておきましょう。これは、統計学において「データを細かく分けたとき(グループごと)の傾向と、データをすべて合算したとき(全体)の傾向が、真逆になってしまう現象」のことです。
ある大学の「理学部」と「文学部」の入試結果を例に見てみましょう。それぞれの学部で、男女の合格率を計算してみます。
理学部
・男性:100人受けて80人合格(合格率 80%)
・女性:10人受けて9人合格(合格率 90%) ★女性の勝ち!
文学部
・男性:10人受けて1人合格(合格率 10%)
・女性:100人受けて15人合格(合格率 15%) ★女性の勝ち!
学部ごとに個別に見ると、理学部でも文学部でも、どちらも女性の方が合格率が高いですね。これだけ見れば「この大学は女性の方が受かりやすいんだな」と思うはずです。
では、両方の学部を合計して、大学全体の合格率を出してみましょう。
男性全体の合格率
・合格者:80人(理)+ 1人(文)= 81人
・受験者:100人(理)+ 10人(文)= 110人
全体の合格率:81÷110≈ 73.6% ★男性の勝ち!?
女性全体の合格率
・合格者:9人(理)+ 15人(文)= 24人
・受験者:10人(理)+ 100人(文)= 110人
・全体の合格率:24÷110≈ 21.8%
なんと、全体を合計した途端に「男性の方が圧倒的に合格率が高い」という真逆の結果になってしまいました。これが「シンプソンのパラドックス」です。なぜこんな不思議なことが起きるのでしょうか。原因は、データの後ろに隠れている「倍率(難易度)の違い」と「受験者数の偏り」です。
理学部は、全体的に合格しやすい学部です。そこには男性が殺到しています。文学部は、全体的に合格しにくい学部です。そこには女性が殺到しています。女性は個別の学部で見れば健闘しているのですが、いかんせん「合格しにくい超難関(文学部)」に大半の人が挑戦しているため、全部をこのように混ぜてしまうと、全体の合格率が引っ張られて低くなってしまうのです。この例における「学部の違い(難易度や受験者の偏り)」のように、データの背景にあって結果を歪めてしまう要因を、統計学では「交絡因子」と呼びます。
もし「性別」だけで合格率を予測(単回帰)しようとすると、データを混ぜてしまうため間違った結論(男性有利)に至ります。しかし、ここに「受ける学部」という2つ目の原因(説明変数)を加えて重回帰分析を行うことで、初めて「学部を固定して比べると、実は女性の方が一貫して合格率が高い」という正しい因果関係が見えてきます。
「シンプソンのパラドックス」を避けて「重回帰分析」にいたる大まかな流れを見ていきましょう。
問題提起: 単回帰(1つの原因)だけだと、「シンプソンのパラドックス」という真逆の結論になる罠に騙されることがある。
解決方法:
① 層別解析(まずは直感的な解決策)
「シンプソンのパラドックス、恐ろしい……。じゃあ、どうすれば騙されずに済むの?」という疑問に対する一番シンプルな解決策は、データをグループごとに小分けにして比べる「層別解析」です。先ほどの「学部ごとに分けて集計する」という直感的な解決方法です。
② 重回帰分析
「なるほど、小分けにすればいいのか。でも、分ける原因が『学部』だけじゃなく『年齢』も『地域』もあったら、表が細切れになりすぎて見きれないよ?」という疑問も出ると思います。手作業の層別解析には限界があります。そこで登場するのが、今回の主役である「重回帰分析」です。データを細切れにせず、複数の要因による影響を数式の中で同時にコントロール(引き算)できる便利さがこの分析の特徴です。
③ 変数選択法(重回帰の実践)
そうすると、 「重回帰分析って便利! じゃあ、精度を上げるために、関係ありそうなデータをとにかく全部詰め込んじゃおう!」と考えるかもしれません。しかしちょっと待ってください。あれもこれもと変数を入れすぎると、数式が複雑になりすぎて予測が狂う(過学習)という別の罠があります。そこで役立つのが、本当に必要な変数だけをコンピューターが選別してくれる「変数選択法」です。また、背景の偏りが強すぎて重回帰でも処理しきれないときのウルトラCとしては「傾向スコア」もあります。
④ 交互作用(重回帰の限界)
「なるほど、適切な変数だけを選んで重回帰分析に入れれば完璧だね!」と言いたくなりますが、最後に、重回帰分析の『落とし穴』も知っておきましょう。重回帰は基本、原因同士を足し算します。しかし現実には、AとBが合わさることで爆発的な効果を生む交互作用(相乗効果)のような掛け算の世界もあります。これがないか疑う視点が、データ分析の次のステップです。
「層別解析」から少し詳しく見ていきましょう。「層別解析」を一言でいうと、「ごちゃ混ぜになっているデータを、共通の特徴を持つ「層(Strata)」に切り分けることで、背景にあるノイズをカットし、純粋な因果関係を浮き彫りにすること」です。先ほど例に挙げた大学の合格率でいうなら、データを全部混ぜて「大学全体」で見るのをやめて、「理学部」と「文学部」という「学部ごとの『層』に分けて分析する行為」そのものを層別解析と呼びます。
「層別解析」は、データをグループごとに力技で細かく切り分けて、それぞれのグラフや表を個別に眺める方法です。直感的で分かりやすいですが、グループが「年齢×性別×地域…」と増えていくと、データが細切れになりすぎて分析できなくなる限界がある直感的・手作業的な解決策です。
そこで登場するのが「重回帰分析」です。「重回帰分析」は、データを切り分けるのではなく、数式の中に「性別」と「学部」を同時に放り込むことで、コンピューターの力で「学部による影響を統計的に引き算(コントロール)して比較する」方法です。これは、原因がいくつあっても同時に処理できる数式を使って自動化・効率化した解決策と言えます。
「シンプソンのパラドックス」を防ぐために色々な変数を集めていくと、「多すぎてどれを使えばいいか分からない」「集められないデータがある」という問題に直面します。それを解決するのが以下の2つです。
- 変数選択法(Variable Selection)
一言でいうと、「山ほどある原因の候補から、予測に本当に役立つ『少数精鋭のメンバー』をコンピューターに自動で選ばせる方法」です。
重回帰分析をするとき、「データは多ければ多いほどいい」と思って、関係ありそうな変数を10個も20個も詰め込むと、数式が複雑になりすぎて予測の精度が逆に落ちたり(過学習)、解釈が難しくなったりします。
そこで、以下のような一定のルール(基準)に従って、コンピューターに「最適な組み合わせ」を探させます。
・ステップワイズ法: 変数を1つずつ足したり引いたりしながら、予測力が最も良くなる組み合わせを自動で探す。
・基準(AIC、BICなど): 「予測の良さ」と「モデルのシンプルさ」のバランスを点数化し、一番コスパの良いモデルを選ぶ指標。
- 傾向スコア(Propensity Score)
一言でいうと、「データの偏りをリセットし、不公平な比較をフェアな比較に直すためのウルトラCの技術」です。
医療やビジネスの現場で「新しい薬の効果(または新施策の効果)」を確かめたいとき、理想はランダムにグループ分けすることですが、現実には「重症の人ほど新薬を飲みたがる」「美意識が高い人ほど新しいサプリを買う」といったデータの偏り(セレクションバイアス)が起きます。これをそのまま重回帰分析にかけるのは、先ほどの「シンプソンのパラドックス」を招く原因になります。
そこで登場するのが「傾向スコア」です。まず、年齢や持病などの情報から、その人が「新薬を飲みそう度(0〜1の確率)」を計算します。これが傾向スコアです。「新薬を飲みそう度 70%」という同じスコアを持つ人同士であれば、実際に「飲んだ人」と「飲まなかった人」をフェアに(背景が同じだとみなして)比較できます。
最後に「重回帰分析」の限界として語られる「交互作用」について説明します。これは一言でいうと「2つの原因が掛け合わさることで、お互いの効果を強め合ったり、逆に打ち消し合ったりする相乗効果(または相殺効果)」のことです。
一般的な重回帰モデルは、基本的に原因同士を「単純な足し算」でつなぎます。そのため、こうした「掛け算的な相乗効果」を見落としてしまうリスクがある、というのが「回帰モデルの限界」という言葉の真意です。
例えば、ビジネスにおいて「広告費」と「セールの実施」が「売上」に与える影響を考えてみましょう。
- 交互作用がない場合(単純な足し算)
・広告を打つと、売上が +50万円 になる。
・セールをやると、売上が +30万円 になる。
・「両方同時にやる」と、50 + 30 = +80万円 になる。
これが、通常の重回帰分析が前提としている世界(線形性)です。それぞれの原因が、お互いに影響を受けることなく独立して効果を発揮しています。 - 交互作用がある場合(相乗効果)
現実のビジネスでは、こうなることが多いはずです。「大々的に広告を打った上で、タイミングよくセールを開催した」としたら、話題が話題を呼んで売上は80万円どころか +150万円 に大化けするかもしれません。広告の効果(+50万)が、セールの実施によって「さらにブーストされた」状態です。
この「2つが揃うことで爆発的な効果が生まれる(あるいは逆に効果が消える)」現象を「交互作用」と呼びます。薬の飲み合わせ(Aの薬とBの薬を一緒に飲むと副作用が強まるなど)をイメージすると分かりやすいかもしれません。
通常の重回帰モデルは、私たちが自発的に「ここは相乗効果がありそうだぞ」と気づいて数式に組み込まない限り、勝手に足し算のモデルとして計算してしまいます。もし裏で強力な交互作用が働いているのに、それに気づかず単純な足し算の重回帰分析を行ってしまうと、「広告の効果は一律でこれくらい」「セールの効果は一律でこれくらい」
という、現実とはズレた、中途半端で的外れな予測式(限界のあるモデル)が出来上がってしまうのです。
「シンプソンのパラドックス(交絡)」が重回帰分析を使うべき理由だったのに対し、この「交互作用」は重回帰分析を使うときの落とし穴(限界)なのです。