← 回部落格 數學

最適直線的線性代數證明:正交投影、內積與正規方程

威威 Willy · 2026-10-04

威威學長|數據分析進階(大學補充)

📚 系列總覽:數據分析系列地圖|⬅️ 上一篇:SSE 偏微分與 Hessian 最小值檢定|➡️ 下一篇:用投影矩陣證明決定係數的幾何意義


上一回我們用偏微分把最適直線的 $a$、$b$ 硬解出來了。推是推出來了,可是推完手上只剩一堆 $\sum$,心裡大概只有一種感覺:「原來要這樣算」,至於「原來它在幹嘛」,還說不上來😅。(還沒看過的話,先回頭讀最適直線的微積分證明,兩條路對照著看更有味道。)

比如:課本一直說殘差要「正交」於行空間,那個正交到底在正交什麼?為什麼殘差一旦垂直,方程就解得出來?還有最玄的一條:$\dfrac{\partial S}{\partial b}=-2\langle\vec1,e\rangle$,偏微分和內積這兩樣看起來八竿子打不著的東西,怎麼會是同一組式子?這不是巧合吧😎

今天我們換一副眼鏡:線性代數。它不打算給你更多計算,它要給你一個畫面:你其實是在 $n$ 維空間裡,找一個離 $y$ 最近的點。 而那個點你國中就認識了,它叫垂足。


一、把資料打包成矩陣

先把「配一條直線」寫成矩陣乘法。定義

$$X=\begin{pmatrix}x_1 & 1\\ x_2 & 1\\ \vdots & \vdots\\ x_n & 1\end{pmatrix},\qquad \beta=\begin{pmatrix}a\\ b\end{pmatrix},\qquad y=\begin{pmatrix}y_1\\ y_2\\ \vdots\\ y_n\end{pmatrix}$$

三個角色一個一個介紹:

  • $X$ 這塊是設計矩陣,$n\times2$。第一行放所有的 $x_i$(你手上已知的那個變數),第二行全部塞 $1$:這個 $1$ 是留給截距 $b$ 的座位,因為 $b$ 前面永遠乘著一個 $1$。有幾筆資料,$X$ 就有幾列。
  • $\beta$(唸作 beta)是我們要解的那組係數,裡面裝著斜率 $a$ 和截距 $b$。
  • $y$ 就是把每一筆真實答案排成一條向量。

乘開來看看:

$$X\beta=\begin{pmatrix}x_1a+b\\ x_2a+b\\ \vdots\\ x_na+b\end{pmatrix}=\begin{pmatrix}\hat y_1\\ \hat y_2\\ \vdots\\ \hat y_n\end{pmatrix}$$

出來剛好是每一筆的預測值,也排成一條向量。所以「配一條直線」在矩陣語言裡就是這樣:找一個 $\beta$,讓 $X\beta$ 盡量接近 $y$。

二、為什麼這個方程組通常無解

那如果要求完美呢?寫下來就是

$$X\beta=y$$

注意這是一個方程組:$n$ 條方程式,卻只有 $2$ 個未知數($a$ 和 $b$),而 $n$ 通常遠大於 $2$。這個「條件太多、未知太少」的落差,就是整個故事的主角。

線性代數課本開頭就講:$X\beta=y$ 有解,若且唯若 $y$ 落在 $X$ 的行空間裡,記作 $C(X)$。(行空間就是把 $X$ 的兩個行向量拿去做各種倍數、各種相加,能掃出來的所有點。)

$C(X)$ 長什麼樣?

$$C(X)=\left\{c_1\begin{pmatrix}x_1\\ \vdots\\ x_n\end{pmatrix}+c_2\begin{pmatrix}1\\ \vdots\\ 1\end{pmatrix}\right\}$$

兩個向量撐出來的東西是一張平面,而且通過原點。這張紙就插在 $\mathbb{R}^n$ 這個 $n$ 維房間裡,它是二維的,房間卻是 $n$ 維的。

而 $y$ 是這房間裡一個任意的點。只要 $n\ge3$,要一張二維的紙剛剛好裝下這個任意點,機率是零。四筆資料有一筆歪掉,$y$ 就整個人飄離平面了。

什麼時候 $y$ 會真的躺在紙上?只有當所有 $(x_i,y_i)$ 精準共線的時候。但那種資料你也不需要配迴歸了,拿尺畫一條就好😁

所以「無解」是常態。

👑 威威說重點:$X\beta=y$ 幾乎永遠無解,因為 $y$ 是空間裡一個任意的點,而行空間只是一張二維的紙。翻成白話就是:現實資料本來就不會乖乖排成一直線。

那怎麼辦呢?🙃解法:不要要求「等於」,改成要求「最近」。

三、退一步:找平面上離 $y$ 最近的點

既然沒有 $\beta$ 能讓 $X\beta$ 精準等於 $y$,那就換一個問題問:在所有可能算出來的 $X\beta$ 裡面,挑一個離 $y$ 最近的:

$$\hat\beta=\arg\min_\beta\|y-X\beta\|^2$$

那個雙直線 $\|v\|$ 是「向量 $v$ 的長度」,$\|y-X\beta\|^2$ 就是每一筆誤差平方後加總。你發現了嗎?這條式子跟最小平方法的 $S(a,b)$ 一模一樣,只是換穿了向量的衣服。

現在幾何上場。平面外有一個點 $y$,要從平面上找一點離它最近,這題國中幾何就回答過了:垂足。從 $y$ 往平面拉一條垂直線,腳踩在平面上的那一點,就是最近的點。

令 $\hat y=X\hat\beta$(它是 $y$ 落在平面上的影子),則誤差向量

$$e=y-\hat y$$

必須垂直於整張平面 $C(X)$。這就是「正交投影」四個字的由來:投影,而且正交。

「垂直於整個平面」翻譯成內積,就是垂直於平面上每一個向量。而平面是由 $X$ 的兩個行向量撐起來的,所以只要檢查這兩個就夠了(它們垂直,整張平面就跟著垂直):

$$X^Te=\begin{pmatrix}x_{\rm col}\cdot e\\ \vec 1\cdot e\end{pmatrix}=\begin{pmatrix}0\\ 0\end{pmatrix}$$

這裡 $\vec1$ 是全部都是 $1$ 的向量,$X^T$ 是 $X$ 的轉置(行列對調),$x_{\rm col}$ 指 $X$ 的第一行。整條式子在說:殘差跟「$x$ 那一行」垂直,也跟「$1$ 那一行」垂直。

👑 威威說重點:最小平方法在幾何上只有一條規則:殘差要垂直於整張行空間。 垂直就到位了,往任何方向挪一步都會離 $y$ 更遠。

四、這兩個內積條件,就是那兩條偏微分

先看第二個條件,也就是殘差和全 $1$ 向量內積為零:

$$\langle \vec 1,e\rangle=\sum_{i=1}^n\left(y_i-ax_i-b\right)=0$$

$\langle u,v\rangle$ 就是內積,意思是「對應項相乘再全部加起來」。$n$ 個 $1$ 加起來是 $n$,整理一下:

$$n\bar y-an\bar x-nb=0\quad\Longrightarrow\quad b=\bar y-a\bar x$$

有沒有很眼熟?這正是上一篇 $\dfrac{\partial S}{\partial b}=0$ 得到的那一條。兩個證法在這裡撞在一起,而且不是巧合,因為

$$\frac{\partial S}{\partial b}=-2\langle \vec 1,e\rangle,\qquad \frac{\partial S}{\partial a}=-2\langle x_{\rm col},e\rangle$$

$e$ 本身是 $a$、$b$ 的函數,這兩個恆等式做一次連鎖律就有了。所以「偏微分等於零」和「殘差正交於行空間」,根本是同一件事在兩種語言裡的說法。微積分版的 $-2\sum(\cdots)$,就是內積版的 $-2\langle\cdot,e\rangle$ 換個寫法而已。

再看第一個條件,跟 $x$ 那一行內積為零:

$$\langle x_{\rm col},e\rangle=\sum_{i=1}^n x_i\left(y_i-ax_i-b\right)=0$$

展開:

$$\sum x_iy_i-a\sum x_i^2-b\sum x_i=0$$

跟上一節那條式子一字不差。把 $b=\bar y-a\bar x$ 代進去,重跑一次上一篇的收尾,得到

$$a=\frac{\sum(x_i-\bar x)(y_i-\bar y)}{\sum(x_i-\bar x)^2}$$

同一條公式,換一條路走到。

⚠️ 學長的警告:$b=\bar y-a\bar x$ 這條是「模型裡有截距」才有的福利。如果硬把截距拿掉(強迫直線過原點),$\vec 1$ 那一行就不見了,行空間從平面縮成一條線,上面這個漂亮的 $b$ 也跟著消失。這就是為什麼「沒有截距的迴歸」公式長得完全不一樣,不要混著用。

五、正規方程:把條件打包

剛才那兩個條件,其實可以合併成一個很漂亮的矩陣式子:

$$X^Te=0$$

把 $e=y-X\beta$ 塞進去:

$$X^T(y-X\beta)=0\;\Longrightarrow\;X^TX\beta=X^Ty$$

這叫做正規方程(normal equation)。「normal」在這裡是「垂直」的意思,這個名字本身就在說「殘差垂直於行空間」。

$X^TX$ 是 $2\times2$($X$ 是 $n\times2$,轉置後相乘,外面那圈 $n$ 縮掉了)。$2\times2$ 的反矩陣有現成公式,手算就能解決。只要 $X^TX$ 可逆,就有

$$\beta=(X^TX)^{-1}X^Ty$$

先把它寫成總和的形式,你才知道裡面裝了什麼(反矩陣的算法也可以複習矩陣的乘法與反矩陣):

$$X^TX=\begin{pmatrix}\sum x_i^2 & \sum x_i\\ \sum x_i & n\end{pmatrix},\qquad X^Ty=\begin{pmatrix}\sum x_iy_i\\ \sum y_i\end{pmatrix}$$

它的判別式是 $n\sum x_i^2-\left(\sum x_i\right)^2=n\sum(x_i-\bar x)^2$。只要 $x_i$ 不全相等,這個值就大於零,$X^TX$ 就逆得動(這個條件和上一篇 Hessian 正定的條件是同一件事,不用太意外)。

這條公式真正值錢的地方,是它不只在 $2$ 個變數時成立。 你有 $p$ 個解釋變數,$X$ 就變成 $n\times p$,$X^TX$ 變成 $p\times p$,公式一個字都不用改。這是線性代數證法相對微積分證法最大的優勢:多元迴歸不需要重推一次,維度自己會處理自己(多元迴歸)。

順便講個故事。最小平方法是在兩個人的吵架中誕生的:1805 年勒讓德(Legendre)先發表,1809 年高斯(Gauss)跳出來說「我 1795 年就在用了」,還講得煞有介事。勒讓德氣到不行😂。後來大家才慢慢知道,高斯真正厲害的是把它接到機率上,變成一整套推論。這條正規方程到今天還在跑,你手機裡每一條迴歸線、每一個模型訓練的第一步,背後都是它。


🌰 範例解析

範例 1:同一組資料,這次走矩陣路線。

$i$ 1 2 3 4 5
$x_i$ 1 2 3 4 5
$y_i$ 2 4 5 4 5

學長邏輯:微積分版是「先算離均差、再代公式」,矩陣版是「先寫 $X$、再乘反矩陣」。看起來步驟多,但每一步都是機械動作;而且最後那個「殘差正交」的驗算是這個證法的靈魂,不驗等於白做🙂

第一步,把矩陣寫出來。

$$X=\begin{pmatrix}1&1\\2&1\\3&1\\4&1\\5&1\end{pmatrix},\qquad y=\begin{pmatrix}2\\4\\5\\4\\5\end{pmatrix}$$

第二步,算 $X^TX$ 和 $X^Ty$。需要的四個總和是 $\sum x_i=15$、$\sum x_i^2=55$、$\sum x_iy_i=66$、$\sum y_i=20$。

$$X^TX=\begin{pmatrix}55 & 15\\ 15 & 5\end{pmatrix},\qquad X^Ty=\begin{pmatrix}66\\ 20\end{pmatrix}$$

第三步,求反矩陣。判別式

$$\det(X^TX)=55\cdot 5-15^2=275-225=50$$

對照一下上一節那條公式:$\sum(x_i-\bar x)^2=55-5\cdot 3^2=10$,乘上 $n=5$ 得到 $50$ ✓ 兩邊對上了。

$(X^TX)^{-1}$ 用 $2\times2$ 的公式(主對角線對調、副對角線變號、除以判別式):

$$(X^TX)^{-1}=\frac{1}{50}\begin{pmatrix}5 & -15\\ -15 & 55\end{pmatrix}=\begin{pmatrix}0.1 & -0.3\\ -0.3 & 1.1\end{pmatrix}$$

第四步,乘出 $\beta$。

$$\beta=(X^TX)^{-1}X^Ty=\frac{1}{50}\begin{pmatrix}5& -15\\ -15& 55\end{pmatrix}\begin{pmatrix}66\\ 20\end{pmatrix}=\frac{1}{50}\begin{pmatrix}5\cdot 66-15\cdot 20\\ -15\cdot 66+55\cdot 20\end{pmatrix}$$

$$\phantom{\beta}=\frac{1}{50}\begin{pmatrix}330-300\\ -990+1100\end{pmatrix}=\frac{1}{50}\begin{pmatrix}30\\ 110\end{pmatrix}=\begin{pmatrix}0.6\\ 2.2\end{pmatrix}$$

所以 $a=0.6$、$b=2.2$,直線是 $\hat y=0.6x+2.2$,跟微積分那條一模一樣。上半部 $30/50$ 是斜率,下半部 $110/50$ 是截距,乾乾淨淨。

第五步,檢查殘差真的垂直於行空間。

$$\hat y=X\beta=\begin{pmatrix}2.8\\3.4\\4.0\\4.6\\5.2\end{pmatrix},\qquad e=y-\hat y=\begin{pmatrix}-0.8\\ 0.6\\ 1.0\\ -0.6\\ -0.2\end{pmatrix}$$

$$\langle \vec 1,e\rangle=-0.8+0.6+1.0-0.6-0.2=0\ \checkmark$$

$$\langle x_{\rm col},e\rangle=1(-0.8)+2(0.6)+3(1.0)+4(-0.6)+5(-0.2)=-0.8+1.2+3.0-2.4-1.0=0\ \checkmark$$

兩個內積都精準歸零。$e$ 確實垂直於 $X$ 的兩行,也就垂直於整張 $C(X)$ 平面。

第六步,換一個 $\beta$ 試試,確認真的是最小。取 $\beta'=(0.5,2.4)^T$:

$$X\beta'=\begin{pmatrix}2.9\\3.4\\3.9\\4.4\\4.9\end{pmatrix},\qquad e'=y-X\beta'=\begin{pmatrix}-0.9\\ 0.6\\ 1.1\\ -0.4\\ 0.1\end{pmatrix}$$

$$\|e'\|^2=0.81+0.36+1.21+0.16+0.01=2.55$$

原本的 $\|e\|^2=0.64+0.36+1.00+0.36+0.04=2.4$。$2.55>2.4$,離開垂足就往遠處走,這正是投影的定義。

順手驗一個漂亮的恆等式:$\|e\|^2=2.4$、$\|\hat y-\bar y\vec 1\|^2=(-1.2)^2+(-0.6)^2+0^2+0.6^2+1.2^2=3.6$、$\|y-\bar y\vec 1\|^2=(-2)^2+0^2+1^2+0^2+1^2=6$,而 $2.4+3.6=6$。這就是 $SST=SSR+SSE$ 的向量版本。它其實是畢氏定理,因為 $\hat y-\bar y\vec1$ 和 $e$ 互相垂直。這個故事我們留到下一篇講。


範例 2:反過來看一個「有解」的極端案例。資料是 $(1,2)$、$(2,4)$,兩個點完美共線。

學長邏輯:這題的意義不在答案,而在讓你親眼看到「$y$ 落在行空間裡」長什麼樣子。

$$X=\begin{pmatrix}1&1\\2&1\end{pmatrix},\qquad X^TX=\begin{pmatrix}5&3\\3&2\end{pmatrix},\qquad X^Ty=\begin{pmatrix}10\\6\end{pmatrix}$$

判別式 $5\cdot2-3^2=1$,反矩陣是 $\begin{pmatrix}2&-3\\-3&5\end{pmatrix}$,所以

$$\beta=\begin{pmatrix}2&-3\\-3&5\end{pmatrix}\begin{pmatrix}10\\6\end{pmatrix}=\begin{pmatrix}20-18\\-30+30\end{pmatrix}=\begin{pmatrix}2\\0\end{pmatrix}$$

直線是 $\hat y=2x$,而 $y=(2,4)$ 剛好就等於 $2x$。殘差 $e=(0,0)$,長度是零。

唯一垂直於整張平面的向量,就是零向量。 什麼時候會這樣?當 $y$ 自己就躺在平面上時。這種資料叫「完美配適」,實務上幾乎不會遇到,但考試很愛考你認不認得出來🙃


範例 3:承上面,如果把 $x$ 全換成同一個數字呢?取三筆資料 $x=(3,3,3)$、$y=(1,2,3)$。

學長邏輯:先不要急著算,先看行空間長什麼樣。

$$X=\begin{pmatrix}3&1\\3&1\\3&1\end{pmatrix}$$

它的兩個行向量 $(3,3,3)$ 和 $(1,1,1)$ 根本在同一條線上(一個是另一個的 3 倍)。所以 $C(X)$ 只是一條線。

$$X^TX=\begin{pmatrix}27&9\\9&3\end{pmatrix},\qquad \det(X^TX)=27\cdot3-9^2=81-81=0$$

逆不動,因為 $\sum(x_i-\bar x)^2=0$。

幾何上發生什麼事?$y$ 投影到那條線上,只能落在 $\bar y=2$ 這個高度(行空間裡全是常數向量)。任何通過 $(3,2)$ 的直線,誤差都一樣,斜率愛多少就多少,答案不唯一。這題的最小殘差平方和是 $(-1)^2+0^2+1^2=2$,怎麼換斜率都一樣。

⚠️ 學長的警告:$X^TX$ 可逆的前提是「$x_i$ 不全相等」。資料裡 $x$ 全部一樣,就等於你根本沒有解釋變數,迴歸線是畫不出來的。看到 $\sum(x_i-\bar x)^2=0$,直接喊停。


🔍 即時小測

1. 為什麼 $n>2$ 的時候,$X\beta=y$ 通常無解?請用「行空間」三個字回答。

2. 正交投影的「最近點」要滿足什麼條件?用 $e$ 和行空間 $C(X)$ 的關係說一次。

3. 已知 $X^TX=\begin{pmatrix}10&4\\4&2\end{pmatrix}$、$X^Ty=\begin{pmatrix}8\\4\end{pmatrix}$,求 $\beta$。

4. 承第 3 題,解出來的斜率是 $a=0$。簡單說明這代表什麼。

5. 用 $x=1,3$($n=2$)驗證 $\det(X^TX)=n\sum(x_i-\bar x)^2$。

6. 為什麼正規方程要叫「normal」?跟「正常」有關係嗎?

📖 詳解:

1. 因為 $y$ 是 $\mathbb{R}^n$ 裡的任意點,而行空間 $C(X)$ 只是由兩個行向量撐出來的二維平面。$n\ge3$ 時,隨機一個 $y$ 幾乎不可能剛好躺在上面,所以方程組無解。

2. 令 $\hat y=X\hat\beta$,則 $e=y-\hat y$ 必須垂直於整個 $C(X)$(等價於 $X^Te=0$)。平面上所有點裡面,只有垂足滿足這件事,也只有它離 $y$ 最近。

3. 判別式 $10\cdot2-4^2=20-16=4$,反矩陣 $\frac14\begin{pmatrix}2&-4\\-4&10\end{pmatrix}$,

$$\beta=\frac14\begin{pmatrix}2&-4\\-4&10\end{pmatrix}\begin{pmatrix}8\\4\end{pmatrix}=\frac14\begin{pmatrix}16-16\\-32+40\end{pmatrix}=\frac14\begin{pmatrix}0\\8\end{pmatrix}=\begin{pmatrix}0\\2\end{pmatrix}$$

所以 $a=0$、$b=2$。(順帶一提,這組的 $x$ 是 $1,3$,$y$ 是 $2,2$。)

4. $a=0$ 代表 $x$ 完全沒有解釋力:$y$ 不隨 $x$ 變動,最好的預測就是永遠猜平均值 $2$。這條「直線」其實是水平的。

5. $\bar x=2$,$\sum(x_i-\bar x)^2=(1-2)^2+(3-2)^2=2$,所以 $n\sum(x_i-\bar x)^2=2\times2=4$。另一邊:$X^TX=\begin{pmatrix}1+9&1+3\\1+3&2\end{pmatrix}=\begin{pmatrix}10&4\\4&2\end{pmatrix}$,$\det=10\cdot2-4^2=4$ ✓ 兩邊都是 4。

6. 完全沒關係😂。「normal」在這裡是幾何上的「垂直」(法線那個 normal)。正規方程 $X^Te=0$ 的意思就是「$e$ 垂直於行空間」,名字直接把它的幾何內容講完了,不是說它「很正常」。

到這裡我們有了 $\hat y$、有了 $e$、也有了 $SST=SSR+SSE$。那課本那句「$R^2$ 就是 $r^2$」呢?下一篇我們用投影矩陣把它證出來,順便讓你知道 $R^2$ 其實就是一個 $\cos^2\theta$。

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