← 回部落格 數學

為什麼「用 Y 預測 X」不是把斜率倒數?兩條迴歸線的祕密

威威 Willy · 2026-09-25

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

📚 系列總覽:數據分析系列地圖|⬅️ 上一篇:斜率與相關係數的關係,以及「向平均數迴歸」|➡️ 下一篇:R² 沒問題,不代表模型沒問題


$y=2x+1$ 移項,得到 $x=\frac12y-\frac12$。動作完全合法。但如果你在考卷上把這條線寫成「用 $y$ 預測 $x$ 的最適直線」,那一格是零分,因為那條線不是移項來的,它是拿同一批點重新配出來的另一條線。

移項只是換寫法,配線是重新配一條

$y=2x+1$ 移項確實會得到 $x=\frac12y-\frac12$,這是國中一元一次方程式,沒錯。但注意:你只是把同一條線換個寫法,線本身一根頭髮都沒動。

「用 $y$ 預測 $x$ 的最適直線」是另一件事。它是把資料點的 $x$ 當成被預測的對象、把 $y$ 當成輸入,重新跑一次最小平方法配出來的另一條線。既然是重新配的,憑什麼跟原來那條一樣?

除非 $|r|=1$(所有點完美共線)。其他情況,兩條線都過 $(\bar x,\bar y)$,但斜率不同,像剪刀的兩片刀刃。

為什麼直覺會滑掉?因為我們學「反函數」的時候,習慣把 $x$、$y$ 對調再解出來。求 $y=2x+1$ 的反函數,就是把 $x$、$y$ 對調變成 $x=2y+1$,再解成 $y=\frac{x-1}{2}$。這套動作在函數的世界完全正確。

但這裡不是函數的世界,這裡是配適的世界。你手上不是一條乾淨的方程式,是一團散落的資料點。反函數問的是「同一條線怎麼換寫法」;迴歸問的是「換一個方向,哪條線跟這團點最貼」。問題根本不一樣,答案當然不一樣。

誤差量的方向不同,答案就不同

為什麼會配出不同的線?因為「誤差」的定義換了。

用 $x$ 預測 $y$:輸入是 $x$,預測值落在 $y$ 軸上,誤差是鉛直距離

$$e_i=y_i-\hat y_i$$

最小平方法最小化 $\sum_{i=1}^{n}(y_i-\hat y_i)^2$。把上一章的結論搬過來,這條線的斜率是

$$a_{y|x}=r\cdot\frac{S_Y}{S_X}$$

用 $y$ 預測 $x$:輸入是 $y$,預測值落在 $x$ 軸上,誤差是水平距離

$$e_i=x_i-\hat x_i$$

最小化的換成 $\sum_{i=1}^{n}(x_i-\hat x_i)^2$。

差別在哪?差別在被平方的那組數字整批換掉了。同一堆點,鉛直距離和水平距離是兩組完全不同的量,配出來的線當然不同。

好消息是你不必重推。把 $x$ 和 $y$ 的角色整個對調,公式長得一模一樣,只是 $S_X$ 和 $S_Y$ 互換位置:

$$a_{x|y}=r\cdot\frac{S_X}{S_Y}$$

👑 學長的口訣:誰被輸入,誰就進分母。 用 $x$ 預測 $y$,$x$ 是輸入、進分母:$a_{y|x}=r\dfrac{S_Y}{S_X}$。 用 $y$ 預測 $x$,$y$ 是輸入、進分母:$a_{x|y}=r\dfrac{S_X}{S_Y}$。 兩個都帶著 $r$,方向也都被 $r$ 決定。$r<0$ 兩條一起往下,$r>0$ 兩條一起往上,不會一條正一條負。

兩個係數相乘是 $r^2$

把兩個迴歸係數相乘:

$$a_{y|x}\cdot a_{x|y}=\left(r\frac{S_Y}{S_X}\right)\left(r\frac{S_X}{S_Y}\right)=r^2$$

$S_X$、$S_Y$ 全部消掉,只剩 $r^2$。這一行就是整篇的核心。

因為 $r^2\le1$,所以兩個迴歸係數的乘積永遠不會超過 1。

  • $|r|=1$:所有點完美共線。此時 $a_{y|x}=\frac{S_Y}{S_X}$、$a_{x|y}=\frac{S_X}{S_Y}$,兩者互為倒數,兩條線重合,剪刀完全閉合。
  • $|r|<1$:乘積是小於 1 的正數,兩者不可能是倒數,兩條線就是不同的線。

順帶送你一個很漂亮的副產品。當 $r>0$ 時,

$$r=\sqrt{a_{y|x}\cdot a_{x|y}}$$

$r$ 是兩個迴歸係數的幾何平均。 所以有人問「斜率到底要看哪一條」,正確答案是:兩條都看,取幾何平均,那就是 $r$。

為什麼是幾何平均、不是算術平均?因為 $r$ 天生帶著乘法的結構。$a_{y|x}$ 和 $a_{x|y}$ 是兩個方向相反的伸縮:一個把 $X$ 的離散程度放大到 $Y$ 的尺度,另一個縮回來。要消掉這對反向伸縮,你得相乘再開根號,不是相加除以二。

還有一個很省時間的觀察:$a_{y|x}$ 和 $a_{x|y}$ 一定同號。 因為它們都是 $r$ 乘上一個正數($\frac{S_Y}{S_X}$ 或 $\frac{S_X}{S_Y}$,標準差都是正的)。所以你看其中一個的符號,就知道 $r$ 的方向,也知道另一條線的方向。不會出現一條往上、一條往下的畫面。

原始座標 vs. 標準化座標

「兩條線的斜率互為倒數」這句話,只在標準化座標裡對。

在原始座標裡,迴歸線 1 寫成 $y=m_1x+c$,$m_1=a_{y|x}=r\frac{S_Y}{S_X}$。迴歸線 2 要寫成同樣的形式得先反解:

$$m_2=\frac{1}{a_{x|y}}=\frac{S_Y}{r\,S_X}$$

兩者相乘

$$m_1m_2=\frac{S_Y^{\,2}}{S_X^{\,2}}$$

不是 1。除非 $S_X$ 剛好等於 $S_Y$,不然這兩條線在原始座標裡根本不是互為倒數的關係。

真正互為倒數的畫面,要先把兩軸都標準化。標準化之後兩條線變成 $z_y=rz_x$ 與 $z_y=\frac1r z_x$,斜率 $r$ 與 $\frac1r$,這兩個才是倒數,乘積才是 1。

標準化之後:一把剪刀

畫圖之前先說好一件事:兩軸都先標準化。不標準化的話,兩軸單位不同(公分 vs 公斤),量到的角度會混進 $S_X$、$S_Y$ 的比例,看不出真正的結構。

標準化之後,兩條線是

$$\text{線 1(用 }x\text{ 預測 }y\text{):}\quad z_y=r\,z_x$$

$$\text{線 2(用 }y\text{ 預測 }x\text{):}\quad z_y=\frac{1}{r}\,z_x$$

兩條都過原點(原點就是 $(\bar x,\bar y)$),斜率分別是 $r$ 和 $\frac1r$,像一把剪刀的兩片刀刃。

  • $r=1$:兩條都變成 $z_y=z_x$,完全重合,剪刀閉合,夾角 $0°$。
  • $r$ 變小:$r$ 越小,$\frac1r$ 越大,兩片刀刃張開。
  • $r\to0$:線 1 斜率趨近 $0$(水平線 $z_y=0$),線 2 斜率趨近無窮大(鉛直線 $z_x=0$)。兩條互相垂直,夾角 $90°$。
  • $r<0$:線 1 往下走,線 2 也往下走,剪刀張在另一對象限,但張角只跟 $|r|$ 有關。

張角 $\phi$ 有公式。用兩直線夾角公式 $\tan\phi=\left|\dfrac{m_2-m_1}{1+m_1m_2}\right|$,代 $m_1=r$、$m_2=\frac1r$。注意 $m_1m_2=1$,所以分母是 2:

$$\tan\phi=\frac{\left|\frac{1}{r}-r\right|}{2}=\frac{1-r^2}{2|r|}$$

也可以寫成更對稱的版本

$$\cos\phi=\frac{2|r|}{1+r^2}$$

代數字感受一下:

$\lvert r\rvert$ 剪刀張角 $\phi$
$1$ $0°$
$0.99$ 約 $0.58°$
$0.9$ 約 $6.0°$
$0.6$ 約 $28.1°$
$0.5$ 約 $36.9°$
$0.3$ 約 $56.6°$
$0$ $90°$

看一眼就好:$r=0.9$ 已經算「強相關」了,剪刀還是張開 6 度。$r=0.5$ 的時候張了快 37 度,這根本不是小角度。這就是為什麼不能拿一條迴歸線去反推另一條。

翻成實務語言:$|r|=0.3$ 的時候張到 56.6 度,兩條線幾乎是兩條不同用途的線。你拿第一條算出「$x=100$ 時 $y$ 大約是 60」,別人拿第二條反推「看到 $y=60$,$x$ 平均是多少」,會得到一個差很多的答案。方向錯了,數字就錯了,而且錯得很難自己發現。

那個 $\cos\phi=\dfrac{2|r|}{1+r^2}$ 是標準化座標下的張角。直接在原始座標(公分 vs 公斤)上量角度,量到的數字會混進 $S_X$、$S_Y$ 的比例,不是 $r$ 決定的。量夾角之前先標準化,這是行規。

會咬人的四個地方

反推陷阱。 這是最常見的。用「身高預測體重」配出 $\hat y=0.5x-20$,很多人就直接寫成「體重預測身高:$x=2y+40$」。錯。正確做法是把 $x$、$y$ 的角色對調,拿原始資料重跑一次最小平方法配線。$|r|$ 越小時,兩條線差得越遠。

它是「向平均數迴歸」的另一面。 上一章說 $\hat Z_y=rZ_x$,預測值會向平均收縮。現在補上另一半:$\hat Z_x=rZ_y$。兩個方向都在收縮,收縮係數都是 $r$。 差別只在 $S_X$、$S_Y$ 不同,所以換算成實際單位時,兩邊看起來收縮的量不一樣。

$r$ 很小時,兩個方向都幾乎沒用。 當 $r\to0$,$a_{y|x}\to0$ 也 $a_{x|y}\to0$,兩條線一條水平、一條鉛直。這代表:不管 $x$ 給多少,$y$ 的最佳猜測都是 $\bar y$;不管 $y$ 給多少,$x$ 的最佳猜測都是 $\bar x$。兩邊都學不到東西,這才是 $r=0$ 真正的長相。

以為「最適直線」只有一條。 課本標題常常直接寫「這筆資料的最適直線」,讓你以為答案唯一。但只要你沒指定「用誰預測誰」,這個問題本身就是不完備的。同一筆資料、同一組點,會有兩條最適直線,各自服務一個方向。

⚠️ 學長的警告:看到題目寫「求 $x$ 與 $y$ 的最適直線」,一定往上看一行,確認自變數是誰。題幹寫「以 $x$ 預測 $y$」或「以 $y$ 預測 $x$」,就是在考你有沒有抓到方向。抓到就只是代公式,沒抓到,你會很認真地把兩個方向都算對,卻還是拿不到分。

動手之前,先在紙上寫一句「輸入是誰、被預測的是誰」。這個三秒鐘的習慣,很值錢。


動手算

範例 1(兩個方向都算一遍):某資料 $r=0.6$,$S_x=2$,$S_y=5$,$\bar x=10$,$\bar y=30$。求 (1) 用 $x$ 預測 $y$ 的最適直線 (2) 用 $y$ 預測 $x$ 的最適直線 (3) 驗證兩個迴歸係數的乘積 (4) 把第二條寫成 $y=\dots$ 的形式,看看斜率是多少。

(1) $a_{y|x}=r\dfrac{S_y}{S_x}=0.6\times\dfrac{5}{2}=1.5$。過 $(\bar x,\bar y)=(10,30)$,所以 $b=30-1.5\times10=15$。直線:$\hat y=1.5x+15$。

(2) $a_{x|y}=r\dfrac{S_x}{S_y}=0.6\times\dfrac{2}{5}=0.24$。$c=10-0.24\times30=10-7.2=2.8$。直線:$\hat x=0.24y+2.8$。

(3) $1.5\times0.24=0.36=0.6^2$ ✓。兩個都正,因為 $r>0$。

(4) 反解:$y=\dfrac{x-2.8}{0.24}=\dfrac{1}{0.24}x-\dfrac{2.8}{0.24}\approx4.1667x-11.667$。而第一條的斜率是 1.5,兩者乘積

$$1.5\times4.1667=6.25=\left(\frac{5}{2}\right)^2=\left(\frac{S_y}{S_x}\right)^2$$

果然不是 1。所以兩條線在原始座標裡不是互為倒數,除非你先把兩軸標準化。順手驗算這條線有沒有過平均:$4.1667\times10-11.667=41.667-11.667=30$ ✓

範例 2(破除「倒數」直覺):某資料 $r=0.5$,$S_x=10$,$S_y=2$。(1) 求 $a_{y|x}$ (2) 求 $a_{x|y}$ (3) 有人說「$a_{x|y}$ 就是把 $a_{y|x}$ 取倒數」,用這題說明他錯在哪 (4) 標準化座標下兩條線的夾角。

(1) $a_{y|x}=0.5\times\dfrac{2}{10}=0.1$。

(2) $a_{x|y}=0.5\times\dfrac{10}{2}=2.5$。

(3) 如果是倒數,$a_{x|y}$ 該要是 $\dfrac{1}{0.1}=10$。但正確答案是 2.5,差了 4 倍。乘積呢?$0.1\times2.5=0.25=0.5^2$ ✓,乘積是 $r^2$,不是 1,這才是正確的關係。倒數只在 $|r|=1$ 時才發生。

(4) $\cos\phi=\dfrac{2\times0.5}{1+0.25}=\dfrac{1}{1.25}=0.8$,所以 $\phi=\arccos0.8\approx36.87°$。剪刀張了將近 37 度。

這題 $S_x$ 比 $S_y$ 大很多,所以 $a_{y|x}$ 小、$a_{x|y}$ 大。「哪個方向的係數大」是被標準差比例決定的,不是被 $r$ 決定的。$r$ 只決定兩者相乘的結果。

範例 3(給兩條線,回推 $r$ 和平均):已知用 $x$ 預測 $y$ 的最適直線是 $\hat y=0.5x+6$,用 $y$ 預測 $x$ 的最適直線是 $\hat x=0.5y+3$。求 (1) $r$ (2) $\bar x$、$\bar y$ (3) $S_x$ 與 $S_y$ 的大小關係。

(1) 兩個迴歸係數是 $a_{y|x}=0.5$、$a_{x|y}=0.5$。乘積 $=0.25=r^2$,所以 $|r|=0.5$。兩條線都是正斜率,代表 $r>0$,所以 $r=+0.5$。

(2) 兩條線都過 $(\bar x,\bar y)$,所以交點就是答案。解聯立

$$y=0.5x+6,\qquad x=0.5y+3$$

把第二式代進第一式:$y=0.5(0.5y+3)+6=0.25y+1.5+6=0.25y+7.5$,所以 $0.75y=7.5$,得 $y=10$。代回 $x=0.5\times10+3=8$。所以 $(\bar x,\bar y)=(8,10)$。

(3) $a_{y|x}=r\dfrac{S_y}{S_x}$ 與 $a_{x|y}=r\dfrac{S_x}{S_y}$ 相等(都是 0.5),所以 $\dfrac{S_y}{S_x}=\dfrac{S_x}{S_y}$,得 $S_x=S_y$。

補一句:很多人會想「兩條線都過 $(\bar x,\bar y)$,那交點不就沒用?」錯了。交點是 $\bar x$、$\bar y$ 唯一的來源。 題目只給你兩條線、沒給你原始資料時,你就是靠解聯立把平均挖出來的。

範例 4($r$ 一樣,斜率卻可以對調):兩組資料的相關係數都是 $r=0.7$。A 組 $S_x=10$、$S_y=30$;B 組 $S_x=30$、$S_y=10$。(1) A 組的 $a_{y|x}$、$a_{x|y}$ 各是多少?(2) B 組的呢?(3) 兩組的剪刀張角一樣嗎?

(1) A 組:$a_{y|x}=0.7\times\dfrac{30}{10}=2.1$;$a_{x|y}=0.7\times\dfrac{10}{30}\approx0.2333$。

(2) B 組:$a_{y|x}=0.7\times\dfrac{10}{30}\approx0.2333$;$a_{x|y}=0.7\times\dfrac{30}{10}=2.1$。兩組的數字完全對調。 乘積呢?$2.1\times0.2333\approx0.49=0.7^2$ ✓ 兩組都一樣,因為乘積只看 $r$。

(3) 一樣。$\cos\phi=\dfrac{2\times0.7}{1+0.49}=\dfrac{1.4}{1.49}\approx0.9396$,$\phi\approx20.02°$。

剪刀張角只認 $r$,不認 $S_x$、$S_y$。 但你手上那兩條線的斜率,是被 $\frac{S_y}{S_x}$ 決定的。同一批相關強度,換一組測量單位,兩條線會長得完全不一樣,張角卻動都不動。

小測

  1. 已知 $r=-0.8$,$S_x=5$,$S_y=4$。求 $a_{y|x}$ 與 $a_{x|y}$。
  2. 某資料的兩個迴歸係數是 $a_{y|x}=3$、$a_{x|y}=0.12$。求 $r$。
  3. 若 $r=0$,兩條迴歸線分別長什麼樣子?夾角多少?
  4. $r=0.9$ 與 $r=0.3$,哪一個的剪刀張角比較大?大約差幾度?
  5. 判斷對錯:「因為 $r=0.99$ 非常接近 1,所以兩條迴歸線幾乎重合,隨便用哪一條反推都差不多。」
  6. 已知用 $x$ 預測 $y$ 得 $\hat y=2x+1$,而且 $r=1$。求用 $y$ 預測 $x$ 的最適直線。

📖 詳解

  1. $a_{y|x}=r\dfrac{S_y}{S_x}=(-0.8)\times\dfrac45=-0.64$。$a_{x|y}=r\dfrac{S_x}{S_y}=(-0.8)\times\dfrac54=-1$。驗證:$(-0.64)\times(-1)=0.64=(-0.8)^2$ ✓ 兩個都負,因為 $r<0$。
  2. $a_{y|x}\cdot a_{x|y}=r^2=3\times0.12=0.36$,所以 $|r|=0.6$。兩個係數都是正的,代表 $r>0$,所以 $r=0.6$。
  3. $a_{y|x}=0$,用 $x$ 預測 $y$ 的線是 $\hat y=\bar y$,一條水平線。$a_{x|y}=0$,用 $y$ 預測 $x$ 的線是 $\hat x=\bar x$,一條鉛直線。兩條交於 $(\bar x,\bar y)$,夾角 $90°$。
  4. $r=0.3$ 的張角大。$\cos\phi_{0.9}=\dfrac{1.8}{1.81}\approx0.9945$,$\phi\approx6.0°$;$\cos\phi_{0.3}=\dfrac{0.6}{1.09}\approx0.5505$,$\phi\approx56.6°$。差了 50 度左右,非常懸殊。
  5. 對。$\cos\phi=\dfrac{2\times0.99}{1+0.9801}=\dfrac{1.98}{1.9801}\approx0.99995$,$\phi\approx0.58°$。不到 1 度的張角,實務上兩條線幾乎疊在一起。但這句話只在 $|r|$ 接近 1 時成立;$r=0.5$ 的時候張 37 度,反推就會出大事。
  6. $r=1$ 代表完美共線,兩條線重合,而且迴歸係數互為倒數。把 $\hat y=2x+1$ 移項:$x=\dfrac{y-1}{2}=\dfrac12y-\dfrac12$。(這是唯一一種「移項就等於反推」的情況。)

拿你手上任何一組兩欄資料(或課本習題給的 $r$、$S_x$、$S_y$),把兩個方向的迴歸係數都算出來,乘一乘,看是不是 $r^2$。再算 $\cos\phi=\dfrac{2|r|}{1+r^2}$,把剪刀張角寫在紙上。

你會對「$r=0.6$ 算高還是低」有一組全新的數字感。如果乘積算出來不是 $r^2$,通常是 $S_x$、$S_y$ 放錯位置了,把兩條式子和你的數字貼給我,我們對一下分母。

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