第10章 / STEP 5

線形モデル

複数の変数で予測し、複数の群を一気に比べる:最終章
重回帰分析 偏回帰係数 自由度調整済み R² 多重共線性 分散分析(ANOVA) 交互作用

最終更新:

なぜ線形モデル?
「x が1本」の世界から、現実の複雑さへ

線形モデルとは、知りたい結果をいくつかの要因の足し算で表すモデルのことです。 $$\text{結果} \;=\; \text{定数} \;+\; b_1 \times (\text{要因1}) \;+\; b_2 \times (\text{要因2}) \;+\; \cdots$$

第2章の単回帰は「駅徒歩分 → 家賃」のように、説明変数が1本でした。でも現実の家賃は、広さ・築年数・駅距離…複数の要因で決まります。1本だけで予測すると、他の要因の影響が混ざった歪んだ結論になります。これを解決するのが重回帰分析です。

また、群の数にも壁があります。平均を比べる道具は、第8章の t検定で「2つの群」まででした。第9章では3つ以上の群を扱いましたが、あれはカテゴリデータ(質的データ)の話です。数値の平均を3群以上で比べる手段は、まだ手元にありません。
肥料A・B・Cで収穫量に差があるかを調べたいとき、t検定を3回繰り返せば誤りの確率が膨らみます(第8章 8 の多重検定)。3群以上の平均を一発で比べる道具が分散分析(ANOVA)です。

重回帰も分散分析も、「$y = $ 定数 $+$ 効果の足し算 $+$ 誤差」という同じ形の式で表すので、どちらも線形モデルです。データ分析の実務(要因分析・効果検証・予測)で最もよく使われる道具であり、この章が全10章の集大成になります。

ここまで(第2章・第8章)

説明変数は1本(単回帰)
平均を比べる群は2つまで(t検定)
※ 3群以上を扱えたのは第9章のカテゴリデータだけ

第10章(線形モデル)

説明変数を複数に(重回帰)
平均を比べる群を3つ以上に(ANOVA)
例:広さ+駅徒歩→家賃、肥料A/B/C

1

重回帰分析 🌟

複数の説明変数で y を予測する:「他を固定したときの効果」が読める

① モデル:単回帰の式と比べる

第2章の単回帰は、説明変数 $x$ が1本の直線の式でした。$a$ が切片、$b$ が傾きです。重回帰の式をその下に並べます。

単回帰モデル(第2章)と重回帰モデル
$$\begin{aligned} \text{単回帰:}\quad y &= a + b\,x \\ \text{重回帰:}\quad y &= a + b_1 x_1 + b_2 x_2 + \cdots + b_k x_k + \text{誤差} \end{aligned}$$

切片 $a$ は単回帰と同じです。求め方も単回帰と同じ最小二乗法です(残差二乗和を最小に)。

変わったのは次の3か所です。

単回帰(第2章)重回帰
説明変数$x$ の1本$x_1, x_2, \dots, x_k$ の $k$ 本(番号で区別)
$x$ に掛ける係数$b$:傾き$b_1, b_2, \dots, b_k$:偏回帰係数
誤差書かない書く

偏回帰係数も、中身は傾きです。$b_1$ は $x_1$ の方向の傾き、$b_2$ は $x_2$ の方向の傾きです。ただし「他の変数は動かさず、その変数だけを動かしたときの傾き」なので、英語の partial(部分的な)を訳した「偏」を付けて呼び分けます。この「他を動かさない」が重回帰でいちばん大事なところで、② で詳しく見ます。

誤差は、直線から外れるズレの分です。第2章の $y = a + bx$ は直線そのもので、この $y$ は直線上の予測値でした。でも実際の家賃は直線の上にぴったりは乗らず、上下にずれます。重回帰の式は $y$ を実際の値として書くので、そのズレを誤差として足しています。第2章の残差は、このズレをデータから測ったものです。予測するときはズレの向きが分からないので、誤差を外した式を使います(下の例の式)。

具体例:家賃を「広さ」と「駅徒歩」で予測

家賃(万円)$= 2.1 + 0.12 \times$ 広さ(m²)$- 0.10 \times$ 駅徒歩(分)

広さ 40m²・徒歩10分なら 予測家賃 $= 2.1 + 4.8 - 1.0 = $ 5.9万円です。賃貸データ20件から最小二乗法で求めた式です。

回帰平面を回して見る

図をドラッグすると、好きな角度に回せます。

単回帰の「直線」は、説明変数が2本になると平面になります。ここでいう平面は、うねった曲面ではなくまっすぐな板です(どの向きに切っても断面が直線)。各点(物件)から板までの縦のズレが残差で、その二乗和を最小にする板の傾け方を選びます。$b_1$=広さ方向の勾配、$b_2$=徒歩方向の勾配です。
「線形」は“グラフがまっすぐ”という意味ではない

板が平らなのは、広さも徒歩もそのままの形で1回ずつ足しているからです。もし $(\text{徒歩})^2$ の項を足せば面は反り返りますが、それでも線形モデルです。
線形が指しているのは係数のほうです。$y = $ 定数 $+\, b_1 \times (\cdots) + b_2 \times (\cdots) + \cdots$ と、効果を足し算で組み立てている形のことです(この章の冒頭で「要因の足し算」と言ったのがこれ)。カッコの中身は $x$ でも $x^2$ でも $\log x$ でも構いません。

絵に描けるのは、説明変数2本までです。3本にすると軸は「広さ・徒歩・築年数・家賃」の4次元になり、もう図にできません。式のほうは $+\,b_3x_3$ と足すだけで何本でも伸びます。目で確かめる手段だけが先に尽きます。だからこの先は図の代わりに、係数と出力表(③)を読んで判断します。

② 偏回帰係数の意味:「他を固定して」がキモ

$b_2 = -0.10$ の意味は「広さを一定にしたまま、駅徒歩が1分延びると家賃が平均 0.10万円 下がる」です。偏回帰係数とは「他の変数を固定したときの、その変数だけの効果」のことです。

では「固定」しないと何が起きるのでしょうか。現実のエリアでは駅から遠い物件ほど広い傾向があります。この状態で「徒歩 → 家賃」だけの単回帰を引くと…

全部まとめて1本(徒歩だけの単回帰)→ 傾き +0.18 ⁉ 同じ広さの帯の中 → どの帯も 傾き −0.10 家賃(万円) 5 6 7 8 9 0 5 10 15 20 駅徒歩(分) 広さ 35m² の物件 広さ 50m² 広さ 65m²
駅から遠いほど広い物件が多いエリアです。同じ広さの帯(青い帯)の中だけを見れば、どの帯も徒歩が延びるほど家賃は下がります(−0.10)。ところが帯を無視して全部まとめて1本引くと右上がりです(+0.18)。徒歩の係数に「広さ」が化けて入り込んでいます。第2章の層別した散布図(アイス売上と水難事故を気温で分けた図)と同じ形です。
「他の変数を固定する」=「同じ広さの物件どうしで比べる」です。重回帰の $b_2=-0.10$ は、この帯の中の共通の傾きです。第2章の交絡を、混ざる要因を式に入れることで防いでいます。

③ 出力表の読み方:その係数は「偶然」ではないか(t検定)

第2章の単回帰では、傾きと切片を公式に当てはめて手で計算できました。重回帰ではそれをやりません。説明変数が2本以上あると、係数は連立方程式をまとめて解く形になり、手計算は現実的でないからです。そこで統計ソフト(Excelの分析ツール、R、Python、SPSS など)に計算させ、その計算結果の一覧表を読みます。これを出力表と呼びます。

つまり重回帰で問われるのは「係数を計算できるか」ではなく「出てきた表を読めるか」です。試験でも、この表の一部を空欄にして読ませる形で出ます。各係数には「本当は0(その変数は影響しない)なのでは?」を検定した結果も並びます。

係数標準誤差t 値p 値
切片2.100.852.470.024
広さ(m²)0.120.026.00<0.001
駅徒歩(分)−0.100.04−2.500.023

R² = 0.82 R²adj = 0.80 (n = 20、自由度 $n-k-1 = 17$)

ここで標準誤差は「何のばらつき」でしょうか。第6章で出てきた「標本平均が母平均からどれくらいズレるか」とまったく同じ考え方で、主役が平均から係数に変わっただけです。

この場面の母集団は「そのエリアの物件ぜんぶ」、標本は「たまたま手に入った20件」です。本当に知りたいのは母集団での真の効果 $\beta_2$(母回帰係数)ですが、見えるのは20件から計算した $b_2 = -0.10$ という推定値だけです。もし別の20件だったら、$b_2$ も違う値になります。

同じエリアでも、どの20件が手に入るかで係数は変わる 標本①:手元の20件 b₂ = −0.10 標本②:もし別の20件なら b₂ = −0.13 標本③:また別の20件なら b₂ = −0.06 ↓ 取り直すたびに b₂ はこう散らばる 中心=真の値 β₂(知りようがない) 標本① 標本② 標本③ −0.13−0.10−0.06 標準誤差 0.04
3つとも同じエリアの物件です。でも手に入る20件が違えば直線の傾きも変わり、$b_2$ は $-0.10 / -0.13 / -0.06$ と揺れる(各パネル:横軸=駅徒歩、縦軸=家賃)。この取り直しによるブレの幅(SD 1個分)が標準誤差です。真の値 $\beta_2$ は分布の中心にあるはずですが、我々が手にできるのはそこから1つ抜き出した点だけです。
その「0.04」は何から計算されるのか

式そのものは複雑なのでソフトに任せますが、材料は4つだけです。どれも「この傾き、どれくらい自信を持って引けるか」を左右するものです。

材料標準誤差が小さくなるのは
残差の大きさ
点が板からどれだけ離れているか
点が板の近くに集まっているとき
その変数自身のばらつき
徒歩が2〜18分に散る? それとも10〜12分に密集?
値が幅広く散らばっているとき
散らばりが大きい(2〜18分) 0 10 20 駅徒歩(分) 傾きがほぼ1本に決まる 取り直しても(点線)ほぼ同じ 散らばりが小さい(10〜12分) 0 10 20 駅徒歩(分) 傾きが大きくぶれる 取り直すと(点線)大きく変わる
データ件数 $n$多いとき
他の説明変数との重なり
広さと徒歩がどれだけ似た動きをするか
重なりが小さいとき(→ ⑥ 多重共線性)

裏を返すと、残差がバラつく・$x$ のばらつきが小さい・件数が少ない・他の変数と見分けがつかない ほど傾きは決めにくく、標準誤差は膨らみます。この4つを組み合わせてソフトが出した答えが $0.04$ です。

なお、この4つを1本の式にまとめた形(行列を使う)は準1級以降の範囲です。2級は表に出ている標準誤差を読んで使えれば十分です。

これで $t$ 値を組み立てられます。第8章の型は「(推定値 − 仮説の値)÷ 標準誤差」でした。回帰係数でも骨組みは同じで、中身が入れ替わるだけです。回帰係数の検定で確かめたいのは「この変数は本当は影響しない(真の係数 $\beta_2$ が $0$)のでは?」なので、帰無仮説は $H_0:\ \beta_2=0$ で、仮説の値は $0$ になります。

$t = \dfrac{\text{推定値} - \text{仮説の値}}{\text{標準誤差}}$第8章(母平均)ここ(回帰係数)
推定値標本平均 $\bar{x}$係数 $b_2 = -0.10$
仮説の値$\mu_0$(比べたい平均)$0$(=この変数は影響しない)
標準誤差$s_u/\sqrt{n}$表の「標準誤差」$0.04$
$t$$\dfrac{\bar{x}-\mu_0}{s_u/\sqrt{n}}$$\dfrac{-0.10-0}{0.04} = -2.5$

出力表の $t$ が「係数 ÷ 標準誤差」という単なる割り算に見えるのは、引くべき仮説の値が $0$ だからです($-0.10 - 0 = -0.10$ で、分子に係数がそのまま残る)。自由度は $n-k-1$ です。推定した係数の本数だけ目減りします。

この表で必ず見る3つ
  1. t 値=「0 から標準誤差 何個分 離れているか」。$t = \text{係数} \div \text{標準誤差}$ で作る(例:$0.12 \div 0.02 = 6.0$)。試験では表の一部を隠して計算させる形が頻出。
  2. 有意判定:p値 $< 0.05$(または $|t|$ が t分布の臨界値超え)なら「係数は0でない」=その変数は影響している。上の例は広さ・徒歩とも有意。
  3. 回帰全体の F検定:「すべての係数が0(モデル全体が無意味)」を帰無仮説とする検定も併記される(例:F = 38.7、p < 0.001 → モデル全体として有意)。個々の係数の t検定と、全体の F検定はセットで見る。
説明変数が家賃に「影響している」と言うとき、意味は2つあります。 ひとつは偶然ではないかどうか(=有意か。いま見た t値・p値)です。もうひとつはどれが一番大きいか(=⑤の標準化偏回帰係数)です。表から読めるのは前者だけで、後者は自分で作ります。

単回帰なら、傾きの標準誤差は手で計算できる

説明変数が1つの単回帰なら、重回帰の偏回帰係数で気にしていた「他の説明変数との重なり」は、相手がいないので消えます。残りの3つ(残差の大きさ、$x$ のばらつき、データ件数 $n$)だけから計算できます。これだけなら複雑ではないので、ソフトに頼らず手で計算できます。第2章で求めた傾き $b$ に、ここで学んだ「標準誤差で割って $t$ にする」を当てはめると、傾きの検定と信頼区間が作れます。

単回帰の傾き $b$ の標準誤差・検定・信頼区間
$$\text{SE}(b) = \frac{s_e}{\sqrt{\sum (x_i-\bar{x})^2}}, \qquad s_e = \sqrt{\frac{\sum e_i^2}{n-2}}$$ $$t = \frac{b - 0}{\text{SE}(b)} \;\;(\text{自由度}\ n-2), \qquad b \pm t_{0.025,\,n-2}\,\text{SE}(b)$$
  • $e_i$:$i$ 番目の残差($y_i - \hat{y}_i$)。e は error の頭文字で、第5章のポアソン分布に出てきたネイピア数 $e$(≈2.718)とは別物
  • $s_e$:残差の標準偏差(残差平方和を $n-2$ で割った平方根)。$n-2$ は、重回帰の自由度 $n-k-1$ に $k=1$ を入れたもの(傾き1本と切片の2つを推定したぶん減る)
  • $\sum(x_i-\bar{x})^2$:$x$ のばらつき

式を見ると、上の表の材料がどう効くかを確かめられます。残差の大きさ $s_e$ は分子にあるので、小さいほど標準誤差は小さくなります。$x$ のばらつき $\sum(x_i-\bar{x})^2$ は分母にあるので、大きいほど標準誤差は小さくなります。データ件数 $n$ も、$\sum(x_i-\bar{x})^2$ が $n$ 個の足し算であるという形で分母に入っていて、件数が増えるほど標準誤差を小さくします。

具体例:5点のデータで傾きは「偶然」ではないか

$x = 1,2,3,4,5$、$y = 2,4,5,4,5$ です。第2章の公式で $b = 0.6$、$a = 2.2$($\bar{x}=3,\ \bar{y}=4$)になります。
・予測値 $\hat{y} = 2.8,\ 3.4,\ 4.0,\ 4.6,\ 5.2$、残差 $e = -0.8,\ 0.6,\ 1.0,\ -0.6,\ -0.2$
・残差平方和 $\sum e_i^2 = 0.64+0.36+1.00+0.36+0.04 = 2.4$ → $s_e = \sqrt{2.4/3} \approx 0.894$
・$\sum(x_i-\bar{x})^2 = 4+1+0+1+4 = 10$ → $\text{SE}(b) = 0.894/\sqrt{10} \approx 0.283$
・$t = 0.6 / 0.283 \approx 2.12$。自由度 $3$ の $t_{0.025,3} = 3.182$ なので $|2.12| < 3.182$、棄却できません。
・95%信頼区間:$0.6 \pm 3.182 \times 0.283 = 0.6 \pm 0.90$ → $[-0.30,\ 1.50]$。区間に $0$ が入っています。
→ 右上がりに見えても、5点では「傾きが $0$ ではない」とは言い切れません。データを増やせば $\sum(x_i-\bar{x})^2$ が大きくなり、標準誤差が縮んで判定できるようになります。

※ 単回帰では「傾き $b=0$」「相関係数 $\rho=0$」「回帰全体の $F$ 検定」の3つは同じ検定で、結論は必ず一致します($t^2 = F$)。出力表に3つ並んでいても、見ている中身は1つです。

④ R² と 自由度調整済み R²:変数を増やすほど R² は「必ず」上がる罠

上の表の下に添えられていた $R^2 = 0.82$ が、第2章の決定係数(説明できる変動の割合)です。単回帰では、$x$ を見ずに全員を平均 $\bar{y}$ と予測する水平な直線で残差を取ったときと比べて、回帰直線で残差を取ったときにどれだけマシになるかを測る指標でした。

重回帰でも考え方は同じです。説明変数が2本になると、比べる相手の水平な直線は、高さ $\bar{y}$ の水平な平面になります。この水平な平面で残差を取ったときと比べて、回帰平面で残差を取ったときにどれだけマシになるかが、重回帰の $R^2$ です。

水平な平面と回帰平面で、残差を比べる

ボタンで板を切り替えると、残差の棒の長さが変わります。図はドラッグで回せます。

水平な平面での残差の2乗の合計–
回帰平面での残差の2乗の合計–
$R^2 = 1 - \dfrac{\text{回帰平面での合計}}{\text{水平な平面での合計}}$–
①の図と同じ10件の物件です。回帰平面に替えると残差の合計がどれだけ減るか、その減った割合が $R^2$ です。

ただし、重回帰の $R^2$ には重大な罠が1つあります。説明変数を増やすと、それがゴミ変数でも R² は絶対に下がらないのです。

自由度調整済み決定係数(adjusted R²)
$$R^2_{adj} = 1 - (1 - R^2)\,\frac{n-1}{n-k-1} \qquad (k = \text{説明変数の数})$$

変数を増やす($k$↑)と分数 $\frac{n-1}{n-k-1}$ が大きくなります。これが罰則です。R² の上昇が罰則に見合わなければ $R^2_{adj}$ は下がります。

数値で確認:ゴミ変数「サイコロの目」を足すと(n=20)
モデルkR²R²adj
広さ+徒歩20.8200.799
広さ+徒歩+サイコロの目30.823 ↑0.790 ↓

R² は上がった(ノイズに合わせただけ)のに R²adj は下がった → ゴミ変数だと見抜けます。モデル比較には R²adj を使います。

⑤ どの変数の影響が一番大きいか:標準化偏回帰係数

出力表の係数は 広さ $0.12$、駅徒歩 $-0.10$ です。数字だけならほぼ互角に見えます。でも $0.12$ は「1m² あたり」、$-0.10$ は「1分あたり」です。単位が違うので、この2つを並べても意味がありません(円とドルを数字だけで比べるのと同じ)。

比べるには共通の通貨に両替します。使うのは SD(標準偏差)です。第1章の標準化と同じく、「SD 何個分か」で数えれば単位が消えます(SD は広さなら10m²、駅徒歩なら5分)。どの変数も「SD 1個分動かすと、家賃が SD 何個分動くか」に揃えれば、はじめて勝負がつきます。

標準化偏回帰係数
$$\beta_j \;=\; b_j \times \frac{s_{x_j}}{s_y}$$

$s_{x_j}$=その説明変数のSD、$s_y$=$y$ のSD です。掛けて割ると単位が打ち消し合い、$\beta$ は単位なしの数になります。

出力表の係数 b(広さ) 0.12 万円 / 1m² × 広さのSD(10m²):広さの単位が消える 広さを SD 1個分動かした効果 1.2 万円 ÷ 家賃のSD(2万円):家賃の単位も消える 標準化偏回帰係数 β(単位なし) 0.60
$\beta$ は2段階の両替です。×(xのSD)で説明変数の単位を消し、÷(yのSD)で y の単位も消します。残るのは「x を SD 1個分動かすと y が SD 0.60個分動く」という、単位のない数だけです。
2本ぶん計算する(このエリアのSD:広さ 10m²/駅徒歩 5分/家賃 2万円)
係数 $b$× 説明変数のSD
=SD 1個分の効果
÷ 家賃のSD(2万円)
= $\beta$
広さ$0.12$$0.12 \times 10 = +1.2$ 万円$+1.2 \div 2 = +0.60$
駅徒歩$-0.10$$-0.10 \times 5 = -0.5$ 万円$-0.5 \div 2 = -0.25$
出力表の係数 |b| 広さ 0.12 駅徒歩 0.10 ✕ 万円/m² と 万円/分 単位が違う:並べても意味がない 標準化した係数 |β| 広さ 0.60 駅徒歩 0.25 ◯ どちらも「SD 何個分」 広さの効果は 駅徒歩の 約2.4倍
左は比べてはいけない棒です(単位が違うのでほぼ互角に見えるだけ)。右は単位を消したあとの棒です。順位も差の大きさも、ここではじめて意味を持ちます。
⭐
$\beta$ は「SD 何個分」という共通のものさしです。符号=影響の向き、絶対値=影響の強さ。 このエリアの家賃は、駅距離より広さで決まる(約2.4倍)と読めます。
$\beta$ はふつう $-1$〜$+1$ に収まり、説明変数が1本のときは第2章の相関係数 $r$ と一致します。出力表に載らないことも多く、そのときは上の式で自分で作ります。

⑥ 多重共線性:説明変数どうしが似すぎていると壊れる

重回帰の代表的な落とし穴です。ここに引っかかると、③の有意判定も⑤の $\beta$ の順位づけも当てになりません。説明変数どうしが強く相関している(例:広さと部屋数、身長と体重)と、②の「他を固定してこの変数だけ動かす」という前提(同じ部屋数のまま広さだけ違う物件)が実データにほとんど存在せず、係数の推定が不安定になります。これを多重共線性(マルチコ)と呼びます。

症状:係数が暴れる・符号が意味不明になる
モデル広さの係数部屋数の係数R²
広さ のみ+0.12―0.74
部屋数 のみ―+1.670.61
広さ+部屋数
(両者の相関 r=0.95)
+0.18−0.90 ⁉0.76

部屋数だけなら「1部屋増えると +1.67万円」なのに、広さと一緒に入れた途端、広さの係数は1.5倍になり、部屋数はマイナスです(部屋が多いほど家賃が安い⁉)。R² はほぼ変わらないのに係数だけ暴れます。ほぼ同じ情報を持つ2本が互いの効果を奪い合うためです。

広さと部屋数の板を、3Dで比べる

上の表の20件です。ボタンで3つのモデルの板を切り替えます。図はドラッグで回せます。

この板の $R^2$–
⚠️ 見抜き方と対処

兆候:説明変数間の相関が非常に高い/R² は高いのに個々の係数が有意にならない/変数の出し入れで係数が激変します。
対処:意味の重なる変数はどちらか一方に絞る、または合成します(例:広さだけ使う)。「変数は多いほど良い」は誤りです。R²adj と併せて、少数の影響の大きい変数に絞るのが基本です。

⑦ ダミー変数:「南向きかどうか」を回帰に入れる

広さや駅徒歩は数値なのでそのまま式に入れられました。では「南向きかどうか」「駅がJRか私鉄か」のような質的変数はどうするのでしょうか。答えは単純で、0 と 1 に置き換えて数値のふりをさせるだけです。この 0/1 の変数をダミー変数と呼びます。

ダミー変数を入れた重回帰
$$\hat{y} = a + b_1 x_1 + b_2 x_2 + b_3 D, \qquad D = \begin{cases}1 & \text{南向き}\\ 0 & \text{それ以外}\end{cases}$$

$D=0$ のときは式から $b_3 D$ が消え、$D=1$ のときは $b_3$ がそのまま足されます。つまり $b_3$ は「広さと徒歩が同じ物件どうしで比べたとき、南向きだと家賃がいくら違うか」です。

ダミー変数は「同じ傾きの板を、b₃ だけ持ち上げる」

説明変数2つ+ダミー変数1つまでなら、まだギリギリ3Dで図解できます(笑)

図をドラッグすると、好きな角度に回せます。

具体例:家賃の式に「南向き」を足す
係数標準誤差t 値p 値
切片1.900.802.380.030
広さ(m²)0.120.026.00<0.001
駅徒歩(分)−0.100.04−2.500.024
南向き(D)0.500.202.500.024

読み方は数値の変数と同じです。「広さと駅徒歩が同じなら、南向きの物件は家賃が $0.50$ 万円高い」で、$t=2.50$ なので偶然とは考えにくい差です。予測にも同じ式を使います。$60\,\text{m}^2$・駅徒歩 $10$ 分・南向きなら $1.90 + 0.12\times 60 - 0.10\times 10 + 0.50\times 1 = 8.6$ 万円、南向きでなければ $D=0$ で $8.1$ 万円です。

⚠️ カテゴリが3つ以上のときは「カテゴリ数 − 1 個」のダミー

沿線が「JR・私鉄・地下鉄」の3種類なら、ダミー変数は $D_{\text{私鉄}}$ と $D_{\text{地下鉄}}$ の2つだけ作ります。どちらも $0$ の物件が JR です(これを基準カテゴリと呼びます)。3つとも作ると「3つの合計は必ず $1$」という完全な重なりが生まれ、⑥ の多重共線性が起きて係数が決まらなくなります。各係数は「基準カテゴリと比べていくら違うか」を表します。

2

分散分析(ANOVA)の考え方 🌟

3群以上の平均を「一発で」比べる:ばらつきを2つに分解する発想

例えば、次のようなシチュエーションを考えます。同じ広さの畑の区画を12個用意し、品種も水やりもそろえて、変えるのは肥料(A・B・C)だけにします。どの区画にどの肥料を使うかはくじ引きで決めます(第3章の無作為化)。育ったら、区画ごとの収穫量を量ります。

同じ広さの区画12個。違うのは肥料だけ 肥料A 47 kg 肥料C 61 kg 肥料B 54 kg 肥料A 51 kg 肥料B 57 kg 肥料A 49 kg 肥料C 62 kg 肥料B 52 kg 肥料C 58 kg 肥料B 57 kg 肥料A 53 kg 肥料C 59 kg 品種・水やり・日当たりはそろえ、どの区画にどの肥料を使うかはくじ引きで決める(各肥料4区画)

知りたいのは、肥料によって収穫量の平均は変わるのかです。同じ肥料どうしでも 47kg や 53kg とばらつくので、見た目の差が肥料のせいなのか、たまたまなのかを見分ける必要があります。

① なぜ t検定の繰り返しではダメか

肥料A・B・Cで収穫量に差があるかを調べるために、t検定で「AvsB、BvsC、AvsC」と3回検定すると、第8章 8 で見た多重検定の問題が起きます。本当は差がなくても、どれか1つが偶然有意になる確率は $1-(1-0.05)^3 \approx$ 14.3% に膨らみます(群が増えるほど悪化:5群なら10回比較で約40%)。

そこで分散分析では、個別に比べるのをやめ、「すべての群の平均は等しい」をまるごと1つの $H_0$ にして、1回の検定で判定します。その道具が意外にも「ばらつき(分散)の比較」なので、分散分析と呼びます。

② ばらつきを「群間」と「群内」に分解する

データ全体のばらつきは、よく見ると2種類の混合です。各データの全体平均からのズレを、群平均を経由して2段に分けると:

(データ − 全体平均) = (群平均 − 全体平均) + (データ − 群平均)
全体のばらつき = 群間のばらつき(群の違いの効果) + 群内のばらつき(個体差・誤差)
50 55 60 収穫量(kg) 全体平均 55 肥料A 肥料B 肥料C 肥料Cの平均 60 この区画 62kg(全体平均より +7) 群内のズレ +2(個体差・誤差) 群間のズレ +5(肥料Cの効果) 1つのデータのズレを2段に分解する(肥料Cのある区画の例) 62 − 55 = (60 − 55) + (62 − 60) → 全データで2乗和にしても、この分解が成立する

③ F統計量:「群の違い」が「個体差」の何倍か

群の違いが本物かどうかを見るには、②の図の群間のズレと群内のズレが、データ全体でそれぞれどれくらいの大きさかを、1つの数にまとめて比べます。

ただ、ズレにはプラスとマイナスがあるので、そのまま足すと打ち消し合って0になってしまいます。そこで第1章で分散を作ったときと同じく、2乗してから足します。群間のズレを全データで2乗して足したものを群間の平方和 $SS_{\text{間}}$、群内のズレのほうを群内の平方和 $SS_{\text{内}}$ と呼びます。

肥料A 25 × 4 = 100 9+1+1+9 = 20 肥料B 0 × 4 = 0 1+4+9+4 = 18 肥料C 25 × 4 = 100 1+4+4+1 = 10 群間の平方和 = 200 群内の平方和 = 48 ズレを1辺とする正方形を区画ごとに描くと、面積がズレの2乗になる

全データで足すので、同じ肥料の4区画が同じ大きさの緑の正方形を持ち、群間の平方和には群のデータ数(4)が掛かります。

もう1つ、群間と群内では、自由に動けるズレの数が違います。群内のズレは12個ありますが、群ごとに平均を引いているので、自由に動けるのは 12 − 3 = 9個ぶんです。

肥料A −3 +1 −1 +3 肥料B −1 +2 −3 +2 肥料C +1 −2 +2 −1 灰色の区画は、残り3つが決まれば自動で決まる → 自由に動けるのは各群3個ずつ、12 − 3 = 9個

群間のズレは、3つの群平均から全体平均を引くので、3 − 1 = 2個ぶんしかありません(これらが自由度です)。数の多い群内のほうが、合計は自然と大きくなります。そこで、平方和を自由度で割った「1自由度あたりのばらつき」で比べます。これを平均平方と呼びます。

もし $H_0$(全群の平均が等しい=肥料に差なし)が正しければ、群間のばらつきと群内のばらつき(誤差)は、1自由度あたりにならすと同じ程度になります。

ボタンで、群間のズレと群内のズレを切り替えます。

50 55 60 収穫量(kg) 全体平均 55 肥料A 肥料B 肥料C 群間のズレ(全体平均→群平均) 群内のズレ(群平均→各区画) もし H₀ が正しかったら(肥料に差がない世界)
緑(群間):2乗の合計 8 ÷ 自由度 2= 4
青(群内):2乗の合計 62 ÷ 自由度 9≈ 6.9
合計では青のほうがずっと大きいのに、1自由度あたりにすると同じくらい(比は約0.6)

群間が群内に比べて不自然に大きいなら、群の違いは本物です。ばらつきの大きさを比べるときは、差ではなく比をとるのでした。そして、その比が従う分布が第6章の F分布でした。ここでも「群間の平均平方 ÷ 群内の平均平方」という比をとり、F分布で判定します。

F 統計量(一元配置)
$$F = \frac{\text{群間の平均平方}}{\text{群内の平均平方}\strut} = \frac{SS_{\text{間}}/(k-1)}{SS_{\text{内}}/(n-k)\strut} \;\sim\; F(k-1,\ n-k)$$

$k$=群の数、$n$=全データ数。平方和 SS を自由度で割って「1自由度あたり」に揃えてから比をとります。
$H_0$ のもとで F分布(第6章:カイ二乗の比)に従います。

棄却域は右の裾(上側)だけに取ります。群の平均に差があると、分子の群間の平均平方だけが大きくなり、分母の群内の平均平方は差があってもなくても変わらないからです。群の平均の差によって、F値は大きくなる方向にしか動きません。逆に、上の「差がない世界」の図では、F は約0.6でした。$H_0$ が正しければ F は1前後でゆれ、1より小さくなることもよくあります。
なお、F分布を使う検定がいつも片側とは限りません。第8章の等分散の検定は両側です。

体感:2つのつまみで F がどう動くか

F の意味はスライダーでつかむのが早道です。「群平均の間隔」と「群内のばらつき」を別々に動かして、F と判定がどう変わるか見てください。3群×各4区画なので、自由度は (2, 9) です。棄却ラインは、F分布表で読む上側5%点 $F_{0.05}(2,\,9)=4.26$ です。

群平均の間隔: 2.0 群内のばらつき: 1.5
F = ― 判定:―
群間を広げる(緑の平均線が離れる)→ F は増加します。群内を広げる(各群の点が散らばる)→ F は減少します。
同じ平均差でも、個体差が大きいと差は埋もれ、小さいとクッキリ浮かびます。Fは「差 ÷ ノイズ」の感覚です。
3

一元配置分散分析

肥料3種の例で、分散分析表を最後まで埋める

問題:3種の肥料で収穫量に差があるか

肥料A・B・Cを各4区画(計 $n=12$)に無作為に割り当てた収穫量(kg):

肥料収穫量群平均
A4751495350
B5457525755
C6158625960
全体平均55

$H_0$:$\mu_A = \mu_B = \mu_C$(肥料に差なし)/ $H_1$:少なくとも1つの群の平均が異なる。有意水準は $\alpha = 0.05$ です。

① 平方和を2つに分解して計算

群間 SS と 群内 SS

群間 $SS_{間}$(群平均が全体平均55からどれだけ離れているか × 群のデータ数):
$SS_{間} = 4(50-55)^2 + 4(55-55)^2 + 4(60-55)^2 = 100 + 0 + 100 = $ 200
群内 $SS_{内}$(各データが自分の群平均からどれだけ散らばるか):
A群:$(-3)^2+1^2+(-1)^2+3^2 = 20$、B群:$(-1)^2+2^2+(-3)^2+2^2 = 18$、C群:$1^2+(-2)^2+2^2+(-1)^2 = 10$ → $SS_{内} = $ 48

② 分散分析表:試験は「この表の穴埋め」で出る

変動要因平方和 SS自由度 df平均平方 MSF 値
群間(肥料) 200$k-1 = 2$$200/2 = 100$ $\dfrac{100}{5.33} \approx 18.8$
群内(誤差) 48$n-k = 9$$48/9 = 5.33$
全体248$n-1 = 11$―
✅
表の中は「足し算」でつながっています。SS:$200 + 48 = 248$、df:$2 + 9 = 11$ です。だから一部が空欄でも引き算で復元できます。試験の穴埋めはこの性質を使います(例:「全体SSと群内SSだけ与えて群間SSを求めさせる」)。

③ 判定

棄却ラインは、自由度 (2, 9) の上側5%点 4.26 です。
$F = 18.8 > 4.26$ → H₀ を棄却。肥料によって収穫量の平均に有意な差がある。
直感でも:群平均が5kg刻みで離れている(群間MS=100)のに、群内の個体差はわずかです(群内MS=5.33)。「差 ÷ ノイズ」が18.8倍なら偶然では説明できません。

⚠️ ANOVAが言えるのは「どこかに差がある」まで

棄却しても「どの群とどの群に差があるか」までは分かりません(AとBか、BとCか…)。それを調べるのは多重比較法(テューキー法など)の仕事で、2級では「ANOVA=全体で差の有無を判定する検定」と押さえれば十分です。

4

二元配置と交互作用

要因が2つあるとき:「組み合わせの妙」を見抜く

要因を2つ同時に調べたいとき(例:肥料(A/B)× 品種(X/Y))に使うのが二元配置分散分析です。ばらつきを「肥料の効果」「品種の効果」「誤差」…とさらに細かく分解します。ここで新しい概念が1つだけ登場します:

用語:主効果と交互作用

主効果:各要因が単独で持つ効果です(肥料Bは平均して+10kg、品種Yは平均して+5kg、など)。
交互作用:組み合わせによって効果が変わることです。「肥料Bは品種Xにだけよく効く」のような、足し算では説明できない部分です。

交互作用の有無は、折れ線グラフの形で一目で判別できます(試験でもこの図の読み取りが出ます):

交互作用なし = 2本がほぼ並行 肥料A 肥料B 収穫量 品種X 品種Y 「肥料Bで+10」がどの品種でも同じ=効果は足し算だけ 交互作用あり = 2本が交差・非並行 肥料A 肥料B 品種X 品種Y 品種Xには肥料Bが効き、品種Yにはむしろ逆効果=組み合わせ依存
横軸=一方の要因、線=もう一方の要因、縦軸=結果の平均。並行なら交互作用なし、交差・非並行なら交互作用ありです。
交互作用があるときは主効果を単独で語れません。右の例で、肥料AとBの差を2品種で平均すると(肥料の主効果)、品種Xでのプラスと品種Yでのマイナスが打ち消し合って、ほとんど差がないように見えます。ですが実際は「Xには効く/Yには逆効果」です。平均がゼロに近いだけで無意味ではありません。交互作用が有意なら、要因の効果は組み合わせごとに読むのが鉄則です。

※ 2級では、二元配置は「主効果・交互作用の概念」と「この折れ線グラフの読み取り」ができれば十分です。平方和の手計算は一元配置まで押さえれば OKです。

5

実験計画法の再訪

第3章のフィッシャー3原則が、分散分析とつながって完結する

第3章で学んだフィッシャーの3原則(反復・無作為化・局所管理)を覚えていますか。あれは「良いデータを集める設計」の話でした。実はあの3原則は、この章の分散分析で解析されることを前提にした設計だったのです:

3原則(第3章)分散分析での役割(第10章)
反復(複数区画)群内のばらつき(誤差 MS)を見積もれるようにする。分母が作れる
無作為化誤差を偏りのない「純粋なノイズ」にする。F検定の前提を保証
局所管理(ブロック化)ブロックを要因としてモデルに入れ、その分のばらつきを誤差から取り除く → 誤差MSが小さくなり検出力が上がる
対応表:実験デザインと解析
デザイン構造解析
完全無作為化法全区画にランダム割り当て一元配置分散分析
乱塊法ブロック内でランダム割り当てブロックを要因に加えた二元配置(交互作用なし)
ラテン方格法行・列2方向のブロック化行・列・処理の3要因で分解
因子計画複数要因の全組み合わせ二元配置以上(交互作用も評価)

※ 2級では「名前・構造・ねらい」を対応づけて選べれば十分です。

これで全10章が一本につながりました。データを要約し(1〜2章)、正しく集め(3章)、確率で不確実性を扱い(4〜6章)、推定し(7章)、検定し(8〜9章)、複数要因のモデルで解析します(10章)。ここまでの道具があれば、統計検定2級はもちろん、実務のデータ分析の土台は揃っています。あとは過去問で仕上げをしましょう。
全10章、完結!
要約(1〜2章)→ 収集(3章)→ 確率(4〜6章)→ 推定(7章)→ 検定(8〜9章)→ 線形モデル(10章)です。
あとは過去問演習で仕上げて、統計検定2級合格を目指しましょう。
全章一覧へ →