① 依序閱讀:每節先讀說明;遇到互動元件時,先預測結果,再操作驗證。 ② 對照來源:章節旁標示課本章節與講義主題,正文保留公式、條件與算例;計算細節、完整實作與證明預設收合,可按需要展開。來源標記可查原教材。 ③ 檢查理解:答錯時先看回饋,再回到相關說明;標為延伸的內容可留待第二輪。 ④ 最後翻關鍵詞彙卡自測術語,並用 重點速查與來源查閱。
教科書:An Introduction to Statistical Learning with Applications in Python(ISLP);
進階參考:The Elements of Statistical Learning(ESL)。章節旁的來源標記可點到本頁書目。
桌上只有一張表:200 個市場,每個市場在電視、廣播、報紙上各花了多少錢 (單位:千美元),以及賣掉多少單位的產品(單位:千個)。四欄、200 列,沒有別的。 ISLP 第 3 章開場就從這張表問出七個問題——而回答它們的工具, 全部都是同一個線性模型。
這一頁的順序就是這些問題的順序。先把「一個 x 對一個 y」講到底 (怎麼估、估得準不準、擬合得好不好),再推到「多個 x 一起放進來」, 最後看這個模型什麼時候會壞掉、什麼時候該換工具。線性迴歸是 1805 年的東西, 但它幾乎是所有現代方法的骨架:第 6 章在它上面加懲罰項、第 7 章換掉基底函數、 第 4 章把它套進連結函數。熟悉這一章的模型與推論方法,有助於理解後續章節。
先看答案。下面這一欄「Advertising 上的答案」全部是課本 §3.4 用實際資料算出來的, 可用來回答這四個問題:
| 問題 | 用什麼回答 | 在哪一節 | Advertising 上的答案 |
|---|---|---|---|
| ① 有關係嗎 | F 檢定 | P04 | F = 570.3,p 值接近 0 → 有 |
| ② 有多強 | RSE、R² | P03 | RSE = 1.69(sales 平均 14.02,約 12% 誤差)、R² = 0.897 |
| ③ 哪些媒體 | 個別 t 檢定 | P02、P04 | TV t = 32.81、radio t = 21.89、newspaper t = −0.18 → 只有前兩個 |
| ④ 條件關聯多大 | 係數與信賴區間 | P02、P04 | TV 每千美元約 +46 單位(CI 0.043–0.049)、radio 約 +189(0.172–0.206)、newspaper 的 CI 是 (−0.013, 0.011),含 0 |
| ⑤ 預測多準 | 信賴區間 vs 預測區間 | P02 | 預測區間一定比信賴區間寬 |
| ⑥ 真的線性嗎 | 殘差圖 | P06 | 殘差有結構 → 不完全是 |
| ⑦ 有非加法關聯嗎 | 交互作用項 | P05 | 加入 TV×radio 後 R² 從 89.7% 跳到 96.8% |
newspaper,
它跟 sales 的關聯是顯著的(t = 3.30、p = 0.00115)。
可是把 TV 與 radio 一起放進模型,它的係數變成 −0.001、t = −0.18,
完全不顯著。資料相同,但控制的變數不同,係數與檢定結果也會改變。
為什麼?答案在 P04 的 Q&A。這也是老師 FAQ 的第 4 題。
「三種媒體裡,哪些跟銷售量有關?」這個問題該看哪個統計量?
先只用一個變數。講義的出發點是一個模型:假設 sales 與 TV 預算的關係是一條直線, 再加上一個誤差項
$$Y = \beta_0 + \beta_1 X + \varepsilon$$$\beta_0$ 是截距、$\beta_1$ 是斜率,兩個都是未知常數,合稱係數或參數; $\varepsilon$ 是誤差項,收集所有直線沒解釋到的部分。講義用四個字母交代對 $\varepsilon$ 的假設, 合稱 LINE:
四條合起來就是講義寫的 $\varepsilon_i$ i.i.d. $\sim N(0,\sigma^2)$,等價於 給定整組 x 之後各 $Y_i$ 相互獨立,且 $Y_i\mid X=x_i\sim N(\beta_0+\beta_1x_i,\ \sigma^2)$: 每一筆 Y 都是以直線上那一點為中心、寬度固定的常態分布。 這四條假設不會一開始全部用到。下表先標出哪個結果需要哪個假設,讀到 P02 與 P06 時再回來對照。
| 要得到的結果 | 需要的假設 | 在哪一節 |
|---|---|---|
| 最小平方解 $\hat\beta_0$、$\hat\beta_1$ | 一條都不需要,純代數 | P01 |
| 無偏:$E[\hat\beta_1]=\beta_1$ | L,加上 $E[\varepsilon\mid X]=0$ | P02 |
| 估計量的變異數 $\mathrm{SE}(\hat\beta_1)^2=\sigma^2/\sum(x_i-\bar x)^2$ | I 與 E(誤差不相關、同變異) | P02 |
| 係數的 t 檢定與信賴區間 | 再加 N;n 大時中央極限定理可放寬 | P02 |
| 新觀測的預測區間 | N 不能放寬:新觀測自己的 ε 要接近常態,樣本再多也平均不掉 | P02 |
| 哪一條壞了、怎麼看出來 | 殘差圖等診斷工具 | P06 |
模型寫好了,但 $\beta_0$、$\beta_1$ 不知道。手上有 n 對觀測值 $(x_1, y_1), \dots, (x_n, y_n)$,要挑一條「最靠近」這些點的線。 「靠近」有很多種定義,但幾乎所有人都用同一個:讓殘差平方和最小。 第 i 筆的殘差是 $e_i = y_i - \hat y_i$,於是
$$\mathrm{RSS} = e_1^2 + e_2^2 + \cdots + e_n^2 = \sum_{i=1}^{n} \left(y_i - \hat\beta_0 - \hat\beta_1 x_i\right)^2$$對 $\hat\beta_0$、$\hat\beta_1$ 各偏微分等於零,解出來就是封閉解——不需要反覆更新參數、 不需要調學習率。這一步只用到代數,上面的 LINE 一條都還沒用到;它們要到 P02 問「這個斜率可信嗎」時才登場:
$$\hat\beta_1 = \frac{\sum_{i=1}^{n}(x_i-\bar x)(y_i-\bar y)} {\sum_{i=1}^{n}(x_i-\bar x)^2}, \qquad \hat\beta_0 = \bar y - \hat\beta_1 \bar x$$第二式順便告訴你一件事:最小平方線一定通過 $(\bar x, \bar y)$。
講義把第一式多寫了一步:把分子的 $(x_i-\bar x)(y_i-\bar y)$ 拆成 $(x_i-\bar x)^2$ 乘上一個比值。
$$\hat\beta_1 = \frac{\sum_{i=1}^{n}(x_i-\bar x)^2\,\dfrac{y_i-\bar y}{x_i-\bar x}} {\sum_{i=1}^{n}(x_i-\bar x)^2} = \sum_{i=1}^{n} w_i\, s_i,\qquad w_i=\frac{(x_i-\bar x)^2}{\sum_{j}(x_j-\bar x)^2},\quad s_i=\frac{y_i-\bar y}{x_i-\bar x}$$$s_i$ 是「從中心點 $(\bar x,\bar y)$ 連到第 i 個資料點」這條線的斜率,每個點各有一條; $w_i$ 非負、加總為 1,所以最小平方斜率就是這 n 條個別斜率的加權平均。 權重是 $(x_i-\bar x)^2$ 佔總和的比例:x 離平均越遠的點,權重越大; 剛好落在 $x_i=\bar x$ 的點權重是 0,它的 $s_i$ 沒有定義,求和時直接略去這些項(或把該項定為 0), 因為它對斜率完全沒有發言權。 這解釋了兩件事:為什麼拖動最右邊的點斜率動得特別厲害(下面的元件可以試), 以及 P06 的槓桿值為什麼長成 $h_i = 1/n + w_i$ 這個樣子。
講義在同一頁補了一句:x 的尺度不影響 $\hat y$ 的估計。 換單位、減掉平均、除以標準差,這些都是線性重新參數化 $x'=(x-c)/s$;代進公式,斜率與截距跟著換算
$$\hat\beta_1' = s\,\hat\beta_1,\qquad \hat\beta_0' = \hat\beta_0 + c\,\hat\beta_1,$$但每一筆的 $\hat y_i$、殘差、RSS、R²、RSE 一個都不變;$s\gt0$ 時斜率的 SE 同比例放大, 斜率的 t 統計量也不變(下一節結尾的標準誤 QUIZ 會再考一次換單位)。 會變的是截距:平移 c 之後 $\hat\beta_0'$ 代表另一個位置的平均,它的 t 檢定問的是另一個問題。 所以在多元迴歸裡不能拿係數大小比較變數重要性;P05 的收合盒會談中心化如何改變截距與交互作用主效應的意義。 對 y 做線性變換 $y'=ay+b$ 同理,擬合值變成 $\hat y'=a\hat y+b$。
令 $x_i'=(x_i-c)/s$,$s\ne0$。則 $\bar x'=(\bar x-c)/s$、$x_i'-\bar x'=(x_i-\bar x)/s$,代入最小平方解:
$$\hat\beta_1'=\frac{\sum_i (x_i'-\bar x')(y_i-\bar y)}{\sum_i (x_i'-\bar x')^2} =\frac{\frac1s\sum_i (x_i-\bar x)(y_i-\bar y)}{\frac1{s^2}\sum_i (x_i-\bar x)^2}=s\,\hat\beta_1,\qquad \hat\beta_0'=\bar y-\hat\beta_1'\bar x'=\bar y-\hat\beta_1(\bar x-c)=\hat\beta_0+c\,\hat\beta_1.$$於是 $\hat\beta_0'+\hat\beta_1'x_i'=\hat\beta_0+c\hat\beta_1+s\hat\beta_1\cdot\frac{x_i-c}{s}=\hat\beta_0+\hat\beta_1x_i=\hat y_i$。 擬合值逐筆相同,殘差、RSS、TSS、R² 與 RSE 因此相同。 標準誤 $\mathrm{SE}(\hat\beta_1')=\hat\sigma/\sqrt{\sum(x_i'-\bar x')^2}=|s|\,\mathrm{SE}(\hat\beta_1)$,與係數同比例放大; $s\gt0$ 時斜率的 t 統計量不變,$s\lt0$ 時只換正負號。截距的 t 統計量一般會變,因為 $\hat\beta_0'=\hat\beta_0+c\hat\beta_1$ 檢定的是另一個位置的平均。
矩陣版更短:任何可逆的線性重新參數化 $X'=XA$(A 可逆)有相同欄空間, 擬合值 $\hat y=X(X^TX)^{-1}X^Ty$ 只依賴欄空間,故不變;係數換成 $\hat\beta'=A^{-1}\hat\beta$。 對 y 作 $y'=ay+b$ 時,含截距的模型把 b 吸進截距欄,得 $\hat y'=a\hat y+b$。
拖動下面元件中的任何一個點,係數、RSS、R² 全部即時重算。 先預測「把最右邊那個點往上拖,斜率會怎麼變」,再動手驗證。
接著把同一件事換個角度看。上面那張圖的橫軸是 x、縱軸是 y; 下面這張圖的兩個軸都是參數:橫軸 β₀、縱軸 β₁, 每一個點代表「一組候選的係數」,等高線代表「這組係數的 RSS 有多大」。 這就是老師 FAQ 裡問的誤差曲面(error surface):
$$\mathrm{RSS}(\beta_0, \beta_1) = \mathrm{RSS}_{\min} + n(\beta_0-\hat\beta_0)^2 + 2\left(\textstyle\sum_i x_i\right)(\beta_0-\hat\beta_0)(\beta_1-\hat\beta_1) + \left(\textstyle\sum_i x_i^2\right)(\beta_1-\hat\beta_1)^2$$這條式子精確描述 RSS,推導只用到最小平方解的兩個性質 $\sum e_i = 0$ 與 $\sum e_i x_i = 0$。它是 β 的二次式, 當 x 不全相同時,誤差曲面是一個碗、等高線是同心橢圓、最小點唯一。 下面的等高線就是照這條式子畫的,而且會跟著上面那張圖的點一起變。
把損失函數看成參數的函數,畫出來就是誤差曲面。座標軸是參數 β₀ 與 β₁,曲面的高度是這組參數在資料 x 與 y 上得到的 RSS。等高線上的每一點 RSS 相同,最佳化就是從某個起點往下走到最低點。
線性迴歸的 RSS 是 β 的凸二次函數。上面那條精確式子就是證據,所以它只有一個最低點,而且對 β 微分等於零後是一組線性方程(正規方程 $X^\top X\beta = X^\top y$)。既然線性方程有封閉解 $\hat\beta = (X^\top X)^{-1}X^\top y$,就沒有必要用梯度下降一步一步爬。
那什麼時候才需要反覆更新參數?① 損失函數不是二次式(邏輯斯迴歸、SVM、神經網路);② n 或 p 太大,$X^\top X$ 這個 $(p+1) \times (p+1)$ 矩陣算不動或存不下;③ 加了不可微的懲罰項(lasso,第 6 章)。這時候才輪到梯度下降、牛頓法、座標下降上場。
看情境,而且兩種寫法的結論幾乎一樣。
實驗設計裡 x 是我們自己設定的(施肥 0、5、10 公斤),把它當常數很自然,模型寫成 $Y \sim N(\beta_0+\beta_1 X,\ \sigma^2)$。觀察性研究裡 x 是跟著樣本一起抽到的(某個市場剛好花了 230.1 千美元),它本來就是隨機的,這時模型要寫成條件分佈 $Y \mid X \sim N(\beta_0+\beta_1 X,\ \sigma^2)$。
為什麼結論一樣?因為我們關心的一直是條件期望 $E[Y \mid X]$——在均方誤差下它就是最好的預測。所有的推論(SE、t、F)都是「固定住觀測到的那組 x」之後做的,也就是條件在 X 上。所以課本裡 SE 的公式長得跟「x 是常數」一樣,這些式子都以觀測到的 x 為條件;在隨機設計中,x 本身仍是隨機的。
差別會在哪裡冒出來?當你想推廣到「新的 x 分佈」時。訓練資料的 x 集中在 0–300,硬要拿去預測 x = 1000 的市場,模型沒有任何資訊支撐。這叫外推(extrapolation),跟 x 是不是隨機無關,但正是因為 x 有它自己的分佈,這件事才需要被提醒。
對 $L=\sum_i(y_i-b_0-b_1x_i)^2$ 微分,得到 $\sum_i(y_i-b_0-b_1x_i)=0$ 與 $\sum_ix_i(y_i-b_0-b_1x_i)=0$。第一式給 $b_0=\bar y-b_1\bar x$;代回第二式並利用中心化和為零:
$$b_1\sum_i(x_i-\bar x)^2=\sum_i(x_i-\bar x)(y_i-\bar y).$$只要 x 不全相同,分母為正,就得到正文斜率與截距。矩陣版令 X 含截距欄,梯度為 $-2X^T(y-Xb)$,所以 $X^TX\hat\beta=X^Ty$。X 滿欄秩時 $X^TX$ 正定,唯一解為 $(X^TX)^{-1}X^Ty$。
令 $e=y-X\hat\beta$,normal equations 給 $X^Te=0$,故對任意 $d=b-\hat\beta$:
$$\|y-Xb\|^2=\|e-Xd\|^2=\|e\|^2+d^TX^TXd.$$交叉項為零,因此最小值確在 $d=0$;展開二維二次型便是正文 RSS 等高線公式。若 X 不滿秩,擬合值仍是 y 在欄空間的唯一投影,但係數未必唯一,不能直接取逆矩陣。
coef std err t P>|t| intercept 34.5538 0.563 61.415 0.0 lstat -0.9500 0.039 -24.528 0.0
lab 用 Boston 的 medv(房價中位數)對 lstat(低社經地位家庭百分比)示範。注意兩件事:① sm.OLS() 不會自己加截距,所以要手動放一欄全是 1 的 intercept;② sm.OLS() 只是指定模型,真正擬合的是 .fit()。斜率 −0.95 的意思是「lstat 每高 1 個百分點,medv 平均低 0.95 千美元」。
Ch03-linreg-lab-zh.ipynb
把資料裡某一個點沿著垂直方向往上移動,最小平方線一定會怎麼變?
實驗可由研究者固定輸入值,例如指定不同施肥量;觀察資料的輸入則可以是隨機抽到的。 兩種情況都可分析。對隨機 X,先給定實際觀察到的 X,使用 $E(\varepsilon\mid X)=0$ 及條件共變異數假設推導。 稱 X 為「independent variable」不代表各個解釋變數互相獨立,也不代表 Y 與 X 獨立。
常態線性模型的誤差可獨立同分布,但各筆 Y 的平均隨 x 改變,所以 Y 通常不是同分布。 在固定 σ 的 Gaussian 概似中,最大化係數概似等價於最小化 RSS;若連 σ 也估計,完整對數概似仍須保留 $-n\log\sigma$ 項。
$\hat\beta_1 = 0.0475$ 這個數字,可信嗎?先弄清楚在問什麼。P01 的模型說真實世界裡有一條看不到的 母體迴歸線(population regression line)
$$Y = \beta_0 + \beta_1 X + \varepsilon$$標準誤與區間還不熟時,可先複習 S4 的標準誤與 信賴區間。
我們只有一份樣本,用它算出來的是最小平方線;換一份樣本,就會得到另一條。 把「換樣本」這件事想成可以重複做很多次:每一次都得到一個 $\hat\beta_1$,這些值排成的分布叫做 抽樣分布(sampling distribution)。估計量是樣本的函數,樣本會變,估計量就有自己的分布; 下面元件下方的直方圖畫的就是它。抽樣分布回答兩個問題:中心在哪裡(有沒有偏)、散得多開(估得準不準)。
中心先講。$\hat\beta_1$ 可以整理成 y 的線性組合:
$$\hat\beta_1=\sum_{i=1}^{n}c_i\,y_i,\qquad c_i=\frac{x_i-\bar x}{S_{xx}},\quad S_{xx}=\sum_{j=1}^{n}(x_j-\bar x)^2$$係數 $c_i$ 只跟 x 有關,而且 $\sum_i c_i=0$、$\sum_i c_ix_i=1$。 把 $y_i=\beta_0+\beta_1x_i+\varepsilon_i$ 代進去,$\beta_0$ 那一項被 $\sum c_i=0$ 消掉、 $\beta_1$ 那一項被 $\sum c_ix_i=1$ 留下,得到 $\hat\beta_1=\beta_1+\sum_i c_i\varepsilon_i$。 在 LINE 的線性假設加上 $E[\varepsilon\mid X]=0$ 下,最小平方估計無偏: 抽樣分布的中心就在 $\beta_1$。不過單獨一條線仍可能偏離母體迴歸線不少,而我們手上就只有一條。
散得多開?這就是標準誤(standard error)要量的東西,也就是抽樣分布的標準差。 由 $\hat\beta_1-\beta_1=\sum_i c_i\varepsilon_i$,用 I 與 E(誤差不相關、同變異 $\sigma^2$)算變異數, $\mathrm{Var}(\hat\beta_1)=\sigma^2\sum_i c_i^2=\sigma^2/S_{xx}$:
$$\mathrm{SE}(\hat\beta_1)^2 = \frac{\sigma^2}{\sum_{i=1}^{n}(x_i-\bar x)^2}, \qquad \mathrm{SE}(\hat\beta_0)^2 = \sigma^2\left[\frac{1}{n} + \frac{\bar x^2}{\sum_{i=1}^{n}(x_i-\bar x)^2}\right]$$第一條式子把「什麼會讓斜率估得準」講完了: 雜訊 σ² 小、樣本多、x 散得開。σ² 通常不知道, 就用殘差算出的 RSE² 估計(下一節會定義 RSE)。下面的示意圖讓你觀察重複抽樣時,估計出的迴歸線如何改變, 下方的直方圖就是 $\hat\beta_1$ 的抽樣分布:
P01 的 N 假設到這裡才派上用場。若 $\varepsilon_i$ 獨立且服從 $N(0,\sigma^2)$,則每個 $y_i$ 是獨立的常態變數, 而獨立常態變數的線性組合仍是常態。所以
$$\hat\beta_1=\sum_i c_i\,y_i\ \sim\ N\!\left(\beta_1,\ \frac{\sigma^2}{S_{xx}}\right),\qquad \frac{\hat\beta_1-\beta_1}{\sigma/\sqrt{S_{xx}}}\sim N(0,1).$$這就是 $\hat\beta_1$ 抽樣分布的完整形狀,不只是中心與標準差。母體 σ 不知道,換成殘差算出的 RSE 之後, 分母多了一個獨立的 $\sqrt{\chi^2_{n-2}/(n-2)}$:常態模型下 $\mathrm{RSS}/\sigma^2$ 服從 $\chi^2_{n-2}$ 且與 $\hat\beta$ 獨立 (矩陣版證明見下方「係數共變異數與 CI/PI」),比值變成自由度 n−2 的 t 分布:
$$\frac{\hat\beta_1-\beta_1}{\mathrm{SE}(\hat\beta_1)}\sim t_{n-2},\qquad \mathrm{SE}(\hat\beta_1)=\frac{\mathrm{RSE}}{\sqrt{S_{xx}}}.$$信賴區間就是把這句話反過來讀:這個比值有 95% 的機率落在 $\pm t_{0.975,\,n-2}$ 之間,整理成 $\beta_1$ 的範圍,得到
$$\hat\beta_1\pm t_{0.975,\,n-2}\,\mathrm{SE}(\hat\beta_1).$$n 超過約 30 之後 $t_{0.975,\,n-2}$ 已經接近 1.96,所以講義直接寫成 $\hat\beta_1\pm2\,\mathrm{SE}(\hat\beta_1)$。 t 檢定則是把 $\beta_1=0$ 代進同一個比值:$t=\hat\beta_1/\mathrm{SE}(\hat\beta_1)$ 讀作「$\hat\beta_1$ 離 0 有幾個標準誤」, $H_0$ 成立時它服從 $t_{n-2}$,所以 |t| 超過 2 左右就落在 5% 的尾巴外。 沒有常態假設時,這個比值在大樣本下仍近似常態(中央極限定理),小樣本則沒有精確的 t 分布。
有了 SE,兩個標準工具就出來了。95% 信賴區間:
$$\hat\beta_1 \pm t_{0.975,\,n-2} \cdot \mathrm{SE}(\hat\beta_1) \;\approx\; \hat\beta_1 \pm 2\,\mathrm{SE}(\hat\beta_1)$$以及假設檢定。虛無假設 $H_0: \beta_1 = 0$(X 與 Y 沒有關係)對上 $H_a: \beta_1 \neq 0$,檢定統計量是
$$t = \frac{\hat\beta_1 - 0}{\mathrm{SE}(\hat\beta_1)}$$它衡量「$\hat\beta_1$ 離 0 有幾個標準誤」。$H_0$ 成立時 t 服從自由度 n − 2 的 t 分佈(為什麼是 t 分布,見上方收合的「線性組合」推導), n 大於約 30 之後跟標準常態幾乎一樣,所以 |t| 超過大約 2 就對應 5% 的顯著水準。 p 值是「假設 $H_0$ 為真,看到這麼極端或更極端的 t 的機率」。 注意它不是「$H_0$ 為真的機率」。
| Advertising 的三個單變數迴歸 | 係數 | SE | t | p 值 | 出處 |
|---|---|---|---|---|---|
| sales ~ TV 的截距 | 7.0326 | 0.4578 | 15.36 | < 0.0001 | 表 3.1 |
sales ~ TV 的 TV | 0.0475 | 0.0027 | 17.67 | < 0.0001 | 表 3.1 |
sales ~ radio 的 radio | 0.2025 | 0.0204 | 9.92 | < 0.0001 | 表 3.3 上 |
sales ~ newspaper 的 newspaper | 0.0547 | 0.0166 | 3.30 | 0.00115 | 表 3.3 下 |
三個單獨看都顯著——包含 newspaper。 P04 會比較這一列在多元迴歸中的變化。課本的 β₀ 信賴區間是 [6.130, 7.935]、 β₁ 是 [0.042, 0.053]:「完全不打廣告時,銷售量平均落在 6130 到 7935 單位之間」。
同一個 $x_0$,模型給出同一個點估計 $\hat y_0=\hat\beta_0+\hat\beta_1x_0$,但它可以回答兩個不同的問題:
講義的簡單迴歸公式把差別寫得很清楚,兩式只差根號裡多了一個 1 (講義把上尾臨界值記成 $t_{\alpha/2}$,本頁統一寫成累積分位數 $t_{1-\alpha/2,\,n-2}$,是同一個正數):
$$\text{CI}:\ \hat y_0\pm t_{1-\alpha/2,\,n-2}\,\hat\sigma\sqrt{\frac1n+\frac{(x_0-\bar x)^2}{S_{xx}}},\qquad \text{PI}:\ \hat y_0\pm t_{1-\alpha/2,\,n-2}\,\hat\sigma\sqrt{1+\frac1n+\frac{(x_0-\bar x)^2}{S_{xx}}}$$| 信賴區間(CI) | 預測區間(PI) | |
|---|---|---|
| 回答的問題 | $X=x_0$ 時 Y 的平均在哪裡 | 一個新個體的 Y 在哪裡 |
| 包含的不確定性 | 只有估計 f 的誤差(可縮減) | 估計 f 的誤差+個體自己的 ε(不可縮減) |
| 寬度 | 較窄;在 $\bar x$ 最窄,往兩側張開 | 一定較寬;同樣在 $\bar x$ 最窄 |
| n 變大時 | 縮到 0:平均可以估到任意準 | 不會縮到 0:最窄也約 $\pm2\sigma$ |
用教材的數字對照。lab 用 Boston 的 medv 對 lstat,
在 lstat = 10 這一點預測值是 25.05,
CI 是 (24.47, 25.63),PI 是 (12.83, 37.28),程式在下方「完整實作」。
課本的 Advertising 版本:TV 花 100,000 美元、radio 花 20,000 美元時預測銷售 11,256 單位,
CI 是 [10,985, 11,528],PI 是 [7,930, 14,580]。兩個區間中心相同,PI 寬了好幾倍,
因為市場與市場之間的 ε 遠比「平均線估不準」大得多。下面的示意元件讓你調 n 與 σ,
看兩條帶各自怎麼變:
完整結果可在原課程 Lab 查閱。
來源:Ch03-linreg-lab-zh.ipynb
array([[17.56567478, 42.04151344],
[12.82762635, 37.27906833],
[ 8.0777421 , 32.52845905]])在 lstat = 10 這一點,預測值都是 25.05,但:信賴區間 (24.47, 25.63) 問的是「所有 lstat = 10 的社區,平均 medv 是多少」;預測區間 (12.83, 37.28) 問的是「某一個 lstat = 10 的社區,medv 是多少」。後者寬得多,因為它還要算進個別觀測值自己的隨機誤差 ε。conf_int(obs=True) 就是切換這兩者的開關。
Ch03-linreg-lab-zh.ipynb
本節的 t 推論與兩種區間,用的正是 P01 列出的 LINE 假設(線性條件平均、獨立常態且同變異的誤差),再加上滿欄秩與正殘差自由度;只有計算最小平方係數本身不需要常態假設。
同一份資料,你把預測變數 x 的單位從「元」換成「千元」(也就是全部除以 1000)。$\hat\beta_1$ 與它的 t 統計量會怎麼變?
若觀測對 $(x_i,y_i)$ 是獨立同分佈,可有放回地抽 n 對資料,重新擬合迴歸,並在同一組固定 x 網格預測。 重複 B 次後,在每個網格點取預測分佈的 2.5% 與 97.5% 分位數,就得到逐點的近似 95% percentile 信賴區間。 它描述平均反應曲線的估計不確定性,沒有自動包含新觀測的誤差,也不是整條曲線同時被涵蓋的 95% 保證。 固定設計或有時間相依的資料須另選適合的重抽方式;自助法的抽樣單位要配合研究設計。 重抽樣章進一步說明標準誤、信賴區間與預測區間的差別。
以下給定滿欄秩 X,包含截距及 p 個預測變數,n>p+1;誤差條件平均為零、共變異數為 $\sigma^2I$。係數共變異數為 $\sigma^2(X^TX)^{-1}$。再加常態誤差,才有有限樣本精確 t 與 F 分布。
$$s^2=\frac{\mathrm{RSS}}{n-p-1},\quad \widehat{SE}(\hat\beta_j)=s\sqrt{[(X^TX)^{-1}]_{jj}}.$$新輸入向量 $x_0$ 包含開頭的 1,令 $h_0=x_0^T(X^TX)^{-1}x_0$。在上述常態模型下:
$$\text{平均反應 CI}:\quad x_0^T\hat\beta\pm t_{1-\alpha/2,n-p-1}s\sqrt{h_0},$$ $$\text{獨立新觀測 PI}:\quad x_0^T\hat\beta\pm t_{1-\alpha/2,n-p-1}s\sqrt{1+h_0}.$$兩個區間的中心相同;預測一個新觀測還要包含它本身的雜訊。
代入 $y=X\beta+\varepsilon$,有 $\hat\beta-\beta=(X^TX)^{-1}X^T\varepsilon$,所以期望為零、共變異數為 $\sigma^2(X^TX)^{-1}$。簡單迴歸中令 $S_{xx}=\sum_i(x_i-\bar x)^2$,可得 $\hat\beta_1-\beta_1=\sum_i(x_i-\bar x)\varepsilon_i/S_{xx}$,變異數為 $\sigma^2/S_{xx}$;截距的變異數為 $\sigma^2(1/n+\bar x^2/S_{xx})$。
帽子矩陣 $H=X(X^TX)^{-1}X^T$ 對稱且冪等,秩為 p+1。殘差為 $(I-H)\varepsilon$,故 $E[\mathrm{RSS}]=\sigma^2\operatorname{tr}(I-H)=(n-p-1)\sigma^2$。常態誤差經正交座標變換後,RSS 除以 $\sigma^2$ 是 n−p−1 個獨立標準常態平方和;投影 H 與 I−H 的座標獨立。因此標準常態係數誤差除以獨立的 $\sqrt{\chi^2_\nu/\nu}$,得到 t 分布。
$x_0^T(\hat\beta-\beta)$ 的變異數為 $\sigma^2h_0$。對新觀測 $Y_0=x_0^T\beta+\varepsilon_0$,獨立的 $\varepsilon_0$ 再增加 $\sigma^2$,預測誤差變異成為 $\sigma^2(1+h_0)$。分別用 s 取代 σ 並套 t 分位數,便得到兩種區間。
檢定過關(「有關係」)之後,下一個問題是「擬合得多好」。 兩個常用的量,一個有單位、一個沒有。
殘差標準誤(residual standard error)估的是誤差標準差 σ, 單位跟 y 一樣:
$$\mathrm{RSE} = \sqrt{\frac{\mathrm{RSS}}{n-p-1}} \qquad(\text{簡單線性迴歸的 } p = 1,\ \text{分母是 } n-2)$$Advertising 用三個媒體的模型 RSE = 1.69,而 sales 的平均是 14.02—— 相對誤差大約 12%。這個「12%」用銷售量的尺度呈現誤差大小。
R² 把它換成無單位的比例。先定義總平方和 $\mathrm{TSS} = \sum(y_i - \bar y)^2$(完全不看 x、只用 $\bar y$ 猜的誤差),則
$$R^2 = \frac{\mathrm{TSS} - \mathrm{RSS}}{\mathrm{TSS}} = 1 - \frac{\mathrm{RSS}}{\mathrm{TSS}}$$讀作「y 的變異有多少比例被模型解釋掉了」。簡單線性迴歸時還有一個關係: $R^2$ 恰好等於 x 與 y 相關係數的平方(這是 ISLP 3.7 第 7 題)。 多元迴歸時它等於 $\mathrm{Cor}(Y, \hat Y)^2$。
| Advertising 上的模型 | RSS | 自由度 n−p−1 | RSE | R² |
|---|---|---|---|---|
只用 TV | 2102.53 | 198 | 3.259 | 0.6119 |
TV + radio | 556.91 | 197 | 1.681 | 0.8972 |
| 三個媒體都放 | 556.83 | 196 | 1.686 | 0.8972 |
只用 radio | 3618.48 | 198 | 4.275 | 0.3320 |
只用 newspaper | 5134.80 | 198 | 5.093 | 0.0521 |
| 什麼都不放(只有截距) | 5417.15 | 199 | 5.218 | 0.0000 |
newspaper 之後:
RSS 從 556.91 只掉到 556.83(幾乎沒動,但它不可能上升,
這是數學上的必然);R² 只升了一點點,四捨五入後仍顯示 0.8972;
可是 RSE 反而從 1.681 上升到 1.686。所以請記住這個性質:在同一訓練集上比較含截距的巢狀最小平方模型時, R² 不會因為加變數而下降, 因此它不能用來比較變數個數不同的模型。要比,就要用會罰複雜度的指標, 或者乾脆用第 5 章的交叉驗證去估測試誤差。
用含截距的最小平方法擬合在同一份資料上時,不可能。因為「只用 $\bar y$ 猜」本身就是這個模型的一個特例($\hat\beta_1 = 0$),而最小平方法挑的是 RSS 最小的那組,所以一定 RSS ≤ TSS,於是 $R^2 \ge 0$。
但下面三種情況它真的會變成負的:
sm.OLS() 不自動加截距是個容易忽略的地方。sklearn 的 .score() 就是這樣算的,看到負值不要以為程式壞了。看到負的 R²,正確的反應是:這個模型比「什麼都不學」還糟,回頭檢查有沒有截距、有沒有算錯資料集、或者根本選錯了模型。
本節 0≤R²≤1 與相關係數平方的性質,使用含截距、在訓練資料上做普通最小平方的設定;任意預測或測試資料的 R² 可以為負。判斷預測好壞仍要使用獨立資料。
你在模型裡加了一個完全隨機、跟 y 無關的變數。訓練資料上會發生什麼?
含截距的訓練 OLS,且 y 與擬合值都有非零變異時,$R^2=\operatorname{Cor}(y,\hat y)^2$。 但對任意預測向量、測試集預測或把觀測與預測互換,這個等式不一定成立。 相關係數不會因預測整體平移而改變,但對原觀測的平方誤差會改變。 排序與方向完全一致,仍可能每筆都偏高 10;R² 的誤差定義會看見這個偏移。
三個媒體要不要各擬合一條簡單迴歸,然後把結論拼起來?不行。 三條線各自忽略了另外兩個變數,而且沒辦法拿一組預算去預測銷售量。 正確的做法是讓每個變數都有自己的斜率:
$$Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_p X_p + \varepsilon$$多元迴歸的係數應這樣解讀:控制模型中的其他變數後,Xⱼ 增加一單位時, Y 的條件平均相差 βⱼ。這是模型中的條件關聯或預測差; 沒有因果研究設計與額外假設時,不能解讀成介入 Xⱼ 所造成的效果。同樣用最小平方法最小化
$$\mathrm{RSS} = \sum_{i=1}^{n} \left(y_i - \hat\beta_0 - \hat\beta_1 x_{i1} - \cdots - \hat\beta_p x_{ip}\right)^2$$寫成矩陣就是一行。這也是本頁標題那條式子:
$$\hat\beta = (X^\top X)^{-1} X^\top y$$接著是第一個問題:「至少有一個變數有用嗎」。 虛無假設是 $H_0: \beta_1 = \beta_2 = \cdots = \beta_p = 0$,用 F 檢定:
$$F = \frac{(\mathrm{TSS} - \mathrm{RSS})/p}{\mathrm{RSS}/(n-p-1)}$$$H_0$ 為真時分子與分母的期望值都是 σ²,所以 F 應該在 1 附近; $H_a$ 為真時分子會變大,F 就明顯大於 1。多大才算大?取決於 n 與 p, 交給軟體算 p 值。下表列出講義與課本的完整係數表,包含各變數的 t 值。
| 三個媒體都放進去(ISLP 表 3.4/3.6) | 係數 | SE | t | p 值 | 95% CI |
|---|---|---|---|---|---|
| 截距 | 2.9389 | 0.3119 | 9.42 | < 0.0001 | (2.324, 3.554) |
TV | 0.0458 | 0.0014 | 32.81 | < 0.0001 | (0.043, 0.049) |
radio | 0.1885 | 0.0086 | 21.89 | < 0.0001 | (0.172, 0.206) |
newspaper | −0.0010 | 0.0059 | −0.18 | 0.8599 | (−0.013, 0.011) 含 0 |
整體 F = 570.3、R² = 0.8972、 RSE = 1.686。VIF 分別是 1.005、1.145、1.145,所以 newspaper 不顯著不是 共線性把 SE 撐大造成的(對照 P06 的 Credit 例子就知道差別)—— 是它的資訊真的被 radio 蓋掉了。
因為兩個迴歸問的是不同的問題。
單變數迴歸的係數回答:「只看 newspaper 這一欄,它跟 sales 有沒有線性關聯?」多變數迴歸的係數回答:「在 TV 與 radio 都已知的情況下,再多知道 newspaper 有沒有幫助?」第二個問題嚴格得多。
機制就在相關矩陣裡:corr(radio, newspaper) = 0.354,報紙預算高的市場,廣播預算通常也高。一個說得通的故事是中介(mediation):行銷部門先決定報紙預算,廣播預算跟著報紙預算走,而真正帶動銷售的是廣播。
在這個結構裡,newspaper 對 sales 沒有直接效果,但透過 radio 有間接效果。單變數迴歸看到的是總效果(間接那條路還開著),所以顯著;把 radio 放進模型等於把那條路堵住,剩下的直接效果是 0,係數就掉到 0 附近。注意這裡的「newspaper 沒用」只是「控制 radio 之後沒有額外貢獻」,它的總效果並不是 0:若減少報紙預算,廣播預算也會跟著減少,銷售照樣受影響。
另一個同樣說得通的故事是混淆(confounding):有一個共同原因,例如市場規模或整體行銷預算,同時推高廣播與報紙的花費,而只有廣播帶動銷售。
這時 newspaper 與 sales 的關聯完全是假象:它們只是共用一個上游原因。混淆變數是那個共同原因,不是 radio;radio 只是剛好坐在那條後門路徑上,所以控制它也能把假關聯關掉。
迴歸分不出這兩個故事。兩種結構都會產生「單變數顯著、加入 radio 後歸零」的同一組係數表;newspaper 是否真的影響銷售,要靠研究設計(例如隨機分配預算)或額外的因果假設才能回答。這正是講義結尾提醒的:觀察資料上應避免因果宣稱。其他結構也可能出現相反方向的變化:$X_j$ 單獨看不顯著、控制別的變數後才顯著(壓抑效應)。所以「單變數篩選再進多變數模型」是個危險的習慣。
講義補充連結:冰淇淋銷量與鯊魚出沒的漫畫是「相關不等於因果」的經典例子。
另一個常見但不同的成因是共線性:$X_j$ 真的有用,只是它跟別的變數太像,SE 被膨脹到檢不出來(P06 的 Credit limit/rating)。分辨方法:看 VIF。這裡 newspaper 的 VIF 只有 1.145,不能把不顯著歸因於高共線性;但低 VIF 也不能分辨上面的中介與混淆結構。
因為多重比較。單一個 t 檢定在 α = 0.05 下有 5% 的機率誤判;但如果你有 100 個變數、逐一做 t 檢定,即使它們全部無用,預期也會冒出 100 × 0.05 = 5 個「顯著」。看到 5 個顯著就宣布發現,等於在報告雜訊。
F 檢定一次檢定全體:$H_0$ 是所有係數同時為 0。它的分佈已經把 p 個變數的維度算進去了,在模型假設成立、顯著水準為 0.05 時,整體 F 的第一型錯誤率仍是 5%,而不是 0。
可以先看 F 了解整體證據,再研究個別係數,但先通過 F 不等於完成個別檢定的多重比較校正。若同時探索許多變數,仍須處理假發現問題;事前指定的一個係數檢定,則與探索後挑最小 p 值不同。
還有一個 t 做不到的用途:F 可以檢定一組係數($H_0: \beta_{p-q+1} = \cdots = \beta_p = 0$)。質性變數的多個虛擬欄就是這種情況——個別虛擬欄的 t 值會隨基準水準的選擇而變,「這個變數整體有沒有用」的 F 檢定則保持相同(P05 會看到)。巢狀模型的比較(anova_lm())也是同一件事。
最後一個常被忽略的細節:p ≥ n 時 F 檢定根本算不出來,因為全模型無法按一般滿欄秩、正殘差自由度的設定估計誤差變異。可接著看線性模型選擇的高維度一節。
coef std err t P>|t| intercept 33.2228 0.731 45.458 0.000 lstat -1.0321 0.048 -21.416 0.000 age 0.0345 0.012 2.826 0.005
age 的 t = 2.826、p = 0.005,在這個模型裡是顯著的。先記住這個數字,看下一張卡。
Ch03-linreg-lab-zh.ipynb
同一個 age,t 從 2.826 掉到 0.271、p 從 0.005 變成 0.787。這就是上面 Q&A 講的現象在 lab 裡的實例,跟 Advertising 的 newspaper 是同一種問題。indus(p = 0.829)也是。lab 的刪除 age 範例接著示範怎麼用 Boston.columns.drop(['medv','age']) 把 age 拿掉重新擬合,拿掉之後 lstat 的 t 從 −10.897 變成 −11.483,SE 從 0.051 縮到 0.048——變數少一個,剩下的反而估得更準。
Ch03-linreg-lab-zh.ipynb
順向選擇(forward selection)從只有截距開始,每步加入讓模型改善最多的一個變數; 反向選擇(backward selection)從完整模型開始,每步移除條件貢獻最小的變數。 混合選擇(mixed selection)每次加入後也重新檢查既有變數,允許刪除後來變得多餘的項目。 傳統做法可用 p 值作停止條件;更完整的比較會使用調整 R²、Cp、AIC、BIC 或交叉驗證,詳見 模型選擇。
反向最小平方選擇須先能擬合完整模型;p 大於等於 n 時通常無法使用一般滿秩版本。 順向法可以起步,但增加變數仍受設計矩陣秩限制。逐步搜尋是貪婪程序,未必找到所有子集合中的最佳解。 若用資料選變數,評估時必須把整個選擇步驟放入訓練折;選擇後的普通 p 值也不能直接視為預先指定模型的推論。
成分加部分殘差圖(component-plus-residual plot, CCPR)畫 $e_i+\hat\beta_jx_{ij}$ 對 $x_{ij}$,並畫出 $\hat\beta_jx_{ij}$ 的線性成分。 它幫助檢查在其他變數已納入後,這一項是否仍有非線性形狀。
部分迴歸圖(partial regression/added-variable plot)則先把 y 與 $X_j$ 各自對其他預測變數及截距迴歸,再把兩組殘差互相作圖。滿秩最小平方下,其斜率等於完整模型的 $\hat\beta_j$。兩種圖的座標不同,不能把 CCPR 與部分迴歸圖當成同一張圖。 高度共線性時,CCPR 顯示的散布可能低估係數的不確定性,仍須結合 VIF 與標準誤判讀。
「其他變數固定,Xj 增加一單位」描述條件關聯。預測變數高度相關時,這種變動可能遠離實際資料範圍; 觀察資料上的迴歸係數也不能直接當成介入效果。模型的用途要透過診斷與新資料評估確認。
把 X 分成其他變數 Z(含截距)與目標欄 x,令 $M_Z=I-Z(Z^TZ)^{-1}Z^T$。固定 x 的係數 b 後,對 Z 的最小平方殘差是 $M_Z(y-xb)$。因此只需最小化 $\|M_Zy-M_Zxb\|^2$。
$$\hat b=\frac{x^TM_Zy}{x^TM_Zx}.$$這就是兩組殘差 $M_Zy$ 對 $M_Zx$ 的迴歸斜率。分母須為正,即 x 不在 Z 的欄空間內。CCPR 用原始 x 作橫軸,沒有這個雙重殘差化,因此兩種圖不相同。
完整模型有 p 個預測變數;受限模型固定其中 q 個係數為零,兩模型用同一批觀測、同一反應與誤差模型,並且欄空間巢狀。記兩個殘差平方和為 RSS 與 RSS₀。常態、等變異、獨立誤差與滿欄秩條件下:
$$F=\frac{(\mathrm{RSS}_0-\mathrm{RSS})/q}{\mathrm{RSS}/(n-p-1)}\ \overset{H_0}{\sim}\ F_{q,n-p-1}.$$只留截距的受限模型給 RSS₀=TSS、q=p,便是整體 F 檢定。q=1 時,此 F 等於同一係數雙尾 t 檢定的 $t^2$。
令 H、H₀ 是完整與受限模型的正交投影。巢狀性給 $HH_0=H_0H=H_0$,因此 H−H₀ 為秩 q 的投影,並與 I−H 正交。
$$\mathrm{RSS}_0-\mathrm{RSS}=y^T(H-H_0)y.$$$H_0$ 成立時,平均向量落在受限欄空間,故上式等於 $\varepsilon^T(H-H_0)\varepsilon$。在常態誤差下,它除以 $\sigma^2$ 服從 $\chi^2_q$;RSS 除以 $\sigma^2$ 服從獨立的 $\chi^2_{n-p-1}$。各除自由度後取比,就是正文 F 分布。q=1 時,額外平方和等於 $\hat\beta_j^2/[(X^TX)^{-1}]_{jj}$,除以 $s^2$ 即為 $t_j^2$。
整體 F 檢定問所有斜率是否同時為零;部分 F 則比較同一批資料上的兩個巢狀模型,一次檢定一組係數。係數仍描述控制模型內其他變數後的條件關聯,不能直接當成因果效果。
前面所有的 x 都是數字。可是「貨架位置:好/中/差」、「是不是學生」、 「哪一個地區」怎麼放進模型?可以用虛擬變數表示:編成 0 與 1。
兩個水準只要一欄。以 Credit 資料的 Student 為例:
於是 β₀ 是「非學生的平均」、β₁ 是「學生比非學生多出來的部分」。 k 個水準只要 k − 1 欄;沒有分到欄的那個水準叫基準水準 (baseline),截距代表它。為什麼不給每個水準都一欄? 因為 k 欄加起來恆等於 1,會跟截距完全共線,矩陣就不可逆了。 這叫虛擬變數陷阱(dummy variable trap)。
| Credit 上的兩個例子 | 係數 | SE | t | p 值 | 解讀 |
|---|---|---|---|---|---|
| 截距(非學生) | 480.369 | 23.434 | 20.499 | < 0.0001 | 非學生的平均 balance |
Student[Yes] | 396.456 | 74.104 | 5.350 | < 0.0001 | 學生平均多 396 → 876.83 |
| 截距(African American) | 531.00 | 46.319 | 11.464 | < 0.0001 | 基準水準的平均 |
Ethnicity[Asian] | −18.686 | 65.021 | −0.287 | 0.774 | 比基準少 18.7,但 p 很大 |
Ethnicity[Caucasian] | −12.503 | 56.681 | −0.221 | 0.826 | 比基準少 12.5,p 也很大 |
下面三列就是 ISLP 表 3.8(課本用的欄名是
region/East/South/West,ISLP 的 Python 資料集把同一欄命名為
Ethnicity,數字完全一致)。三個水準的整體檢定
F = 0.0434、p = 0.9575——沒有證據顯示族群之間的 balance 平均有差異。
重點是:個別虛擬欄的係數與 p 值會隨基準水準的選擇而變,整體的 F 檢定不會。
所以判斷一個質性變數整體有沒有用,要看 F,不要看個別虛擬欄。
接著是交互作用。標準線性模型是加法的: 每個變數的條件斜率跟其他變數的值無關。可是「電視廣告與銷售的關聯會不會取決於廣播花了多少」 這種問題(行銷上叫綜效、統計上叫交互作用)就違反加法假設。解法是丟一個乘積項進去:
$$Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \beta_3 X_1X_2 + \varepsilon = \beta_0 + (\beta_1 + \beta_3 X_2)\,X_1 + \beta_2 X_2 + \varepsilon$$看第二種寫法:$X_1$ 的斜率變成 $\beta_1 + \beta_3X_2$, 會隨 $X_2$ 移動。當 $X_2$ 是質性變數(0/1)時這個關係很容易從圖上看出—— 就是「兩條線平不平行」:
| Advertising 加入 TV×radio(ISLP 表 3.9) | 係數 | SE | t | p 值 |
|---|---|---|---|---|
| 截距 | 6.7502 | 0.2479 | 27.23 | < 0.0001 |
TV | 0.0191 | 0.0015 | 12.70 | < 0.0001 |
radio | 0.0289 | 0.0089 | 3.24 | 0.0014 |
TV×radio | 0.0011 | 0.0001 | 20.73 | < 0.0001 |
R² 從 89.7%(只有主效果)跳到 96.8%。換個方式算更有感:加法模型擬合完後剩下的變異裡, 有 (96.8 − 89.7)/(100 − 89.7) ≈ 69% 被這一個乘積項解釋掉了。 係數的解讀是「TV 預算每多 1000 美元,銷售量增加 (19 + 1.1 × radio) 單位」—— 廣播預算愈高,模型中的電視廣告斜率愈大。這是樣本中的交互作用, 單憑觀察資料不能判定為因果綜效。
X₁X₂,就要連主效果 X₁ 與 X₂ 一起放,
即使它們的 p 值不顯著。x² 就要放 x。
coef std err t P>|t| intercept 36.0885 1.470 24.553 0.000 lstat -1.3921 0.167 -8.313 0.000 age -0.0007 0.020 -0.036 0.971 lstat:age 0.0042 0.002 2.244 0.025
MS(['lstat', 'age', ('lstat', 'age')]) 裡的 tuple ('lstat','age') 就是交互作用項,欄名會自動變成 lstat:age。它的 t = 2.244、p = 0.025,顯著;而 age 的主效果 t = −0.036 完全不顯著——照階層原則,還是要留著它。
Ch03-linreg-lab-zh.ipynb
ShelveLoc 有 Bad/Medium/Good 三個水準,MS() 自動產生兩欄 ShelveLoc[Good] 與 ShelveLoc[Medium]——Bad 被丟掉當基準(它是第一個水準)。係數 4.85 與 1.95 都是「相對於 Bad」的差距,順序也符合直覺:好位置 > 中等 > 差位置。這一格同時放了兩個交互作用 Income:Advertising(p = 0.007,顯著)與 Price:Age(p = 0.424,不顯著)。
Ch03-linreg-lab-zh.ipynb
一個三水準的質性變數,你把基準水準從「差」換成「好」。什麼會變、什麼不會變?
只有主效應且含截距的普通最小平方模型,將每欄減去常數可改寫截距而保持所有擬合值。 把 x 換成 $u=x-a$ 後,截距代表原來 x=a 時的平均反應;若再除以尺度,係數單位跟著改變。 這種可逆重新參數化不會消除原本精確的線性相依,也不會自動修復混淆。
有交互作用時,令 $u=x-a,v=z-b$,完整模型改寫為
$$\beta_0+\beta_1x+\beta_2z+\beta_3xz =(\beta_0+a\beta_1+b\beta_2+ab\beta_3) +(\beta_1+b\beta_3)u+(\beta_2+a\beta_3)v+\beta_3uv.$$交互作用係數保留,但主效應係數改成另一個參考點的斜率,檢定「主效應為零」的意義也改了。 只保留 xz 卻移除 x、z,平移座標後會產生無處容納的主效應項;因此一般遵守階層原則。 有明確科學理由設定某些主效應為零仍是可能的模型,須說明該限制與選定原點的含義。
線性迴歸擬合起來很容易,擬合出錯的結論也一樣容易。先回頭看 P01 的 LINE: 哪一條假設失效,壞掉的東西不一樣。
講義整理了六個最常見的潛在問題,每一個都有對應的診斷工具(diagnostic tool)與處理方式; 講義自己也說,辨認與處理這些問題「既是科學也是藝術」。先看全表,再逐一動手看:
| # | 問題 | 診斷工具(標準名稱) | 為什麼這個工具看得到它 | 講義的處理方式 |
|---|---|---|---|---|
| 1 | 非線性(non-linearity) | 殘差圖(residual plot):$e_i$ 對 $\hat y_i$ | 直線假設正確時殘差沒有結構;殘差隨 $\hat y$ 彎成 U 形,就是模型漏了曲率 | 加入 $x^2$ 等多項式項 |
| 2 | 誤差相關(correlated errors) | 殘差對觀測順序圖(residuals vs time/order plot) | 正相關可能形成同號漂移;其他 lag 的模式可再用 ACF 檢查 | 指出後果:講義情境下 SE 低估、區間太窄;有時間結構的資料要換模型 |
| 3 | 異質變異(heteroscedasticity) | 同一張殘差圖看漏斗形 | 變異隨反應水準放大時,殘差的散布隨橫軸張開 | 對 Y 取 $\log$ 或開根號 |
| 4 | 離群值(outlier,y 怪) | 學生化殘差圖(studentized residual plot) | 原始殘差各筆尺度不同,除以自己的 SE 後才能用同一把尺比;$|r_i|>3$ 可疑 | 確認是記錄錯誤才刪;否則可能是模型缺變數 |
| 5 | 高槓桿(high leverage,x 怪) | 槓桿統計量(leverage statistic)$h_i$、Cook's distance、影響圖(influence plot) | $h_i$ 是第 i 筆的 y 對自己擬合值的權重;遠超過平均 $(p+1)/n$ 的點能扳動整條線 | 檢查該筆資料是否有效;那一區資料太少時補資料 |
| 6 | 共線性(collinearity) | 相關矩陣(correlation matrix)、變異數膨脹因子(VIF) | 兩個變數幾乎重複時,RSS 沿一條溝幾乎不變,係數各自估不準,SE 膨脹 $\sqrt{\mathrm{VIF}}$ | 拿掉一個,或合成一個變數 |
殘差圖(residual plot)是後面幾乎每一個工具的底圖,先把它的橫軸講清楚。 殘差 $e_i=y_i-\hat y_i$ 放縱軸沒有爭議,橫軸有三種候選:
結論:整體形狀(非線性、漏斗)看殘差對 $\hat y$;要知道是哪一個變數需要非線性項, 改看殘差對單一 $x_j$,或 P04 收合盒裡的部分迴歸圖;懷疑誤差相關時才看殘差對時間。 下面用同一組示意資料把三種橫軸擺在一起,按「洗牌觀測順序」看哪一張會變:
在 $\operatorname{Cov}(\varepsilon\mid X)=\sigma^2I$ 下,$e=(I-H)\varepsilon$、$\hat y=X\beta+H\varepsilon$,故
$$\operatorname{Cov}(e,\hat y\mid X)=\sigma^2(I-H)H=0,\qquad \operatorname{Cov}(e,y\mid X)=\sigma^2(I-H).$$單筆的共變異數因此為 $\sigma^2(1-h_{ii})$,通常為正;即使線性平均模型正確,也不應期待 e 與原始 y 無關。 樣本層次更直接:由 normal equations,$\sum_i e_i=0$、$\sum_i e_i\hat y_i=0$,所以 e 對 $\hat y$ 的樣本共變異數為零; 而 $\sum_i e_i y_i=\sum_i e_i(\hat y_i+e_i)=\mathrm{RSS}$,故 e 對 y 的樣本相關係數為 $\mathrm{RSS}/\sqrt{\mathrm{RSS}\cdot\mathrm{TSS}}=\sqrt{1-R^2}$,最小平方斜率為 $\mathrm{RSS}/\mathrm{TSS}=1-R^2$。
講義補充連結:為什麼殘差圖用擬合值當橫軸、 殘差與反應變數的相關係數。
問題 1 到 5 都靠殘差類的圖看。講義用了四張:殘差圖、殘差對觀測順序圖、學生化殘差圖, 以及把學生化殘差對槓桿值畫的影響圖。下面這個元件把六組資料(一組乾淨的、五組各有一種特徵) 跟這四張圖交叉組合起來。先切換資料,再切換診斷圖,觀察各種問題的圖形特徵:
Auto 資料(mpg 對 horsepower),就是 ISLP 圖 3.9 左那張經典的 U 形殘差圖;加上 horsepower² 之後 U 形會消失(圖 3.9 右)。第 ④ ⑤ 組對應圖 3.12 與圖 3.13;第 ⑥ 組是瀏覽器內固定種子的示意時間序列,對照講義的殘差對時間圖(ISLP 圖 3.10)。
橫軸 $\hat y_i$、縱軸 $e_i$,理想狀況是一團沒有結構的雲。講義用 Auto 資料示範:mpg 對 horsepower 的殘差彎成明顯的 U 形, 這是非線性的強烈證據;加入 horsepower² 之後 U 形消失,殘差幾乎沒有形狀,表示二次項確實改善了模型 (上方元件的第 ② 組就是這份資料)。同一張圖也看異質變異:殘差的散布隨 $\hat y$ 張開成漏斗形, 表示誤差的變異隨反應水準放大。講義的處理方式是對反應變數做壓縮尺度的變換,例如 $\log Y$ 或 $\sqrt{Y}$, 大值被壓得比小值多,可能改善漏斗形;是否合適仍要看轉換後的模型與殘差。
普通最小平方(OLS)讓每筆觀測在平方誤差中使用相同的權重:
$$\min_\beta\sum_{i=1}^n (y_i-x_i^\top\beta)^2.$$若各筆誤差的變異不同,$\operatorname{Var}(\epsilon_i\mid X)=\sigma_i^2$, 加權最小平方(WLS)改為
$$\min_\beta\sum_{i=1}^n w_i(y_i-x_i^\top\beta)^2.$$ $$w_i\propto\frac{1}{\sigma_i^2}.$$變異大、較不精確的觀測,權重較小;變異小、較精確的觀測,權重較大。 這是根據觀測的精確度分配權重,不是看到某筆殘差大就任意降低它的權重。
例如,若有理由假設誤差變異與平均反應的平方成正比:
$$\mu_i=E(Y_i\mid X),\qquad \sigma_i^2\propto\mu_i^2,$$便可先用初步模型的 $\hat y_i$ 估計 $\mu_i$,考慮 $w_i\propto1/\hat y_i^2$。 但這需要合理的變異模型;$\hat y_i$ 接近零時,不能直接套用倒數平方,否則權重會暴增。
WLS 的計算也等於把每列的 $y_i$ 和整個設計向量 $x_i$(含截距那一欄) 同乘 $\sqrt{w_i}$,再做最小平方。目標函數的權重是 $1/\sigma_i^2$,轉換資料的倍率則是 $1/\sigma_i$。
WLS 仍在原本的 $Y$ 尺度上建模;對 $Y$ 取 $\log$ 則改成描述 $E(\log Y\mid X)$, 連係數的解讀也會改變。兩者都是處理異質變異的可能方向,並不是同一種操作;WLS 本身也不會處理誤差間的相關。
線性模型的誤差不相關假設要求 $\operatorname{Cov}(\epsilon_i,\epsilon_j\mid X)=0$($i\ne j$),不是只檢查相鄰兩筆。 時間序列資料最容易違反,相鄰時間點的誤差往往同號。診斷方式是把殘差依時間(或收集順序)畫出來: 持續的正相關可能讓相鄰殘差傾向取相近的值,圖上出現一段一段的漂移;其他 lag 的相關則要再看 ACF。
後果講義用一個極端例子說明:把資料不小心複製一份,n 變成 2n,最小平方解完全不變,但 SE 公式以為多了一倍的資訊, 信賴區間大約縮成原來的 $1/\sqrt2$(大樣本下的近似,精確比例還牽涉 RSE 與 t 分位數的自由度),這當然是假的。 講義的結論是:像這樣誤差正相關時,估計出的 SE 會低估真正的 SE,信賴區間與預測區間都比應有的窄,p 值偏小; 更一般的相關結構下方向不一定,要看設計與相關的樣式。這種資料要換用能描述時間相依的模型,超出本章範圍。
講義補充連結:誤差相關對線性迴歸的影響。
不相關要求每一對不同觀測都滿足 $\operatorname{Cov}(\epsilon_i,\epsilon_j\mid X)=0$, 相鄰時間點只是其中一種情形。不相關也不等於獨立:相關係數為零,仍可能有非線性的相依。
對有自然時間順序、等間隔且相關結構大致穩定的資料,可以用殘差 ACF(自相關函數) 觀察不同時間間隔的相關:
$$\rho_k=\operatorname{Corr}(e_t,e_{t-k}).$$這裡 $k=1,2,3,\ldots$,不只看相鄰的 lag 1。
圖上各 lag 的高度是用殘差算出的樣本估計 $\hat\rho_k$。 例如 $\hat\rho_1\approx0$、$\hat\rho_2\approx0.6$、$\hat\rho_3\approx0$, 就表示相鄰的相關不明顯,但隔兩個時間點值得注意;這並沒有假設其餘 lag 都是零。
可以依序做三件事:
這是對所選 lag 的整體自相關檢查,不是所有形式相依的通用檢定。 套用在擬合後殘差時,還須依模型處理自由度與檢定適用條件。
| 資料結構或問題 | 常見工具與用途 |
|---|---|
| 有自然時間順序 | ACF/PACF 觀察不同 lag;Ljung–Box 整體檢查選定的多個 lag。 |
| 特別關心一階或多階相關 | Durbin–Watson 著重 lag 1;Breusch–Godfrey 可檢查指定的多個 lag。 |
| 空間資料 | Moran’s $I$、variogram;需要位置、距離或鄰近關係。 |
| 重複測量/群聚資料 | 看組內殘差模式;ICC 可描述模型下的組內相關,mixed model/random effects 可用來描述群聚結構,並非同一種檢定。 |
| 沒有自然順序或分組 | 不能任意排序殘差後,就把時間序列診斷當成一般相關檢定。 |
為什麼沒有一個工具能直接檢查任意兩筆的誤差相關?令
$$\Sigma=\operatorname{Cov}(\boldsymbol\epsilon\mid X),$$ $$\Sigma=\begin{pmatrix}\sigma_1^2&\sigma_{12}&\cdots\\ \sigma_{12}&\sigma_2^2&\cdots\\\vdots&\vdots&\ddots\end{pmatrix}.$$不相關表示非對角元素全為零;再加上等變異,才得到 $\Sigma=\sigma^2I$。 任意的 $\Sigma$ 有 $n(n-1)/2$ 個不同的非對角 covariance。 只有一組資料、每筆一個殘差,又不提供結構或重複資訊,就無法自由估計這些量。
還要分清誤差與擬合後的殘差:即使 $\Sigma=\sigma^2I$, OLS 仍有 $\operatorname{Cov}(e\mid X)=\sigma^2(I-H)$,殘差彼此不必完全不相關。 因此診斷看的是符合資料結構、值得追查的模式,不能把任何殘差相關都直接判成誤差假設違反。
離群值是 y 離模型預測很遠的點。要判斷「多遠算遠」,不能直接比原始殘差,因為每一筆殘差的尺度不一樣。 學生化殘差(studentized residual)是把殘差除以它自己的估計標準差。 這種用估計標準差做標準化的動作稱為 studentization,與 Student’s t 統計量的標準化想法相同:
$$r_i = \frac{e_i}{\mathrm{RSE}\sqrt{1-h_i}}$$為什麼要除以 $\sqrt{1-h_i}$?因為 $\mathrm{Var}(e_i) = \sigma^2(1-h_i)$,高槓桿點的殘差天生就小, 直接比原始殘差對它不公平。學生化之後才有共同尺度,常用 $|r_i|>3$ 作為回查線索,這些觀測是可能的離群值(outlier)。 把 $r_i$ 對 $\hat y_i$ 畫出來就是學生化殘差圖,上方元件的第 ④ 組可以看到那一個點。
離群值對最小平方線的影響通常有限(它的 x 不怪、槓桿低),但會推高 RSE:課本的例子裡, 含那一點時 RSE 是 1.09,拿掉後只有 0.77。RSE 是所有 SE、區間與 p 值的原料,一個點就能改變整份推論的解讀。 處理方式:確認是資料收集或記錄錯誤才刪除;否則它可能在提醒模型缺了一個變數。
講義補充連結:Studentized residual。
$r_i$ 把殘差換成「幾個估計標準差」的尺度。以標準常態作為直覺參考, 約 99.73% 的值落在 $[-3,3]$,所以超過三個標準差的點值得回查。
但這不是內部學生化殘差的精確常態機率,也不是自動刪點的依據。 同時檢查很多筆資料時,即使模型合理,也可能出現少數大的殘差。
本頁用整份資料的 RSE 定義內部學生化 $r_i$;若刪掉第 $i$ 筆再估標準差,則得到外部學生化 $t_i$。 只有在常態、等變異、獨立誤差等條件成立時,固定一筆的外部學生化量才有相應的精確 $t$ 分布。 兩者的計算與證明見下方「內部與外部學生化殘差」。
槓桿值 $h_i$ 是帽子矩陣的對角元,衡量「第 i 筆的 x 有多不尋常」。簡單線性迴歸有明確公式:
$$h_i = \frac{1}{n} + \frac{(x_i-\bar x)^2}{\sum_{j=1}^{n}(x_j-\bar x)^2}$$回想 P01:$h_i=1/n+w_i$,第二項正是第 i 筆在「斜率是加權平均」裡的權重。更一般地 $\hat y_i=\sum_j h_{ij}y_j$, 所以 $h_i$ 就是第 i 筆自己的 y 對自己擬合值的權重,介於 1/n 與 1 之間,而且所有 $h_i$ 的平均恰好是 $(p+1)/n$。 遠超過這個平均(實務上常用 2 倍或 3 倍當門檻值)的點就是高槓桿點(high leverage point): 它的 x 不尋常,對擬合值可能有較大的影響。
考慮含截距的簡單線性迴歸,固定所有 $x_j$,且 $x_j$ 不全相同。 記 $S_{xx}=\sum_{j=1}^n(x_j-\bar x)^2>0$。最小平方法給出
$$\hat\beta_1=\frac{\sum_{j=1}^n(x_j-\bar x)(y_j-\bar y)}{S_{xx}}.$$ $$\hat\beta_0=\bar y-\hat\beta_1\bar x.$$把截距代回第 $i$ 筆的擬合值:
$$\hat y_i=\hat\beta_0+\hat\beta_1x_i =\bar y+(x_i-\bar x)\hat\beta_1.$$因為 $\sum_j(x_j-\bar x)=0$,斜率分子中的 $\bar y$ 項會消掉:
$$\begin{aligned} &\sum_j(x_j-\bar x)(y_j-\bar y)\\ &\quad=\sum_j(x_j-\bar x)y_j\\ &\qquad-\bar y\underbrace{\sum_j(x_j-\bar x)}_{=0}\\ &=\sum_j(x_j-\bar x)y_j. \end{aligned}$$再用 $\bar y=\frac1n\sum_j y_j$,就能把 $\hat y_i$ 寫成所有觀測值 $y_j$ 的線性組合:
$$\begin{aligned} \hat y_i &=\frac1n\sum_{j=1}^n y_j +\frac{x_i-\bar x}{S_{xx}}\sum_{j=1}^n(x_j-\bar x)y_j\\ &=\sum_{j=1}^n\left[\frac1n+ \frac{(x_i-\bar x)(x_j-\bar x)}{S_{xx}}\right]y_j. \end{aligned}$$這裡 $i$ 是我們要預測的資料位置,$j$ 則走過所有用來擬合的觀測。 把方括號中的係數記為 $h_{ij}$:
$$h_{ij}=\frac1n+\frac{(x_i-\bar x)(x_j-\bar x)}{S_{xx}}.$$槓桿值 $h_i$ 就是 $\hat y_i$ 中自己的 $y_i$ 前面的係數。 在上式令 $j=i$,便得到
$$h_i=h_{ii}=\frac1n+ \frac{(x_i-\bar x)^2}{\sum_{j=1}^n(x_j-\bar x)^2}.$$$1/n$ 來自 $y_i$ 對平均值 $\bar y$ 的貢獻;第二項來自 $y_i$ 改變斜率後, 對位置 $x_i$ 的擬合值所造成的貢獻。當 $x_i=\bar x$ 時,第二項為零;離 $\bar x$ 越遠,第二項越大。 這也說明了前面寫的 $h_i=1/n+w_i$。
例如固定 $x=(0,1,2)$,則 $\bar x=1$、$S_{xx}=2$,所以 $h_1=h_3=1/3+1/2=5/6$,$h_2=1/3$。 端點的觀測值改變時,自己的擬合值會比中央的點改變得更多。
上面是單一解釋變數的推導。更一般地,固定滿欄秩的設計矩陣 $X$ 時,OLS 有
$$\hat{\mathbf y}=H\mathbf y,\qquad H=X(X^\top X)^{-1}X^\top.$$第 $i$ 個擬合值是
$$\hat y_i=\sum_{j=1}^n h_{ij}y_j,\qquad h_i=h_{ii}.$$現在保持所有其他 $y_j$ 不變,只把 $y_i$ 增加 $\Delta$,便得到
$$\hat y_i^{\mathrm{new}}=\hat y_i+h_i\Delta, \qquad \Delta\hat y_i=h_i\Delta y_i.$$也可以寫成敏感度:
$$\frac{\partial\hat y_i}{\partial y_i}=h_i.$$例如 $h_i=0.8$,只把 $y_i$ 提高 1,重新擬合後它自己的 $\hat y_i$ 就提高 0.8。 這是固定 $X$ 時的數學權重,並不是觀測值有意識地「控制」模型。 $h_i$ 由 $X$ 決定;是否真的對整體擬合有影響,還要一起看殘差。
高槓桿不等於有影響。講義區分兩個詞:拿掉之後迴歸式明顯改變的觀測叫影響點(influential observation); 槓桿高代表位置敏感,但仍需看它偏離模型的程度;在簡單線性、等變異模型下, 增加遠離平均的有效 x 觀測可增加設計資訊,不代表所有高槓桿點都應保留或刪除。 要同時看「x 怪不怪」與「y 怪不怪」,講義用 Cook's distance:
$$D_i=\frac{\sum_{j=1}^{n}\left(\hat y_j-\hat y_{j(-i)}\right)^2}{(p+1)\,\hat\sigma^2} =\frac{r_i^2}{p+1}\cdot\frac{h_i}{1-h_i}$$$\hat y_{j(-i)}$ 是拿掉第 i 筆後重新擬合、對第 j 筆的預測值;左式問「少了這一筆,全部的擬合值一共動了多少」, 右式說這個量正好是學生化殘差平方乘上槓桿比 $h_i/(1-h_i)$。把 $h_i$ 放橫軸、$r_i$ 放縱軸、氣泡大小畫 $D_i$, 就是影響圖(influence plot),也就是上方元件的「殘差對槓桿圖」(residuals vs leverage plot): 右上與右下角的點最危險。講義給的處理方式有兩個:這些點特別值得回頭檢查資料是否有效; 它們也標出設計空間裡資料太少的區域,能補資料就補。
拿掉第 $i$ 筆後重新擬合,再對原本全部 $n$ 個位置計算預測。 Cook’s distance 衡量這些擬合值的平方變動總和:
$$D_i=\frac{\sum_{j=1}^n(\hat y_j-\hat y_{j(-i)})^2}{(p+1)\hat\sigma^2}.$$其中 $p$ 是不含截距的 predictor 數,$p+1$ 是模型參數數量; $\hat\sigma^2=\mathrm{RSS}/(n-p-1)$ 來自完整模型。 分母用誤差尺度與模型維度標準化,所以不同單位不會任意改變 $D_i$。
令 $x_i$ 是含截距的第 $i$ 筆設計欄向量,$X$ 的第 $i$ 列為 $x_i^\top$。 當 $X$ 滿欄秩、$h_i<1$、刪除後模型仍可估計時,刪除公式給出
$$\hat\beta-\hat\beta_{(-i)} =\frac{(X^\top X)^{-1}x_i e_i}{1-h_i}.$$因此全部擬合值的變動為
$$\hat{\mathbf y}-\hat{\mathbf y}_{(-i)} =\frac{X(X^\top X)^{-1}x_i e_i}{1-h_i}.$$令 $A=(X^\top X)^{-1}$、$u_i=XA x_i$。由 $AX^\top XA=A$,
$$\begin{aligned} \|u_i\|^2&=x_i^\top AX^\top XA x_i\\ &=x_i^\top A x_i=h_i. \end{aligned}$$所以全部擬合值的平方變動總和為
$$\begin{aligned} \|\hat{\mathbf y}-\hat{\mathbf y}_{(-i)}\|^2 &=\frac{e_i^2}{(1-h_i)^2}\|u_i\|^2\\ &=\frac{e_i^2h_i}{(1-h_i)^2}. \end{aligned}$$代回定義,並使用內部學生化殘差 $r_i=e_i/[\hat\sigma\sqrt{1-h_i}]$:
$$\begin{aligned} D_i&=\frac{e_i^2}{(p+1)\hat\sigma^2}\frac{h_i}{(1-h_i)^2}\\ &=\frac{r_i^2}{p+1}\frac{h_i}{1-h_i}. \end{aligned}$$這裡不能直接把 $r_i$ 換成使用刪除後標準差的外部學生化 $t_i$。
高槓桿不必然有影響。Cook’s distance 同時問「偏離模型多少」與「這個位置能把模型拉動多少」, 而不只看某一點自己的原始殘差。
$4/n$ 是提醒回查的經驗門檻,不是精確檢定的臨界值。可以從公式理解它的量級:
$$D_i=\frac{r_i^2}{p+1}\frac{h_i}{1-h_i}.$$ $$\bar h=\frac{p+1}{n}.$$對一個槓桿接近平均的點,若 $n$ 相對於參數數量夠大,使 $h_i\ll1$,則
$$D_i\approx\frac{r_i^2}{p+1}h_i \approx\frac{r_i^2}{n}.$$把約兩個估計標準差、$|r_i|\approx2$,視為值得留意的偏離,就得到 $D_i\approx4/n$。 這只是幫助理解門檻的近似直覺;高槓桿點或參數占資料量比例很高時,近似不適用。
超過門檻表示要檢查資料、模型及刪除前後的差異,不代表應該直接刪掉該筆。
講義補充連結:Leverage (statistics)、 影響點與高槓桿點的差別。
第六個問題自己一節。共線性(collinearity)是指兩個以上的預測變數彼此高度相關。 在條件平均模型正確且 $E(\epsilon\mid X)=0$ 下,共線性本身不造成偏差,但會讓 RSS 的等高線從碗變成一條狹長的溝—— 沿著溝走,RSS 幾乎不變,於是「哪一組係數最好」變得極難分辨,係數的 SE 跟著膨脹、檢定力下降。 最直接的檢查是看預測變數的相關矩陣:某一對相關係數很高就要留意。 但講義提醒這不夠:三個以上的變數可能整體高度共線(multicollinearity),而任何一對的相關都不特別高。 更好的工具是變異數膨脹因子:
考慮兩個 predictor 的模型:
$$\hat y=\beta_0+\beta_1x_1+\beta_2x_2.$$若 $x_2\approx2x_1$,預測就近似
$$\hat y\approx\beta_0+(\beta_1+2\beta_2)x_1.$$資料比較能辨認的是組合 $\beta_1+2\beta_2$,而不是兩個係數各自的值。 例如 $(\beta_1,\beta_2)=(4,1)$ 和 $(2,2)$ 都使這個組合等於 6,因而產生接近的擬合值與 RSS。
在係數平面上,維持同一個組合 $C$ 等於沿著
$$\beta_2=\frac{C-\beta_1}{2}$$移動。沿這個方向 RSS 改變很少,垂直方向卻改變較快,等高線因此拉成細長橢圓。 一點資料擾動就可能使最低點沿著山谷移動很多,兩個係數可以互相補償。
若 $x_2=2x_1$ 完全成立,則設計矩陣不滿秩,兩個係數無法唯一決定; 若只是很接近,係數通常仍有唯一解,但估計不穩定。
山谷方向取決於變數比例。下方互動使用相同尺度的兩個變數,因此接近共線時展示的是係數和大致不變, 與此例的 $\beta_1+2\beta_2$ 是同一種補償原理。
$R^2_{X_j \mid X_{-j}}$ 是「拿 $X_j$ 對其他所有預測變數做迴歸」得到的 R²。 它接近 1 就代表 $X_j$ 的資訊已經被別人講完了,VIF 就會變得很大。 最小值是 1(完全無共線性),超過 5 或 10 是常用的警戒值,表示該進一步檢查;要不要改模型仍看分析目的與估計精度。 講義給的處理方式有兩個:拿掉其中一個多餘的變數;或把共線的變數合成一個(例如取平均)。 下方滑桿可觀察信賴區域如何從圓變成溝。
令 $R_j^2$ 是把 $X_j$ 對其他 predictors(含截距)做迴歸所得到的 $R^2$。 用 $S_j$ 簡寫 $X_j$ 離平均的平方和:
$$S_j=\sum_{i=1}^n(x_{ij}-\bar x_j)^2.$$在滿秩、等變異且誤差互不相關的線性模型中,第 $j$ 個斜率的估計標準誤為
$$\begin{aligned} \mathrm{SE}(\hat\beta_j) &=\frac{\hat\sigma}{\sqrt{S_j(1-R_j^2)}}\\ &=\frac{\hat\sigma}{\sqrt{S_j}}\sqrt{\mathrm{VIF}_j}. \end{aligned}$$ $$\mathrm{VIF}_j=\frac{1}{1-R_j^2}.$$| VIF | $R_j^2$ | 未被其他 predictors 線性解釋的變異 | SE 膨脹倍數 |
|---|---|---|---|
| 5 | 0.8 | 20% | $\sqrt5\approx2.24$ |
| 10 | 0.9 | 10% | $\sqrt{10}\approx3.16$ |
也就是說,80% 或 90% 的 $X_j$ 樣本變異已可由其他 predictors 線性解釋, 留下能區分這個係數的資訊較少。這裡的「未被解釋」不表示統計獨立。
膨脹倍數比較的是相同誤差尺度與 $X_j$ 自身變異下的情形, 不表示任意刪掉一個變數後,實際 SE 就一定縮小這麼多。
5 和 10 都只是經驗警戒值,不是正式假設檢定的臨界值。 是否處理,要看係數需要多精確、樣本量以及分析目的是解釋還是預測。
age + limit:limit 的 SE = 0.005、t = 34.5、p < 0.0001。rating + limit:同一個 limit 的 SE 變成 0.064(膨脹 12.8 倍)、t 掉到 0.38、p = 0.70。rating,R² 只從 0.754 掉到 0.750——幾乎沒損失,問題卻解決了。
講義補充連結:多重共線性與相關的差別。
以下工具不在講義的教學範圍,lab 的 results.summary() 輸出或課本會提到,列出名稱與用途供查閱。
range(1, X.shape[1]) 從 1 開始是為了跳過第 0 欄的截距。Boston 的 12 個變數裡最大的是 tax 9.00 與 rad 7.45——這兩個確實相關(稅率高的地區通常離高速公路近),需要留意這兩欄的共線性;Credit 的 160 則顯示更嚴重的情況。
Ch03-linreg-lab-zh.ipynb
coef std err t P>|t| intercept 17.7151 0.781 22.681 0.0 poly(lstat, degree=2)[0] -179.2279 6.733 -26.620 0.0 poly(lstat, degree=2)[1] 72.9908 5.482 13.315 0.0 age 0.0703 0.011 6.471 0.0
poly('lstat', degree=2) 產生的是正交多項式基底(為了數值穩定),所以係數 −179.23 與 72.99 不能直接讀成「lstat 與 lstat² 的係數」;要那樣讀得加 raw=True。兩種基底的擬合值完全相同,只是係數不同。二次項的 p 值實質為 0,表示它確實改善了模型。
Ch03-linreg-lab-zh.ipynb
df_resid ssr df_diff ss_diff F Pr(>F) 0 503.0 19168.128609 0.0 NaN NaN NaN 1 502.0 14165.613251 1.0 5002.515357 177.278785 7.468491e-35
比較「lstat + age」與「poly(lstat,2) + age」兩個巢狀模型。F = 177.28、p = 7.47e-35,二次項不能省。注意177.28 恰好是上一張卡裡二次項 t = 13.315 的平方(13.315² ≈ 177.3)——巢狀模型只差 1 個自由度時,F 就是 t 的平方。這也解釋了為什麼 P04 說「F 可以檢定一組係數」是 t 檢定的推廣。另外 lab 的槓桿值診斷用 np.argmax(infl.hat_matrix_diag) 找出 Boston 裡槓桿值最大的是第 374 筆。
Ch03-linreg-lab-zh.ipynb
殘差對擬合值的圖呈明顯的 U 形。下面哪個結論是對的?
令 m=p+1 為含截距的參數數,ν=n−m,X 滿欄秩。帽子矩陣 H 給出 $\operatorname{Var}(e_i\mid X)=\sigma^2(1-h_{ii})$。 前面的圖使用整份資料的 $s^2=\mathrm{RSS}/\nu$,因此是內部學生化:
$$r_i=\frac{e_i}{s\sqrt{1-h_{ii}}}.$$檢查第 i 筆時,也可以刪除此筆再估 σ,得到外部學生化:
$$s_{(i)}^2=\frac{\mathrm{RSS}-e_i^2/(1-h_{ii})}{\nu-1},\qquad t_i=\frac{e_i}{s_{(i)}\sqrt{1-h_{ii}}} =r_i\sqrt{\frac{\nu-1}{\nu-r_i^2}}.$$這需要 ν>1、$h_{ii}<1$ 且刪除後殘差變異估計為正。 常態、等變異、獨立誤差模型下,固定 i 的外部學生化量服從 $t_{\nu-1}$;內部學生化量因分母也使用本筆,不服從同一 t 分布。 「絕對值大於 3」是回查線索,不是對整批觀測自動有效的多重離群檢定。
令刪除第 i 筆後係數為 $\hat\beta_{(i)}$。秩一更新給
$$\hat\beta_{(i)}=\hat\beta-\frac{(X^TX)^{-1}x_ie_i}{1-h_{ii}},\qquad \mathrm{RSS}_{(i)}=\mathrm{RSS}-\frac{e_i^2}{1-h_{ii}}.$$刪除一筆使殘差自由度從 ν 變成 ν−1;以此定義 $s_{(i)}$,並用 $r_i^2=e_i^2/[s^2(1-h_{ii})]$ 整理即可得到兩者換算。 常態模型下,刪除模型對第 i 筆的預測誤差除以其真實標準差為標準常態,且與刪除模型的 RSS 獨立。 除以獨立的 $\sqrt{\chi^2_{\nu-1}/(\nu-1)}$,便得到外部學生化的 t 分布。
來源:講義的殘差、相關與槓桿討論; R 官方刪除診斷區分整體與 leave-one-out 的變異估計。
線性迴歸是參數方法(parametric):它先假設 f 的形狀 (一條直線),然後只需要估 p + 1 個數字。好處很多——容易擬合、係數可解讀、 有現成的 t 與 F 檢定。主要限制是:如果那個形狀猜錯了, 就算資料再多也無法消除。
對照組是 K 近鄰迴歸(KNN regression),一種無母數方法。 要預測 $x_0$,就找離它最近的 K 個訓練點,把它們的 y 平均起來:
$$\hat f(x_0) = \frac{1}{K} \sum_{i \in \mathcal{N}_0} y_i$$鄰居包含自己嗎?新的測試點不在訓練集合裡,所以沒有「自己」可選。 但直接在訓練資料上預測某個訓練點時,它到自己的距離是 0,通常會包含自己。 沒有重複座標時,K = 1 因而可以得到零訓練誤差,卻不代表對新資料也準; leave-one-out 或交叉驗證會把被驗證的觀測排除在該次的訓練集合之外。若有同距離或重複座標,還須看平手的處理方式。
它不預先指定 f 的參數形式。K 小=很有彈性但很不穩; K 大=很平滑但可能糊掉真正的結構。這是第 2 章介紹的偏差–變異取捨。
ISLP 圖 3.19–3.20 的結論是:真實關係接近直線時線性迴歸占優勢; 關係明顯彎曲且 p 很小時 KNN 可能較好,但加入無關變數後 KNN 會迅速受維度詛咒影響。 第 2 章的 KNN 圖可用來複習這個彈性取捨。
| 線性迴歸 | KNN 迴歸 | |
|---|---|---|
| 對 f 的假設 | 線性(強) | 只假設平滑(弱) |
| 要估的東西 | p + 1 個係數 | 沒有參數,但要留著全部訓練資料 |
| 真相是線性時 | 贏(估得又快又準) | 略差(多付了變異) |
| 真相很彎時 | 系統性偏差,無法消除 | 表現明顯較好 |
| p 變大時 | 退化得慢 | 快速退化(維度詛咒) |
| 可解讀性 | 係數、p 值、信賴區間都有 | 幾乎沒有 |
| 雜訊變數的影響 | 多估幾個接近 0 的係數而已 | 直接污染距離的計算 |
| 預測的成本 | 一次乘法 | 每次都要掃過全部訓練資料 |
最後一件事,也是課本特別強調的:就算 KNN 的測試 MSE 稍微低一點, 選線性迴歸仍然可能是對的。能用幾個係數清楚說明模型中的關係、 能附上 p 值與信賴區間,這些在真實工作裡值得換掉一點點預測精度。 第 7 章會給你一個折衷方案(GAM):保留「每個變數各自一條曲線」的可解讀性, 同時放掉線性的限制。
真實關係明顯非線性,n = 50。什麼情況下線性迴歸反而贏過 KNN?
下面幾題取自 ISLP §3.7 的課後習題,題號都對得回課本。先自己想過再點選項; 每個選項都有解說;需要完整解答時,可查閱下面3個站。
課本要你描述表 3.4 的 p 值各自對應什麼虛無假設,並用 sales/TV/radio/newspaper 的語言(不要用係數)講結論。下面哪個描述對了?
模型是 salary = 50 + 20·GPA + 0.07·IQ + 35·Level + 0.01·(GPA×IQ) − 10·(GPA×Level),其中 Level = 1 代表大學畢業。固定 IQ 與 GPA,哪個說法對?
n = 100、單一預測變數。真實關係是線性的。把「線性迴歸」與「三次迴歸」的訓練 RSS 與測試 RSS 比一比,預期是什麼?
課本要你證明簡單線性迴歸(只有一個 x、有截距)的 R² 等於 x 與 y 相關係數的平方。為什麼這件事在多元迴歸就不能照搬?
考前把這一頁掃過去就好。
| 名稱 | 式子 | 備註 |
|---|---|---|
| 簡單線性模型 | $Y = \beta_0 + \beta_1 X + \varepsilon$ | 式 3.5 |
| 最小平方解 | $\hat\beta_1 = \frac{\sum(x_i-\bar x)(y_i-\bar y)}{\sum(x_i-\bar x)^2}$,$\hat\beta_0 = \bar y - \hat\beta_1\bar x$ | 式 3.4;必過 $(\bar x,\bar y)$ |
| 斜率=加權平均 | $\hat\beta_1=\sum_i w_is_i$,$w_i=\frac{(x_i-\bar x)^2}{S_{xx}}$,$s_i=\frac{y_i-\bar y}{x_i-\bar x}$ | 講義;求和只取 $x_i\ne\bar x$ 的項;離 $\bar x$ 遠的點權重大 |
| 斜率=y 的線性組合 | $\hat\beta_1=\sum_i c_iy_i$,$c_i=\frac{x_i-\bar x}{S_{xx}}$ | $\sum c_i=0$、$\sum c_ix_i=1$;常態誤差下 $\hat\beta_1$ 服從常態 |
| 矩陣寫法 | $\hat\beta = (X^\top X)^{-1}X^\top y$ | 多元迴歸的封閉解 |
| 斜率的標準誤 | $\mathrm{SE}(\hat\beta_1)^2 = \sigma^2/\sum(x_i-\bar x)^2$ | 式 3.8;x 散得開就小 |
| 截距的標準誤 | $\mathrm{SE}(\hat\beta_0)^2 = \sigma^2\left[\frac1n+\frac{\bar x^2}{\sum(x_i-\bar x)^2}\right]$ | 式 3.8 |
| 95% 信賴區間 | $\hat\beta_1 \pm 2\,\mathrm{SE}(\hat\beta_1)$ | 式 3.9;嚴格版用 t 分位數 |
| t 統計量 | $t = \hat\beta_1/\mathrm{SE}(\hat\beta_1)$ | 式 3.14;df = n−2 |
| 平均反應的 CI | $\hat y_0\pm t_{1-\alpha/2,n-2}\,\hat\sigma\sqrt{\frac1n+\frac{(x_0-\bar x)^2}{S_{xx}}}$ | 在 $\bar x$ 最窄;n 大時縮到 0 |
| 新觀測的 PI | $\hat y_0\pm t_{1-\alpha/2,n-2}\,\hat\sigma\sqrt{1+\frac1n+\frac{(x_0-\bar x)^2}{S_{xx}}}$ | 根號裡多 1,一定比 CI 寬 |
| 殘差標準誤 | $\mathrm{RSE} = \sqrt{\mathrm{RSS}/(n-p-1)}$ | 式 3.15/3.25;有單位 |
| R² | $R^2 = 1 - \mathrm{RSS}/\mathrm{TSS}$ | 式 3.17;含截距的訓練 OLS 介於 0 與 1;測試 R² 可為負 |
| F 統計量 | $F = \frac{(\mathrm{TSS}-\mathrm{RSS})/p}{\mathrm{RSS}/(n-p-1)}$ | 式 3.23;$H_0$ 下約為 1 |
| 學生化殘差 | $r_i = e_i/(\mathrm{RSE}\sqrt{1-h_i})$ | $|r_i|>3$ 可疑 |
| 槓桿值 | $h_i = \frac1n + \frac{(x_i-\bar x)^2}{\sum(x_j-\bar x)^2}$ | 式 3.37;平均恰為 $(p+1)/n$;$h_i=1/n+w_i$ |
| Cook's distance | $D_i=\frac{r_i^2}{p+1}\cdot\frac{h_i}{1-h_i}$ | 同時算進殘差與槓桿;影響圖的氣泡大小 |
| VIF | $\mathrm{VIF}(\hat\beta_j) = 1/(1-R^2_{X_j\mid X_{-j}})$ | $>5$ 或 $10$ 是警戒值;SE 膨脹 $\sqrt{\mathrm{VIF}}$ |
| 交互作用 | $Y = \beta_0 + (\beta_1+\beta_3X_2)X_1 + \beta_2X_2 + \varepsilon$ | 式 3.33;斜率隨 $X_2$ 移動 |
| 模型 | 截距 | TV | radio | newspaper | F | R² | RSE |
|---|---|---|---|---|---|---|---|
| 只有 TV | 7.0326 | 0.0475 (t 17.67) | — | — | 312.1 | 0.6119 | 3.259 |
| 只有 radio | 9.3116 | — | 0.2025 (t 9.92) | — | 98.4 | 0.3320 | 4.275 |
| 只有 newspaper | 12.3514 | — | — | 0.0547 (t 3.30) | 10.9 | 0.0521 | 5.093 |
| TV + newspaper | 5.7749 | 0.0469 (t 18.17) | — | 0.0442 (t 4.35) | 179.6 | 0.6458 | 3.121 |
| TV + radio | 2.9211 | 0.0458 (t 32.91) | 0.1880 (t 23.38) | — | 859.6 | 0.8972 | 1.681 |
| 三個都放 | 2.9389 | 0.0458 (t 32.81) | 0.1885 (t 21.89) | −0.0010 (t −0.18) | 570.3 | 0.8972 | 1.686 |
| TV + radio + TV×radio | 6.7502 | 0.0191 (t 12.70) | 0.0289 (t 3.24) | TV×radio 0.0011 (t 20.73) | — | 0.9678 | 0.944 |
newspaper 的 t 值一路
從 3.30(單獨)→ 4.35(加了 TV)→ −0.18(再加 radio)。
同一欄資料,三個結論。差別只在「控制了什麼」。
| 問題 | 診斷工具(標準名稱) | 會影響係數嗎 | 會影響 SE/檢定嗎 |
|---|---|---|---|
| 1. 非線性 | 殘差圖(residual plot)出現 U 形 | 會 | 會 |
| 2. 誤差相關 | 殘差對觀測順序圖(residuals vs time/order plot) | 外生性成立時不必然 | 會(講義情境下低估;一般方向視相關結構) |
| 3. 異質變異 | 殘差圖呈漏斗形 | 外生性成立時不會 | 會 |
| 4. 離群值 | 學生化殘差圖(studentized residual plot)$|r_i|>3$ | 可能(槓桿低時影響小) | 會(RSE 變大) |
| 5. 高槓桿 | 槓桿統計量 $h_i \gg (p+1)/n$、Cook's distance、影響圖 | 可能(落在趨勢上就不會;要合看殘差與 Cook's distance) | 會(落在趨勢上反而降低 SE) |
| 6. 共線性 | 相關矩陣(correlation matrix)、VIF | 仍無偏,但估計值不穩定、對資料很敏感 | 會(SE 膨脹 $\sqrt{\mathrm{VIF}}$) |
這些題目取自課程題庫,只給對錯與說明,不計分。答錯就回到對應章節重讀。
詞彙卡整理本章講義與 ISLP 第 3 章中常用的統計或機器學習專有名詞,正面附英文名稱。 先看正面的術語,試著說出定義,再翻面核對。可以洗牌複習,也可以搭配本章例子練習解釋。