本章內容
2.1 模型與假設
2.2 模型配適度
2.3 統計推論
2.4 模型選擇
2.5 常見陷阱
2.6 參考資料
線性迴歸是最古老、也最常被低估的模型。它簡單到可以用一行程式配適,卻同時牽涉到估計、檢定、區間推論與模型選擇等統計學的核心問題。許多更複雜的方法,例如正則化、廣義線性模型,甚至神經網路的最後一層,本質上都是在線性迴歸的基礎上延伸出來的。
這一章依序回答四個問題:模型怎麼估計、估計得好不好、結論有多可信、該放進哪些變數。最後整理實務上最容易誤判的幾個陷阱,尤其是「如何解讀迴歸係數」。
2.1 模型與假設Model and Assumptions
最小平方估計
多元線性迴歸假設反應變數 y y y 與 p p p 個預測變數之間的關係為
y = β 0 + β 1 x 1 + ⋯ + β p x p + ε
y = \beta_0 + \beta_1 x_1 + \cdots + \beta_p x_p + \varepsilon
y = β 0 + β 1 x 1 + ⋯ + β p x p + ε 其中 ε \varepsilon ε 是平均為 0 的誤差項。給定 n n n 筆資料,最常用的估計方式是最小平方估計 (Least Squares Estimates, LSE):選出讓殘差平方和 (Residual Sum of Squares, RSS)最小的係數,
R S S = ∑ i = 1 n ( y i − y ^ i ) 2 , β ^ = arg min β R S S = ( X ⊤ X ) − 1 X ⊤ y
\mathrm{RSS} = \sum_{i=1}^{n} \left( y_i - \hat{y}_i \right)^2, \qquad \hat{\boldsymbol\beta} = \arg\min_{\boldsymbol\beta} \mathrm{RSS} = (\mathbf{X}^\top \mathbf{X})^{-1} \mathbf{X}^\top \mathbf{y}
RSS = i = 1 ∑ n ( y i − y ^ i ) 2 , β ^ = arg β min RSS = ( X ⊤ X ) − 1 X ⊤ y 其中 X \mathbf{X} X 是 n × ( p + 1 ) n \times (p+1) n × ( p + 1 ) 的設計矩陣(第一欄全為 1,對應截距)。只有一個預測變數的簡單線性迴歸,解可以寫成熟悉的形式:β ^ 1 = ∑ i ( x i − x ˉ ) ( y i − y ˉ ) / ∑ i ( x i − x ˉ ) 2 \hat\beta_1 = \sum_i (x_i - \bar x)(y_i - \bar y) / \sum_i (x_i - \bar x)^2 β ^ 1 = ∑ i ( x i − x ˉ ) ( y i − y ˉ ) / ∑ i ( x i − x ˉ ) 2 ,β ^ 0 = y ˉ − β ^ 1 x ˉ \hat\beta_0 = \bar y - \hat\beta_1 \bar x β ^ 0 = y ˉ − β ^ 1 x ˉ 。
RSS 代表模型「沒有解釋到」的變異。對於巢狀模型(nested models),多加入一個變數,最小平方解至少可以把新係數設為 0 而回到原模型,因此 RSS 只會持平或下降,不會上升 。這個性質正是後面模型選擇需要額外準則的原因。
最小平方與最大概似
如果進一步假設誤差 ε i ∼ iid N ( 0 , σ 2 ) \varepsilon_i \overset{\text{iid}}{\sim} N(0, \sigma^2) ε i ∼ iid N ( 0 , σ 2 ) ,對數概似函數為
log L ( β , σ 2 ) = − n 2 log ( 2 π σ 2 ) − R S S ( β ) 2 σ 2
\log L(\boldsymbol\beta, \sigma^2) = -\frac{n}{2}\log(2\pi\sigma^2) - \frac{\mathrm{RSS}(\boldsymbol\beta)}{2\sigma^2}
log L ( β , σ 2 ) = − 2 n log ( 2 π σ 2 ) − 2 σ 2 RSS ( β ) 對 β \boldsymbol\beta β 而言,最大化概似等同於最小化 RSS,所以此時 LSE 就是最大概似估計 (Maximum Likelihood Estimate, MLE)。
常見誤區Common pitfall
最小化 RSS 等於 MLE,只在誤差服從常態分布時成立 。若誤差是拉普拉斯分布,MLE 對應的是最小化絕對誤差和;若誤差有厚尾,LSE 仍然可以計算,但不再是最有效率的估計。另一方面,即使沒有常態假設,只要誤差平均為 0、彼此不相關且變異數相同,高斯-馬可夫定理(Gauss–Markov theorem)保證 LSE 是最佳線性不偏估計量(BLUE)。
四個模型假設
線性迴歸的估計與推論建立在以下假設上。以簡單線性迴歸為例:
假設
數學表述
違反時的影響
線性(linearity)
μ ( y ∣ x ) = β 0 + β 1 x \mu(y \mid x) = \beta_0 + \beta_1 x μ ( y ∣ x ) = β 0 + β 1 x
係數有偏誤,預測系統性偏離
獨立(independence)
各筆誤差 ε i \varepsilon_i ε i 彼此獨立
標準誤低估,區間過窄
常態(normality)
y ∣ x ∼ N ( β 0 + β 1 x , σ 2 ) y \mid x \sim N(\beta_0 + \beta_1 x, \sigma^2) y ∣ x ∼ N ( β 0 + β 1 x , σ 2 )
小樣本下 t t t 、F F F 檢定不準確
變異數相同(equal variance)
Var ( y ∣ x ) = σ 2 \operatorname{Var}(y \mid x) = \sigma^2 Var ( y ∣ x ) = σ 2 不隨 x x x 改變
標準誤錯誤,區間與檢定失準
前兩個假設影響最大:線性錯了,模型本身就錯;獨立性錯了(例如時間序列、同一位客戶的重複量測),所有的標準誤都會過於樂觀。常態性在樣本數大時,因中央極限定理而相對不那麼關鍵。
2.2 模型配適度Goodness of Fit
殘差標準誤
殘差標準誤 (Residual Standard Error, RSE)估計的是誤差項的標準差 σ \sigma σ :
R S E = σ ^ = R S S n − p − 1
\mathrm{RSE} = \hat\sigma = \sqrt{\frac{\mathrm{RSS}}{n - p - 1}}
RSE = σ ^ = n − p − 1 RSS 分母是殘差的自由度:n n n 筆資料扣掉 p p p 個斜率與 1 個截距。簡單線性迴歸時 p = 1 p = 1 p = 1 ,分母為 n − 2 n - 2 n − 2 。RSE 的單位與 y y y 相同,可以直接解讀為「預測值平均大約偏離實際值多少」。
與 RSS 不同,RSE 不是單調的 :加入一個幾乎沒有解釋力的變數時,RSS 只下降一點點,分母卻少了 1,RSE 反而可能上升。
決定係數 R 2 R^2 R 2 與調整後 R 2 R^2 R 2
R 2 = T S S − R S S T S S = 1 − R S S T S S , T S S = ∑ i = 1 n ( y i − y ˉ ) 2
R^2 = \frac{\mathrm{TSS} - \mathrm{RSS}}{\mathrm{TSS}} = 1 - \frac{\mathrm{RSS}}{\mathrm{TSS}}, \qquad \mathrm{TSS} = \sum_{i=1}^{n} (y_i - \bar y)^2
R 2 = TSS TSS − RSS = 1 − TSS RSS , TSS = i = 1 ∑ n ( y i − y ˉ ) 2 R 2 R^2 R 2 是模型解釋的變異佔總變異的比例,介於 0 與 1 之間。在簡單線性迴歸中,R 2 R^2 R 2 恰好等於 x x x 與 y y y 相關係數的平方;在多元迴歸中,它等於 y y y 與 y ^ \hat y y ^ 相關係數的平方。
由於 TSS 與模型無關、RSS 隨變數增加而不增,R 2 R^2 R 2 隨變數增加只會持平或上升 。因此不能用 R 2 R^2 R 2 或 RSS 比較變數個數不同的模型,否則永遠會選到最大的模型。調整後 R 2 R^2 R 2 (adjusted R 2 R^2 R 2 )以自由度修正:
R adj 2 = 1 − R S S / ( n − p − 1 ) T S S / ( n − 1 )
R^2_{\text{adj}} = 1 - \frac{\mathrm{RSS} / (n - p - 1)}{\mathrm{TSS} / (n - 1)}
R adj 2 = 1 − TSS / ( n − 1 ) RSS / ( n − p − 1 ) 加入無用的變數會讓 R adj 2 R^2_{\text{adj}} R adj 2 下降,所以它可以用來做粗略的模型比較。
F F F 檢定
想知道「模型整體是否有解釋力」,檢定的是 H 0 : β 1 = ⋯ = β p = 0 H_0: \beta_1 = \cdots = \beta_p = 0 H 0 : β 1 = ⋯ = β p = 0 :
F = ( T S S − R S S ) / p R S S / ( n − p − 1 )
F = \frac{(\mathrm{TSS} - \mathrm{RSS}) / p}{\mathrm{RSS} / (n - p - 1)}
F = RSS / ( n − p − 1 ) ( TSS − RSS ) / p 分子是「每個自由度解釋的變異」,分母是「每個自由度未解釋的變異」。注意分子的自由度是 p p p ,不含截距 β 0 \beta_0 β 0 ,因為虛無模型與完整模型都有截距。
更一般的偏 F F F 檢定 (partial F F F -test)比較兩個巢狀模型:小模型的殘差平方和為 R S S 0 \mathrm{RSS}_0 RSS 0 ,大模型多了 q q q 個參數、殘差平方和為 R S S \mathrm{RSS} RSS ,
F = ( R S S 0 − R S S ) / q R S S / ( n − p − 1 )
F = \frac{(\mathrm{RSS}_0 - \mathrm{RSS}) / q}{\mathrm{RSS} / (n - p - 1)}
F = RSS / ( n − p − 1 ) ( RSS 0 − RSS ) / q 分子是「新增變數多解釋了多少變異」,在 H 0 H_0 H 0 下服從 F q , n − p − 1 F_{q,\, n-p-1} F q , n − p − 1 分布。
t t t 檢定與 F F F 檢定的關係
summary(lm()) 為每個係數報告一個 t t t 檢定,檢定的是「在其他變數都在模型中的前提下,這個係數是否為 0」。對單一係數而言,它與 q = 1 q = 1 q = 1 的偏 F F F 檢定完全等價:t 2 = F t^2 = F t 2 = F 。
兩者的差別出現在類別變數 。一個有 K K K 個水準的類別變數會被編碼成 K − 1 K - 1 K − 1 個虛擬變數,lm() 的 t t t 檢定只告訴我們「每個水準與基準水準是否不同」,結果還會隨基準水準的選擇改變。要回答「這個類別變數整體是否重要」,應該用自由度為 K − 1 K - 1 K − 1 的 F F F 檢定:
fit <- lm(y ~ x1 + region, data = df)
summary(fit) # 每個係數(每個虛擬變數)各自的 t 檢定
car::Anova(fit) # 每個變數一個 F 檢定,類別變數整體檢定(預設 Type II)
fit0 <- lm(y ~ x1, data = df)
anova(fit0, fit) # 兩個巢狀模型的偏 F 檢定
2.3 統計推論Inference
p p p 值的正確意義
p p p 值的定義是:假設虛無假設 H 0 H_0 H 0 為真,觀察到「至少和實際觀察結果一樣極端」的檢定統計量的機率 。p p p 值很小,代表資料與 H 0 H_0 H 0 不太相容。
常見誤區Common pitfall
p p p 值是有用的工具,但很容易被誤用:
它不是 H 0 H_0 H 0 為真的機率 ,也不是效果大小。樣本數很大時,微不足道的效果也會得到極小的 p p p 值;樣本數很小時,真實而重要的效果也可能不顯著。應同時報告係數估計值與信賴區間。
多重檢定 :同時做 20 個 α = 0.05 \alpha = 0.05 α = 0.05 的檢定,即使所有虛無假設都為真,平均也會有 1 個「顯著」。需要 Bonferroni、FDR 等校正。
選擇後推論 :先用資料挑出變數,再對同一份資料報告 p p p 值,結果會過度樂觀。挑變數與做推論最好使用不同的資料。
信賴區間與預測區間
在簡單線性迴歸中,給定新的 x 0 x_0 x 0 ,點預測為 y ^ 0 = β ^ 0 + β ^ 1 x 0 \hat y_0 = \hat\beta_0 + \hat\beta_1 x_0 y ^ 0 = β ^ 0 + β ^ 1 x 0 。這個點預測可以回答兩個不同的問題:
信賴區間 (confidence interval):x = x 0 x = x_0 x = x 0 時 y y y 的平均值 μ ( y ∣ x 0 ) \mu(y \mid x_0) μ ( y ∣ x 0 ) 落在哪裡?它反映的是整條迴歸線估計的不確定性。
預測區間 (prediction interval):x = x 0 x = x_0 x = x 0 的下一筆個別觀察值 y 0 y_0 y 0 落在哪裡?它除了迴歸線的不確定性,還要加上個別資料點本身的隨機誤差。
信賴區間: y ^ 0 ± t n − 2 , 0.975 ⋅ σ ^ 1 n + ( x 0 − x ˉ ) 2 ∑ i ( x i − x ˉ ) 2 預測區間: y ^ 0 ± t n − 2 , 0.975 ⋅ σ ^ 1 + 1 n + ( x 0 − x ˉ ) 2 ∑ i ( x i − x ˉ ) 2
\begin{aligned}
\text{信賴區間:} \quad & \hat y_0 \pm t_{n-2,\,0.975} \cdot \hat\sigma \sqrt{\frac{1}{n} + \frac{(x_0 - \bar x)^2}{\sum_{i}(x_i - \bar x)^2}} \\
\text{預測區間:} \quad & \hat y_0 \pm t_{n-2,\,0.975} \cdot \hat\sigma \sqrt{1 + \frac{1}{n} + \frac{(x_0 - \bar x)^2}{\sum_{i}(x_i - \bar x)^2}}
\end{aligned}
信賴區間: 預測區間: y ^ 0 ± t n − 2 , 0.975 ⋅ σ ^ n 1 + ∑ i ( x i − x ˉ ) 2 ( x 0 − x ˉ ) 2 y ^ 0 ± t n − 2 , 0.975 ⋅ σ ^ 1 + n 1 + ∑ i ( x i − x ˉ ) 2 ( x 0 − x ˉ ) 2 95% 區間的 t t t 分位數在樣本數中等以上時約為 2,所以常見「估計值加減兩倍標準誤」的口訣。預測區間根號內多出的 1,來自新觀察值自己的誤差 ε 0 \varepsilon_0 ε 0 :預測誤差的期望值為 E [ ( y 0 − y ^ 0 ) 2 ] = σ 2 + Var ( y ^ 0 ) E[(y_0 - \hat y_0)^2] = \sigma^2 + \operatorname{Var}(\hat y_0) E [( y 0 − y ^ 0 ) 2 ] = σ 2 + Var ( y ^ 0 ) 。
比較
信賴區間
預測區間
對象
平均反應 μ ( y ∣ x 0 ) \mu(y \mid x_0) μ ( y ∣ x 0 )
單一新觀察值 y 0 y_0 y 0
n → ∞ n \to \infty n → ∞ 時
寬度趨近 0
寬度趨近 ± 1.96 σ \pm 1.96\sigma ± 1.96 σ
x 0 x_0 x 0 遠離 x ˉ \bar x x ˉ 時
變寬
變寬
兩種區間都在 x 0 = x ˉ x_0 = \bar x x 0 = x ˉ 時最窄,越往資料範圍的邊緣越寬。這也提醒我們:在資料範圍之外做外插,不確定性遠比直覺上大。
2.4 模型選擇Model Selection
當候選變數很多時,需要決定哪些變數該放進模型。前面已經說明,訓練資料上的 RSS 與 R 2 R^2 R 2 一定偏好最大的模型,因此需要其他準則。做法有兩類:
間接估計測試誤差 :在訓練誤差上加一個隨模型大小增加的懲罰項,例如 C p C_p C p 、AIC、BIC、調整後 R 2 R^2 R 2 。
直接估計測試誤差 :使用驗證集或交叉驗證,詳見第 5 章 。
C p C_p C p 、AIC 與 BIC
設模型含 d d d 個預測變數,σ ^ 2 \hat\sigma^2 σ ^ 2 是誤差變異數 σ 2 = Var ( ε ) \sigma^2 = \operatorname{Var}(\varepsilon) σ 2 = Var ( ε ) 的估計值,通常取包含所有變數的完整模型的 R S E 2 \mathrm{RSE}^2 RSE 2 。
Mallows' C p C_p C p :
C p = 1 n ( R S S + 2 d σ ^ 2 )
C_p = \frac{1}{n}\left( \mathrm{RSS} + 2 d \hat\sigma^2 \right)
C p = n 1 ( RSS + 2 d σ ^ 2 ) 訓練 RSS 會低估測試誤差,2 d σ ^ 2 2d\hat\sigma^2 2 d σ ^ 2 正是用來補償這個低估。若 σ ^ 2 \hat\sigma^2 σ ^ 2 是 σ 2 \sigma^2 σ 2 的不偏估計,C p C_p C p 就是測試均方誤差的不偏估計。選擇 C p C_p C p 最小的模型。
AIC (Akaike Information Criterion)適用於任何以最大概似法配適的模型,包括邏輯斯迴歸等分類模型:
A I C = − 2 log L + 2 d
\mathrm{AIC} = -2 \log L + 2d
AIC = − 2 log L + 2 d AIC 的理論基礎是估計模型與真實資料生成分布之間的 Kullback–Leibler 資訊損失。單一的 AIC 值沒有絕對意義,只有比較同一份資料上不同模型的 AIC 差異才有意義。對於誤差為常態的線性模型,AIC 與 C p C_p C p 成正比,兩者會選出相同的模型。
BIC (Bayesian Information Criterion)由貝氏模型比較推導而來,近似於各模型的後驗機率:
B I C = 1 n ( R S S + log ( n ) d σ ^ 2 )
\mathrm{BIC} = \frac{1}{n}\left( \mathrm{RSS} + \log(n) \, d \hat\sigma^2 \right)
BIC = n 1 ( RSS + log ( n ) d σ ^ 2 ) 一般形式為 − 2 log L + d log n -2\log L + d \log n − 2 log L + d log n 。當 n > 7 n > 7 n > 7 時 log n > 2 \log n > 2 log n > 2 ,BIC 對每個參數的懲罰比 AIC 與 C p C_p C p 重,因此傾向選出較小的模型 。
準則
每個參數的懲罰
傾向
適用範圍
C p C_p C p
2 σ ^ 2 2\hat\sigma^2 2 σ ^ 2
預測導向
線性迴歸
AIC
2 2 2
預測導向
所有概似模型
BIC
log n \log n log n
較小、較精簡的模型
所有概似模型
調整後 R 2 R^2 R 2
透過自由度
較大的模型
線性迴歸
補充Note
AIC 與 BIC 的目標不同。AIC 追求預測表現,樣本數增加時仍可能選入多餘的變數;BIC 追求找出「真實模型」,若真實模型在候選集合中,樣本數夠大時 BIC 會以趨近 1 的機率選中它。預測任務多偏好 AIC 或交叉驗證,重視解釋與精簡時則常用 BIC。
最佳子集選擇與前向逐步選擇
最佳子集選擇 (best subset selection)窮舉所有變數組合:
對每個 k = 1 , … , p k = 1, \ldots, p k = 1 , … , p ,配適全部 ( p k ) \binom{p}{k} ( k p ) 個含 k k k 個變數的模型,保留 RSS 最小者,記為 M k \mathcal{M}_k M k 。
在 M 0 , … , M p \mathcal{M}_0, \ldots, \mathcal{M}_p M 0 , … , M p 之間,用 C p C_p C p 、BIC、調整後 R 2 R^2 R 2 或交叉驗證選出最終模型。
第 1 步在固定模型大小下比較,用 RSS 沒有問題;第 2 步跨越不同大小,才需要懲罰項。總共要配適 2 p 2^p 2 p 個模型,p p p 超過三、四十就不可行。
前向逐步選擇 (forward stepwise selection)是貪婪的替代方案:從只有截距的模型開始,每一步在剩下的變數中加入讓 RSS 下降最多的那一個,產生一串巢狀模型,再以 C p C_p C p 等準則挑選。總共只需配適 1 + p ( p + 1 ) / 2 1 + p(p+1)/2 1 + p ( p + 1 ) /2 個模型。代價是它不保證找到全域最佳 :最好的兩變數模型不一定包含最好的單變數模型裡的那個變數。
在 R 中,leaps::regsubsets() 可以一次完成這兩種搜尋;bestglm::bestglm() 則能對廣義線性模型以 AIC、BIC 或交叉驗證做最佳子集選擇。以 ISLR 的 Hitters 資料(19 個預測變數)為例:
library(leaps)
Hitters <- na.omit(ISLR::Hitters)
fit <- regsubsets(Salary ~ ., data = Hitters, nvmax = 19,
method = "exhaustive") # 或 method = "forward"
s <- summary(fit)
which.min(s$cp); which.min(s$bic); which.max(s$adjr2)
coef(fit, which.min(s$bic)) # BIC 選出的模型係數
當 p > n p > n p > n
變數個數超過樣本數時,X ⊤ X \mathbf{X}^\top \mathbf{X} X ⊤ X 不可逆,最小平方解有無限多組,而且都能讓訓練資料的 RSS 等於 0。此時 σ ^ 2 \hat\sigma^2 σ ^ 2 無法估計,C p C_p C p 、AIC、BIC 也跟著失效。這種高維度情境需要不同的工具:收縮方法如脊迴歸與 Lasso(見第 3 章 )、主成分等降維方法(見第 4 章 ),並以交叉驗證選擇模型。
2.5 常見陷阱Common Pitfalls
遺漏變數與代理變數
在只有少數預測變數的迴歸中,某個變數可能只是代理變數 (surrogate / proxy),實際上替一個沒有放進模型的重要變數承擔了效果。例如以冰淇淋銷量預測溺水人數,會得到顯著的正係數,但真正的共同原因是氣溫。
這種現象稱為遺漏變數偏誤 (omitted variable bias):若真實模型包含 x 1 x_1 x 1 與 x 2 x_2 x 2 ,卻只配適 x 1 x_1 x 1 ,則 β ^ 1 \hat\beta_1 β ^ 1 的期望值會變成 β 1 + β 2 δ \beta_1 + \beta_2 \delta β 1 + β 2 δ ,其中 δ \delta δ 是 x 2 x_2 x 2 對 x 1 x_1 x 1 迴歸的斜率。只要被遺漏的變數同時影響 y y y 又與 x 1 x_1 x 1 相關,係數就會有偏誤。
反向迴歸
迴歸是不對稱的:y y y 對 x x x 的迴歸最小化的是垂直方向的誤差,x x x 對 y y y 的迴歸最小化的是水平方向的誤差。兩條迴歸線的斜率分別為 r s y / s x r \, s_y / s_x r s y / s x 與 r s x / s y r \, s_x / s_y r s x / s y ,除非 ∣ r ∣ = 1 |r| = 1 ∣ r ∣ = 1 ,否則把其中一條「反解」並不會得到另一條。因此應該依照要預測或解釋的對象決定誰是反應變數:要預測 y y y ,就配適 lm(y ~ x),不要用 lm(x ~ y) 再反推。
異質變異
異質變異 (heteroscedasticity)指誤差變異數隨 x x x 或預測值改變。最直接的檢查方式是畫殘差圖 :橫軸為配適值 y ^ \hat y y ^ ,縱軸為殘差。若殘差呈現漏斗狀,越往右越分散,就是典型的異質變異。
此時 β ^ \hat{\boldsymbol\beta} β ^ 仍然不偏,但標準誤、信賴區間與 p p p 值都不可靠。常見的處理方式包括:對 y y y 做轉換(如 log y \log y log y 或 y \sqrt{y} y )、使用加權最小平方法(weighted least squares),或改用異質變異穩健標準誤(heteroscedasticity-consistent standard errors)。
殘差圖也能順便檢查非線性:若殘差呈現 U 字型等系統性的形狀,表示線性假設不成立。
常態性檢查
以殘差的常態 Q-Q 圖檢查常態假設:點大致落在對角線上即可。尾端明顯偏離時,小樣本下的 t t t 、F F F 檢定與預測區間都會失準。
如何解讀係數
常見誤區Common pitfall
不能比較同一個變數在兩個不同模型中的 β \beta β 。 β j \beta_j β j 的意義是「在這個模型中其他變數固定不變 時,x j x_j x j 增加一單位,y y y 平均改變多少」。模型裡放了哪些其他變數,決定了「固定什麼」,係數的意義與標準誤都隨之改變;係數只在它所屬的模型中有明確定義。
也不能用 β \beta β 的大小排序變數的重要性。 係數大小取決於變數的單位,而且只反映邊際效果;當變數彼此高度相關時,一個重要的變數也可能因為共線性而不顯著。
交互作用與非線性
若 x 1 x_1 x 1 對 y y y 的效果取決於 x 2 x_2 x 2 的大小,就需要加入交互作用項 (interaction term)x 1 x 2 x_1 x_2 x 1 x 2 :
y = β 0 + β 1 x 1 + β 2 x 2 + β 3 x 1 x 2 + ε
y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \beta_3 x_1 x_2 + \varepsilon
y = β 0 + β 1 x 1 + β 2 x 2 + β 3 x 1 x 2 + ε 此時 x 1 x_1 x 1 的效果是 β 1 + β 3 x 2 \beta_1 + \beta_3 x_2 β 1 + β 3 x 2 。可以用交互作用圖(interaction plot)初步觀察:各組的線若不平行,代表可能有交互作用。依照階層原則(hierarchical principle),模型中有交互作用項時,應該保留對應的主效果。
預測變數與 y y y 之間若有非線性關係,可以先畫兩兩散布圖(pairwise scatter plot)觀察,再加入多項式項或轉換(如 x 2 x^2 x 2 、log x \log x log x )。這樣的模型對參數而言仍是線性的,所以仍可用最小平方法估計。
共線性與 VIF
係數估計量的共變異數矩陣為
Var ( β ^ ) = σ 2 ( X ⊤ X ) − 1
\operatorname{Var}(\hat{\boldsymbol\beta}) = \sigma^2 (\mathbf{X}^\top \mathbf{X})^{-1}
Var ( β ^ ) = σ 2 ( X ⊤ X ) − 1 當部分預測變數高度相關,X ⊤ X \mathbf{X}^\top \mathbf{X} X ⊤ X 接近奇異矩陣,它的反矩陣中對角線元素會變得很大 ,對應係數的標準誤 se ( β ^ j ) \operatorname{se}(\hat\beta_j) se ( β ^ j ) 跟著膨脹。具體而言,在含截距的模型中
Var ( β ^ j ) = σ 2 ( 1 − R j 2 ) ∑ i ( x i j − x ˉ j ) 2
\operatorname{Var}(\hat\beta_j) = \frac{\sigma^2}{(1 - R_j^2) \sum_{i} (x_{ij} - \bar x_j)^2}
Var ( β ^ j ) = ( 1 − R j 2 ) ∑ i ( x ij − x ˉ j ) 2 σ 2 其中 R j 2 R_j^2 R j 2 是以其他所有預測變數對 x j x_j x j 迴歸得到的 R 2 R^2 R 2 。分母中的 1 / ( 1 − R j 2 ) 1/(1 - R_j^2) 1/ ( 1 − R j 2 ) 稱為變異數膨脹因子 (Variance Inflation Factor, VIF):
V I F j = 1 1 − R j 2
\mathrm{VIF}_j = \frac{1}{1 - R_j^2}
VIF j = 1 − R j 2 1 VIF 等於 1 表示 x j x_j x j 與其他變數完全不相關;經驗上 VIF 超過 5 或 10 就值得注意。共線性不會讓預測變差,卻會讓個別係數極不穩定、正負號甚至可能反轉。處理方式包括移除或合併高度相關的變數、改用脊迴歸(見第 3 章 ),或先做主成分分析。
2.6 參考資料References
James, Witten, Hastie & Tibshirani, An Introduction to Statistical Learning (ISLR),Springer, 2013,第 3、6 章。
Hastie, Tibshirani & Friedman, The Elements of Statistical Learning (ESL),2nd ed., Springer, 2009,第 3、7 章。
Fox, Applied Regression Analysis and Generalized Linear Models , 3rd ed., SAGE, 2016。
Mallows, "Some Comments on C p C_p C p ", Technometrics , 1973。
Akaike, "A New Look at the Statistical Model Identification", IEEE Transactions on Automatic Control , 1974。
Schwarz, "Estimating the Dimension of a Model", The Annals of Statistics , 1978。
Wasserstein & Lazar, "The ASA Statement on p-Values: Context, Process, and Purpose", The American Statistician , 2016。