← 回部落格 數學

殘差分析:R² 沒問題,不代表模型沒問題

威威 Willy · 2026-10-13

威威學長|高一數據分析系列

📚 系列總覽:數據分析系列地圖|⬅️ 上一篇:為什麼「用 Y 預測 X」不是把斜率倒數?兩條迴歸線…|➡️ 下一篇:SSE 偏微分與 Hessian 最小值檢定


一條配好的迴歸直線,報告裡寫著 $R^2=0.6$。這個數字不算漂亮,但也不算難看,多數人看到這裡就收工了。

可是把殘差一個一個算出來、按 $x$ 的順序排成一列,你可能會看到它們不是亂的:左邊負、中間正、右邊又負。那是一個倒 U 的形狀。

$R^2$ 完全不會告訴你這件事。它是把所有殘差平方後加總起來的一個數字,加總這個動作會把「排列順序」整個抹掉。同樣的 $SSE$,可能是隨機散開,也可能排成一個漂亮的圖案,而這兩種情況的意義天差地遠。

殘差是什麼,跟離均差哪裡不一樣

殘差的定義很直白:

$$e_i=y_i-\hat y_i$$

觀察值減掉模型配出來的值。它問的是「這條線沒解釋到的部分有多少」。

注意它跟離均差不是同一件事。離均差是 $y_i-\bar y$,用的是平均值當基準;殘差用的是配適值 $\hat y_i$。分母不一樣,意義也不同:

  • 離均差問「這個點離全體平均多遠」:那是總變異的原料。
  • 殘差問「這個點離模型預測多遠」:那是模型沒解釋掉的部分。

這就是 $SST=SSR+SSE$ 那條分解的來源:總變異 = 被模型解釋的 + 沒被解釋的。你已經在最適直線的微積分證明裡看過它,殘差就是最後那一項的原料。

兩個一定成立的性質(可以拿來對帳)

只要模型有截距項,而且係數是用最小平方法配的,殘差一定滿足兩件事:

$$\sum_i e_i=0,\qquad \sum_i x_i\,e_i=0$$

第一條說殘差「加起來剛好抵銷」,第二條說殘差跟 $x$ 不成線性關係。

它們不是巧合,是正規方程的直接後果:最小平方法在讓 $SSE$ 最小的地方停下,而那個停下來的條件正好就是這兩條。所以它們是「你算對了」的免費證據,不是需要另外記的定理。

⚠️ 學長的警告:把殘差加起來,如果沒有得到 $0$,先別急著懷疑方法,九成是你算術錯了。這是最便宜的一次自我檢查。順帶一提,用電腦算的時候你可能會看到 $-0.0$,那是浮點數的產物,不是真的有「負零」。

把殘差排出來,只有四種長相值得在意

殘差圖不需要很花俏,把 $e_i$ 按 $x$ 的順序排成一列,或畫成點,就夠看了。

第一種:隨機散開。 正的負的混在一起、沒有順序感、寬度大致固定。這是你要的樣子。它不代表模型是對的,只代表你手上這條線沒留下明顯的破綻。

第二種:彎曲。 殘差按 $x$ 排起來像一個弧形:中間一段全正、兩端全負(或反過來)。這是最有價值的訊號之一:它直接告訴你「直的不夠」。你需要的不是換一批資料,而是加一個平方項,讓線可以彎。這件事的細節在多項式迴歸那篇。

第三種:漏斗(喇叭)。 殘差的寬度隨 $x$ 變大而變寬。這不是「模型形狀錯」,而是誤差的大小本身不是固定的。這會影響後面做檢定時的信心程度:平均值那條線也許還行,但「所有點的誤差都差不多大」這個假設不成立。

第四種:一個點離很遠。 其他點都乖乖擠在一條帶子裡,就一個孤零零地飛出去。先別刪掉它,也別急著解釋它。要問的是:這是資料打錯、還是真的有一個特別的個案?兩種答案會導向完全不同的處理。

標準化殘差:跨尺度比較的那把尺

不同的資料有不同的單位,殘差 $-0.8$ 在一組資料裡可能是「很小」,在另一組裡可能是「很誇張」。要跨尺度比較,就得把它除上一個尺度:

$$z_i=\frac{e_i}{s},\qquad s=\sqrt{\frac{SSE}{n-2}}$$

$s$ 叫做殘差標準差。它有兩個地方值得停下來看:

一是除以 $n-2$ 而不是 $n$。理由是自由度:你用了兩個係數(斜率與截距)去配這條線,所以資料能自由變化的額度少了兩個。這件事跟樣本標準差除以 $n-1$ 是同一個道理,只是參數多了一個。

二是 $z_i$ 的判讀慣例:$|z_i|>2$ 通常被當成「值得看一眼」的旗子。這只是慣例,不是定理:如果殘差大致是鐘形分布,超過兩個標準差本來就不常發生,所以它是一個方便的篩子,不是判決。

殘差乾淨,看不出來的事

這一段要講清楚,因為它最容易被過度解讀。

殘差好看不等於模型正確。它只能告訴你「沒有明顯的破綻」,不能告訴你「沒有問題」。特別是:如果有一個真正重要的變數沒放進模型,而且它跟 $x$ 沒有明顯關係,那它就會被塞進殘差裡,讓殘差看起來只是「雜訊變大」,你不會看到任何形狀。

還有一件更常被搞混的事:殘差是在現有資料範圍內的診斷。它不會告訴你「把 $x$ 拉到範圍外會怎樣」。那叫外推,而外推的風險跟殘差好不好看完全無關。

👑 威威說重點:殘差圖問的是「這條線有什麼破綻」,不是「這個結論對不對」。它是一種偵錯工具,不是因果證明。

換你動手

底下這組資料在整篇裡都會用到,請先把它抄下來:$x=1,2,3,4,5$,$y=2,4,5,4,5$。

練習 1:配適直線是 $\hat y=2.2+0.6x$。算出五個殘差,並驗證 $\sum e_i=0$。

先算配適值:$x=1$ 給 $2.8$、$2$ 給 $3.4$、$3$ 給 $4.0$、$4$ 給 $4.6$、$5$ 給 $5.2$。

殘差依序是 $2-2.8=-0.8$、$4-3.4=0.6$、$5-4.0=1.0$、$4-4.6=-0.6$、$5-5.2=-0.2$。

加起來:$-0.8+0.6+1.0-0.6-0.2=0$ ✓ 對上了,所以前面的算術沒有跑掉。

練習 2:從這五個殘差算出 $SSE$、$SST$、$R^2$ 與 $s$。

$SSE$ 是殘差平方和:$0.64+0.36+1.00+0.36+0.04=2.40$。

$SST$ 是總變異,用離均差算($\bar y=4$):$4+0+1+0+1=6.00$。

$R^2=1-\dfrac{SSE}{SST}=1-\dfrac{2.40}{6.00}=0.60$。

$s=\sqrt{\dfrac{SSE}{n-2}}=\sqrt{\dfrac{2.40}{3}}=\sqrt{0.8}\approx0.894$。

練習 3:這五個殘差按 $x$ 的順序是 $-0.8,\ 0.6,\ 1.0,\ -0.6,\ -0.2$。這組殘差有沒有系統性?你怎麼判讀?

它們的符號是「負、正、正、負、負」:中間兩個是正的,兩端是負的,排起來是一個倒 U。

這是一個值得停下來看的訊號:它不是隨機散開,而是有一個形狀,提示這條直線可能不夠彎。但也要把話說完整:只有五個點,倒 U 也可能純粹是巧合。這是一個假設,不是結論。要確認就得配一條有平方項的曲線,看殘差的形狀有沒有消失,而那正是多項式迴歸在做的事。


拿一組你手上真的配過直線的資料(課堂實驗、任何你追蹤過的數字),這次不要看 $R^2$,只做一件事:把殘差算出來,按橫軸的順序寫成一列,然後盯著符號看。如果正負號是連續出現的(負負正正正負負這種),那就值得再往下追;如果它們交錯得像在洗牌,這條直線大概就是你要的。

如果你看到的是漏斗形狀、或是一個點飛得特別遠,把資料跟你的殘差丟給我,我們一起看那是不是該換一種處理方式。

威威
威威 Willy
德國數學碩士、前 Amazon 資料科學家。數學是邏輯的語言,英文是世界的窗口。
← 回部落格