線形モデル
最終更新:
線形モデルとは、知りたい結果をいくつかの要因の足し算で表すモデルのことです。 $$\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章 7 の多重検定)。3群以上の平均を一発で比べる道具が分散分析(ANOVA)です。
ここまで(第2章・第8章)
説明変数は1本(単回帰)
平均を比べる群は2つまで(t検定)
※ 3群以上を扱えたのは第9章のカテゴリデータだけ
第10章(線形モデル)
説明変数を複数に(重回帰)
平均を比べる群を3つ以上に(ANOVA)
例:広さ+駅徒歩→家賃、肥料A/B/C
重回帰も分散分析も「$y = $ 定数 $+$ 効果の足し算 $+$ 誤差」という線形モデルの仲間です。データ分析の実務(要因分析・効果検証・予測)で最も使われる道具であり、全10章の集大成がこの章です。
重回帰分析 🌟
複数の説明変数で y を予測する:「他を固定したときの効果」が読める
① モデル:単回帰に変数を足すだけ
$b_1, b_2, \dots$ を偏回帰係数と呼びます。求め方は単回帰と同じ最小二乗法です(残差二乗和を最小に)。
家賃(万円)$= 2.1 + 0.12 \times$ 広さ(m²)$- 0.10 \times$ 駅徒歩(分)
広さ 40m²・徒歩10分なら 予測家賃 $= 2.1 + 4.8 - 1.0 = $ 5.9万円です。賃貸データ20件から最小二乗法で求めた式です。
板が平らなのは、広さも徒歩もそのままの形で1回ずつ足しているからです。もし $(\text{徒歩})^2$ の項を足せば面は反り返りますが、それでも線形モデルです。
線形が指しているのは係数のほうです。$y = $ 定数 $+\, b_1 \times (\cdots) + b_2 \times (\cdots) + \cdots$ と、効果を足し算で組み立てている形のことです(この章の冒頭で「要因の足し算」と言ったのがこれ)。カッコの中身は $x$ でも $x^2$ でも $\log x$ でも構いません。
② 偏回帰係数の意味:「他を固定して」がキモ
$b_2 = -0.10$ の意味は「広さを一定にしたまま、駅徒歩が1分延びると家賃が平均 0.10万円 下がる」です。偏回帰係数とは「他の変数を固定したときの、その変数だけの効果」のことです。
では「固定」しないと何が起きるのでしょうか。現実のエリアでは駅から遠い物件ほど広い傾向があります。この状態で「徒歩 → 家賃」だけの単回帰を引くと…
③ 出力表の読み方:その係数は「偶然」ではないか(t検定)
第2章の単回帰では、傾きと切片を公式に当てはめて手で計算できました。重回帰ではそれをやりません。説明変数が2本以上あると、係数は連立方程式をまとめて解く形になり、手計算は現実的でないからです。そこで統計ソフト(Excelの分析ツール、R、Python、SPSS など)に計算させ、その計算結果の一覧表を読みます。これを出力表と呼びます。
つまり重回帰で問われるのは「係数を計算できるか」ではなく「出てきた表を読めるか」です。試験でも、この表の一部を空欄にして読ませる形で出ます。各係数には「本当は0(その変数は影響しない)なのでは?」を検定した結果も並びます。
| 係数 | 標準誤差 | t 値 | p 値 | |
|---|---|---|---|---|
| 切片 | 2.10 | 0.85 | 2.47 | 0.024 |
| 広さ(m²) | 0.12 | 0.02 | 6.00 | <0.001 |
| 駅徒歩(分) | −0.10 | 0.04 | −2.50 | 0.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$ も違う値になります。
式そのものは複雑なのでソフトに任せますが、材料は4つだけです。どれも「この傾き、どれくらい自信を持って引けるか」を左右するものです。
| 材料 | 標準誤差が小さくなるのは |
|---|---|
| 残差の大きさ 点が板からどれだけ離れているか | 点が板の近くに集まっているとき |
| その変数自身のばらつき 徒歩が2〜18分に散る? それとも10〜12分に密集? | 値が幅広く散らばっているとき |
| データ件数 $n$ | 多いとき |
| 他の説明変数との重なり 広さと徒歩がどれだけ似た動きをするか | 重なりが小さいとき(→ ⑥ 多重共線性) |
裏を返すと、残差がバラつく・$x$ のばらつきが小さい・件数が少ない・他の変数と見分けがつかない ほど傾きは決めにくく、標準誤差は膨らみます。この4つを組み合わせてソフトが出した答えが $0.04$ です。
なお、この4つを1本の式にまとめた形(行列を使う)は準1級以降の範囲です。2級は表に出ている標準誤差を読んで使えれば十分です。
これで $t$ 値を組み立てられます。第8章の型は「(推定値 − 仮説の値)÷ 標準誤差」でした。回帰係数でも骨組みは同じで、中身が入れ替わるだけです。
| $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$ です。推定した係数の本数だけ目減りします。
- t 値=「0 から標準誤差 何個分 離れているか」。$t = \text{係数} \div \text{標準誤差}$ で作る(例:$0.12 \div 0.02 = 6.0$)。試験では表の一部を隠して計算させる形が頻出。
- 有意判定:p値 $< 0.05$(または $|t|$ が t分布の臨界値超え)なら「係数は0でない」=その変数は影響している。上の例は広さ・徒歩とも有意。
- 回帰全体の F検定:「すべての係数が0(モデル全体が無意味)」を帰無仮説とする検定も併記される(例:F = 38.7、p < 0.001 → モデル全体として有意)。個々の係数の t検定と、全体の F検定はセットで見る。
単回帰なら、傾きの標準誤差は手で計算できる
重回帰では標準誤差をソフトに任せましたが、説明変数が1つの単回帰なら材料は「残差の大きさ」と「$x$ のばらつき」の2つだけなので、手で計算できます。第2章で求めた傾き $b$ に、ここで学んだ「標準誤差で割って $t$ にする」を当てはめると、傾きの検定と信頼区間が作れます。
$s_e$ は残差の標準偏差(残差平方和を $n-2$ で割った平方根)です。分母の $\sum(x_i-\bar{x})^2$ は $x$ のばらつきで、$x$ が広く散らばっているほど傾きは正確に決まります。自由度が $n-2$ なのは、切片と傾きの2つを推定しているからです。
$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章の決定係数(説明できる変動の割合)です。重回帰でもそのまま使えますが、重大な罠が1つです。説明変数を増やすと、それがゴミ変数でも R² は絶対に下がらないのです。
変数を増やす($k$↑)と分数 $\frac{n-1}{n-k-1}$ が大きくなります。これが罰則です。R² の上昇が罰則に見合わなければ $R^2_{adj}$ は下がります。
| モデル | k | R² | R²adj |
|---|---|---|---|
| 広さ+徒歩 | 2 | 0.820 | 0.799 |
| 広さ+徒歩+サイコロの目 | 3 | 0.823 ↑ | 0.790 ↓ |
R² は上がった(ノイズに合わせただけ)のに R²adj は下がった → ゴミ変数だと見抜けます。モデル比較には R²adj を使います。
⑤ どの変数の影響が一番大きいか:標準化偏回帰係数
出力表の係数は 広さ $0.12$、駅徒歩 $-0.10$ です。数字だけならほぼ互角に見えます。でも $0.12$ は「1m² あたり」、$-0.10$ は「1分あたり」です。単位が違うので、この2つを並べても意味がありません(円とドルを数字だけで比べるのと同じ)。
比べるには共通の通貨に両替します。使うのは SD = そのデータでの「ふつうの1歩」です(広さなら10m²、駅徒歩なら5分)。どの変数も「1歩動かすと、家賃が何歩ぶん動くか」に揃えれば、はじめて勝負がつきます。
$s_{x_j}$=その説明変数のSD、$s_y$=$y$ のSD です。掛けて割ると単位が打ち消し合い、$\beta$ は単位なしの数になります。
| 係数 $b$ | × 説明変数の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$ |
$\beta$ はふつう $-1$〜$+1$ に収まり、説明変数が1本のときは第2章の相関係数 $r$ と一致します。出力表に載らないことも多く、そのときは上の式で自分で作ります。
⑥ 多重共線性:説明変数どうしが似すぎていると壊れる
重回帰の代表的な落とし穴です。ここに引っかかると、③の有意判定も⑤の $\beta$ の順位づけも当てになりません。説明変数どうしが強く相関している(例:広さと部屋数、身長と体重)と、②の「他を固定してこの変数だけ動かす」という前提(同じ部屋数のまま広さだけ違う物件)が実データにほとんど存在せず、係数の推定が不安定になります。これを多重共線性(マルチコ)と呼びます。
| モデル | 広さの係数 | 部屋数の係数 | R² |
|---|---|---|---|
| 広さ のみ | +0.12 | ― | 0.75 |
| 広さ+部屋数 (両者の相関 r=0.95) | +0.35 | −1.10 ⁉ | 0.76 |
部屋数を足した途端、広さの係数が3倍になり、部屋数はマイナスです(部屋が多いほど家賃が安い⁉)。R² はほぼ変わらないのに係数だけ暴れます。ほぼ同じ情報を持つ2本が互いの効果を奪い合うためです。
兆候:説明変数間の相関が非常に高い/R² は高いのに個々の係数が有意にならない/変数の出し入れで係数が激変します。
対処:意味の重なる変数はどちらか一方に絞る、または合成します(例:広さだけ使う)。「変数は多いほど良い」は誤りです。R²adj と併せて、少数の影響の大きい変数に絞るのが基本です。
⑦ ダミー変数:「南向きかどうか」を回帰に入れる
広さや駅徒歩は数値なのでそのまま式に入れられました。では「南向きかどうか」「駅がJRか私鉄か」のような質的変数はどうするのでしょうか。答えは単純で、0 と 1 に置き換えて数値のふりをさせるだけです。この 0/1 の変数をダミー変数と呼びます。
$D=0$ のときは式から $b_3 D$ が消え、$D=1$ のときは $b_3$ がそのまま足されます。つまり $b_3$ は「広さと徒歩が同じ物件どうしで比べたとき、南向きだと家賃がいくら違うか」です。
| 係数 | 標準誤差 | t 値 | p 値 | |
|---|---|---|---|---|
| 切片 | 1.90 | 0.80 | 2.38 | 0.030 |
| 広さ(m²) | 0.12 | 0.02 | 6.00 | <0.001 |
| 駅徒歩(分) | −0.10 | 0.04 | −2.50 | 0.024 |
| 南向き(D) | 0.50 | 0.20 | 2.50 | 0.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$ 万円です。
沿線が「JR・私鉄・地下鉄」の3種類なら、ダミー変数は $D_{\text{私鉄}}$ と $D_{\text{地下鉄}}$ の2つだけ作ります。どちらも $0$ の物件が JR です(これを基準カテゴリと呼びます)。3つとも作ると「3つの合計は必ず $1$」という完全な重なりが生まれ、⑥ の多重共線性が起きて係数が決まらなくなります。各係数は「基準カテゴリと比べていくら違うか」を表します。
分散分析(ANOVA)の考え方 🌟
3群以上の平均を「一発で」比べる:ばらつきを2つに分解する発想
① なぜ t検定の繰り返しではダメか
肥料A・B・Cで収穫量に差があるかを調べるために、t検定で「AvsB、BvsC、AvsC」と3回検定すると、第8章 7 で見た多重検定の問題です。本当は差がなくても、どれか1つが偶然有意になる確率は $1-(1-0.05)^3 \approx$ 14.3% に膨らみます(群が増えるほど悪化:5群なら10回比較で約40%)。
個別に比べるのをやめ、「すべての群の平均は等しい」をまるごと1つの $H_0$ にして、1回の検定で判定します。
その道具が意外にも「ばらつき(分散)の比較」です。だから分散分析です。
② ばらつきを「群間」と「群内」に分解する
データ全体のばらつきは、よく見ると2種類の混合です。各データの全体平均からのズレを、群平均を経由して2段に分けると:
全体のばらつき = 群間のばらつき(群の違いの効果) + 群内のばらつき(個体差・誤差)
③ F統計量:「群の違い」が「個体差」の何倍か
もし $H_0$(全群の平均が等しい=肥料に差なし)が正しければ、群間のばらつきは群内のばらつき(誤差)と同じ程度のはずです。群間が群内に比べて不自然に大きいなら、群の違いは本物です。この「倍率」で判定します。
$k$=群の数、$n$=全データ数。平方和 SS を自由度で割って「1自由度あたり」に揃えてから比をとります。
$H_0$ のもとで F分布(第6章:カイ二乗の比)に従います。大きいほど怪しい → 右裾で棄却します(χ²と同じ片側)。
体感:2つのつまみで F がどう動くか
F の意味はスライダーでつかむのが早道です。「群平均の間隔」と「群内のばらつき」を別々に動かして、F と判定がどう変わるか見てください(3群×各4区画、棄却ラインは $F(2,9)$ の上側5%点 = 4.26)。
同じ平均差でも、個体差が大きいと差は埋もれ、小さいとクッキリ浮かびます。Fは「差 ÷ ノイズ」の感覚です。
一元配置分散分析
肥料3種の例で、分散分析表を最後まで埋める
肥料A・B・Cを各4区画(計 $n=12$)に無作為に割り当てた収穫量(kg):
| 肥料 | 収穫量 | 群平均 | |||
|---|---|---|---|---|---|
| A | 48 | 50 | 52 | 50 | 50 |
| B | 53 | 55 | 57 | 55 | 55 |
| C | 58 | 60 | 62 | 60 | 60 |
| 全体平均 | 55 | ||||
$H_0$:$\mu_A = \mu_B = \mu_C$(肥料に差なし)/ $H_1$:少なくとも1つの群の平均が異なる。有意水準は $\alpha = 0.05$ です。
① 平方和を2つに分解して計算
群間 $SS_{間}$(群平均が全体平均55からどれだけ離れているか × 群のデータ数):
$SS_{間} = 4(50-55)^2 + 4(55-55)^2 + 4(60-55)^2 = 100 + 0 + 100 = $ 200
群内 $SS_{内}$(各データが自分の群平均からどれだけ散らばるか):
A群:$(-2)^2+0^2+2^2+0^2 = 8$ です。B群・C群も同じパターンで各8 → $SS_{内} = $ 24
② 分散分析表:試験は「この表の穴埋め」で出る
| 変動要因 | 平方和 SS | 自由度 df | 平均平方 MS | F 値 |
|---|---|---|---|---|
| 群間(肥料) | 200 | $k-1 = 2$ | $200/2 = 100$ | $\dfrac{100}{2.67} = 37.5$ |
| 群内(誤差) | 24 | $n-k = 9$ | $24/9 = 2.67$ | |
| 全体 | 224 | $n-1 = 11$ | ― |
③ 判定
$F = 37.5 \gg 4.26$ → H₀ を棄却。肥料によって収穫量の平均に有意な差がある。
直感でも:群平均が5kg刻みで離れている(群間MS=100)のに、群内の個体差はわずかです(群内MS=2.67)。「差 ÷ ノイズ」が37.5倍なら偶然では説明できません。
棄却しても「どの群とどの群に差があるか」までは分かりません(AとBか、BとCか…)。それを調べるのは多重比較法(テューキー法など)の仕事で、2級では「ANOVA=全体で差の有無を判定する検定」と押さえれば十分です。
二元配置と交互作用
要因が2つあるとき:「組み合わせの妙」を見抜く
要因を2つ同時に調べたいとき(例:肥料(A/B)× 品種(X/Y))に使うのが二元配置分散分析です。ばらつきを「肥料の効果」「品種の効果」「誤差」…とさらに細かく分解します。ここで新しい概念が1つだけ登場します:
主効果:各要因が単独で持つ効果です(肥料Bは平均して+10kg、品種Yは平均して+5kg、など)。
交互作用:組み合わせによって効果が変わることです。「肥料Bは品種Xにだけよく効く」のような、足し算では説明できない部分です。
交互作用の有無は、折れ線グラフの形で一目で判別できます(試験でもこの図の読み取りが出ます):
※ 2級では、二元配置は「主効果・交互作用の概念」と「この折れ線グラフの読み取り」ができれば十分です。平方和の手計算は一元配置まで押さえれば OKです。
実験計画法の再訪
第3章のフィッシャー3原則が、分散分析とつながって完結する
第3章で学んだフィッシャーの3原則(反復・無作為化・局所管理)を覚えていますか。あれは「良いデータを集める設計」の話でした。実はあの3原則は、この章の分散分析で解析されることを前提にした設計だったのです:
| 3原則(第3章) | 分散分析での役割(第10章) |
|---|---|
| 反復(複数区画) | 群内のばらつき(誤差 MS)を見積もれるようにする。分母が作れる |
| 無作為化 | 誤差を偏りのない「純粋なノイズ」にする。F検定の前提を保証 |
| 局所管理(ブロック化) | ブロックを要因としてモデルに入れ、その分のばらつきを誤差から取り除く → 誤差MSが小さくなり検出力が上がる |
| デザイン | 構造 | 解析 |
|---|---|---|
| 完全無作為化法 | 全区画にランダム割り当て | 一元配置分散分析 |
| 乱塊法 | ブロック内でランダム割り当て | ブロックを要因に加えた二元配置(交互作用なし) |
| ラテン方格法 | 行・列2方向のブロック化 | 行・列・処理の3要因で分解 |
| 因子計画 | 複数要因の全組み合わせ | 二元配置以上(交互作用も評価) |
※ 2級では「名前・構造・ねらい」を対応づけて選べれば十分です。
あとは過去問演習で仕上げて、統計検定2級合格を目指しましょう。