回帰分析
Linear Regression ・ かいきぶんせき
x の値ごとの y の平均を直線で表し、説明と予測に使う基本のモデリング手法
✦ 30秒で試す — 航海背の高い親の子は、親ほどは高くならない子が平均より15cm高いとき、その親は平均より何cm高いと見込める?予想してみる概要
回帰分析は、ある変数 x の値がわかったときに、別の変数 y が「平均して」どれくらいになるかを式で表す手法です。最も基本の形が線形回帰(単回帰)で、y ≈ a + bx という直線を散布図の点の雲に当てはめます。x を説明変数、y を目的変数と呼びます。「親の身長が 180cm の家庭の子は、平均して何 cm か」「気温が1度高い日は、アイスの販売数が平均して何個多いか」——どちらも、x で条件を揃えたときの y の平均を問うています。
大事なのは「平均して」の部分です。同じ x でも y はばらつき、回帰直線はその一つひとつを当てるものではありません。x の値ごとに y を集めたときの平均(条件付き平均)の並びを1本の線で要約したものが回帰直線で、傾き b は「x が1違う2つのグループを比べると、y の平均が b だけ違う」と読みます。相関が関係の強さを −1〜+1 の1つの数で表すのに対し、回帰は関係を y の単位のついた式にし、まだ観測していない x に対する予測を可能にします。
回帰の使いみちは二つあります。一つは予測(x から y を当てる)、もう一つは説明(x と y の関わり方を係数で語る)です。同じ計算でも、どちらの目的かで気をつけるべき点がまったく違います。この区別と、名前の由来である「平均への回帰」の理解が、回帰を正しく使うための二本柱です。直線の係数を求める計算そのものは最小二乗法の記事で扱います。
なぜ生まれたか
直線を当てはめる計算は、19世紀初頭に天文学の最小二乗法としてすでに生まれていました。ただしそこで扱っていたのは「真の軌道 + 観測誤差」——正しい関係が1つあり、ずれは測定のせいだという世界です。二つの量がどちらも自然にばらつき、しかも不完全にしか連動しない関係、たとえば親と子の身長をどう要約すればよいかという問いは、手つかずのまま残っていました。
これに取り組んだのがゴルトンです。1870年代のスイートピーの種の実験と、1886年の論文「遺伝的身長における平凡への回帰」で、彼は親子の身長を表にまとめ、親の身長で区切ったグループごとに子の身長の平均を計算しました。すると、背の高い親の子は平均より高いものの親ほどではなく、背の低い親の子は親ほど低くない。グループごとの平均はほぼ一直線に並び、その傾きは1より小さい——子の世代は平均の方へ「戻る(regress)」のです。ゴルトンはこれを「平均への回帰」と呼び、このグループ平均を結ぶ線が回帰直線の原型になりました。
ゴルトンは当初これを遺伝に固有の力だと考えましたが、やがて子の身長から親を見ても同じように戻ることに気づき、不完全な相関のある2変数ならどこでも起きる統計的な性質だと理解します。弟子のピアソンが相関係数を定式化し、ユールが1897年に回帰直線を最小二乗法で求めるものとして整理したことで、「平均への回帰」という一つの発見は、あらゆる分野で2変数の関係を要約する汎用の道具——回帰分析——として独立していきました。名前に「回帰」が残っているのはこの経緯のためです。
詳細
回帰直線は「条件付き平均の線」
散布図を x の値で細い帯に区切り、帯ごとに y の平均をとってみます。点の雲が楕円形なら、その平均はほぼ一直線に並びます。この「平均の並び」を1本の直線で表したものが回帰直線です。直線の係数は最小二乗法で残差の二乗和を最小にすると得られ、傾きは b = r ×(y の標準偏差 ÷ x の標準偏差)、直線は必ず平均の点 (x̄, ȳ) を通ります。r は相関係数です。
見落とされやすいのが、雲の長軸の向き(SD線。傾き = y の SD ÷ x の SD)と回帰直線の違いです。目で「点の雲に沿った線」を引くと、たいてい長軸に沿った SD線になります。しかし x で条件を揃えた y の平均は、SD線ほど上下に振れません。回帰直線の傾きは SD線の r 倍で、|r| が1未満である限り必ず緩やかになります。
平均への回帰
帯の平均が SD線より緩やかだということは、x で極端な値をとったグループは、y では平均からの隔たりが縮むということです。親と子の身長の相関が 0.5 なら、平均より 10cm 背の高い親のグループの子は、平均して 5cm ほどしか高くありません(親子の平均と SD が同じ場合)。これが「平均への回帰」です。遺伝や何かの力が働いているわけではありません。y が x と不完全にしか連動しない以上、x で選んだ極端さのうち、y と連動していない偶然の部分は引き継がれない——それだけのことです。
下の部品で窓を動かして確かめてください。窓で「背の高い親」を選ぶと、その子たちの平均(金の点)は SD線ではなく回帰直線の上に乗ります。「子の身長で選ぶ」に切り替えると、背の高い子の親もまた平均寄りです。時間を逆向きにしても回帰は起きる、という点が「力ではなく統計的な性質」であることの何よりの証拠です。
背の高い親(平均より +10.2cm)の子は、平均より +5.8cm。親の偏りの 57% しか受け継がず、 金の点は SD線(y=x)ではなく回帰直線の上に乗ります。窓を左の「背の低い親」へ動かすと、今度は上へ戻ります。
点 = 親子300組(親も子も平均170cm・SD7cm、相関0.5)。窓の中の人を選び、その相手側の平均を見る
平均への回帰は、気づかないと因果の錯覚を生みます。前年に好成績だった選手が翌年に成績を落とす「2年目のジンクス」。成績が極端に悪かったときに叱ると次は良くなり、極端に良かったときに褒めると次は悪くなる(だから叱る方が効く、という誤った教訓)。検査で異常値が出た人だけを集めて再検査すると、何もしなくても平均的に数値が改善する。いずれも、極端な値で選んだこと自体が次の値の「戻り」を作っています。治療や施策の効果を測るとき、極端な人だけを対象にした前後比較ではこの戻りが効果に見えてしまうので、同じ基準で選ばれた比較群を置くこと、理想的にはランダム化比較試験で割り付けることが、回帰の錯覚から身を守る基本の設計です。
結果の読み方 — 係数・決定係数・不確かさ
回帰の出力で最初に見るのは傾き(回帰係数)です。「気温が1度高い日は、販売数が平均して b 個多い」と、実際の単位で関係の大きさと向きを語れます。次に見るのが決定係数 R² で、y のばらつきのうち直線で説明できた割合を 0〜1 で表します。単回帰では相関係数の2乗に一致し、r = 0.5 なら R² = 0.25。親の身長だけでは子の身長のばらつきの4分の1しか説明できず、4分の3は残ります。傾きがはっきりしていても、個々の予測は大きく外れうるということです。
係数は標本から推定した値なので、標本が変われば揺れます。その揺れの大きさが傾きの標準誤差で、これをもとに「傾きは偶然 0 でないと言えるか」をt検定で確かめ、傾きの信頼区間で効果の大きさの不確かさを示します。関係の大きさ(係数)・説明力(R²)・不確かさ(標準誤差と区間)の三点セットで読むのが基本の作法です。
予測と説明 — 同じ式、違う問い
予測が目的なら、問うべきは「新しいデータで y をどれだけ当てられるか」です。係数の意味にこだわる必要はなく、手元のデータへの当てはまりではなく、別のデータでの予測誤差で評価します。注意すべきは外挿で、回帰直線が信頼できるのはデータを観測した x の範囲の内側だけです。気温 45 度の日の販売数を、直線を延ばして予測する根拠はありません。
説明が目的なら、傾きを「x を1増やせば y が b 増える」と読みたくなりますが、回帰が表しているのは観測データ上の平均の違いだけです。気温とアイスの販売数の傾きには、気温そのものの効果だけでなく、気温と一緒に動く曜日や行楽の多さ(交絡)も混ざっています。他の変数を同時にモデルに入れて条件を揃えるのが重回帰分析ですが、それでも測っていない交絡は残ります。「x を操作したら y がどう変わるか」という因果の問いに答えるには、ランダム化比較試験や因果推論の設計が必要です。
もう一つ、回帰は対称ではありません。y を x で回帰した直線と、x を y で回帰した直線は別の直線です(上の部品で「子の身長で選ぶ」に切り替えると現れる青緑の線)。どちら向きにも平均へ戻るからで、「何から何を予測したいか」で使う直線が決まります。
前提と落とし穴
最小二乗法は、どんなデータにも機械的に直線を引いてしまいます。結果を信頼するには、関係がおおむね直線的であること、残差のばらつきが x によらずほぼ一定であること、残差どうしが独立であること、そして検定や区間推定をするなら残差がおおむね正規分布に従うことが必要です。これらは当てはめた後に残差を図にして確かめます(残差分析とモデル診断)。平均・分散・相関・回帰直線がすべて同じなのに散布図はまるで違う「アンスコムの数値例」は、数字だけを見て図を見ないことの危うさを示す定番の教材です。
最小二乗法は二乗で罰するため、外れ値が1つあるだけで直線が大きく引きずられることがあります。説明変数を増やす重回帰では、説明変数どうしが強く相関して係数が不安定になる多重共線性という別の落とし穴も加わります。当てはめる前に散布図を描き、当てはめた後に残差を見る——図を見る習慣が、回帰分析を正しく使う最大のコツです。
試問
親と子の身長を300組集めた散布図です(親も子も平均 170cm・標準偏差 7cm、親子の身長の相関は 0.5)。親の身長の範囲を「窓」で選ぶと、その親たちの子の平均身長が分かります。窓の両端や中ほどをつかんで動かし、背の高い子どもたちのグループを作ってください。
背の高い親(平均より +10.2cm)の子は、平均より +5.8cm。親の偏りの 57% しか受け継がず、 金の点は SD線(y=x)ではなく回帰直線の上に乗ります。窓を左の「背の低い親」へ動かすと、今度は上へ戻ります。
点 = 親子300組(親も子も平均170cm・SD7cm、相関0.5)。窓の中の人を選び、その相手側の平均を見る
