威威學長|高一數據分析系列
📚 系列總覽:數據分析系列地圖|⬅️ 上一篇:斜率與相關係數的關係,以及「向平均數迴歸」|➡️ 下一篇: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}$ 決定的。同一批相關強度,換一組測量單位,兩條線會長得完全不一樣,張角卻動都不動。
小測
- 已知 $r=-0.8$,$S_x=5$,$S_y=4$。求 $a_{y|x}$ 與 $a_{x|y}$。
- 某資料的兩個迴歸係數是 $a_{y|x}=3$、$a_{x|y}=0.12$。求 $r$。
- 若 $r=0$,兩條迴歸線分別長什麼樣子?夾角多少?
- $r=0.9$ 與 $r=0.3$,哪一個的剪刀張角比較大?大約差幾度?
- 判斷對錯:「因為 $r=0.99$ 非常接近 1,所以兩條迴歸線幾乎重合,隨便用哪一條反推都差不多。」
- 已知用 $x$ 預測 $y$ 得 $\hat y=2x+1$,而且 $r=1$。求用 $y$ 預測 $x$ 的最適直線。
📖 詳解
- $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$。
- $a_{y|x}\cdot a_{x|y}=r^2=3\times0.12=0.36$,所以 $|r|=0.6$。兩個係數都是正的,代表 $r>0$,所以 $r=0.6$。
- $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°$。
- $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 度左右,非常懸殊。
- 對。$\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 度,反推就會出大事。
- $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$ 放錯位置了,把兩條式子和你的數字貼給我,我們對一下分母。