線性回歸幼幼班

2024/02/03閱讀時間約 3 分鐘

本篇內容和圖片來自這個超棒的影片,簡單易懂,還會唱歌給你聽。感謝 StatQuest with Josh Starmer。



線性回歸 (linear regression) 的目的是要找到一條最吻合所有資料點的,過程中使用最小平方法 (least squares) 來找這條線。


好,看不懂。


年齡-財富 (原圖再製)

年齡-財富 (原圖再製)

假設這裡是一個富有的國度,我們想知道在什麼年紀 (x) 會擁有幾千萬 (y)。今天我們找了 9 個人訪問他們的年齡和擁有的千萬數,繪製出這張圖。

現在,想找出一條線,推算出公式,讓我們可以從年齡就知道這個人有多少財富。




線 (原圖再製)

線 (原圖再製)

但要怎麼知道是黑線、紅線、綠線還是藍線比較好呢?

首先用眼睛看就感覺藍線超爛,先拿他開刀。藍線的 y 值是 3.5,給它一個代號 b,b 就是截距 (intercept)。現在藍線有正式的名字了:y=b




殘差 (原圖)

殘差 (原圖)

每一個點跟 y=b 的最短距離叫做殘差 (residual),y=b 跟 (x₁, y₁) 這個點的距離為 b-y₁;y=b 跟 (x₂, y₂) 的距離為 b-y₂,以此類推。

然後會發現有些差值是負的,因為 y 值高於 b。這時把所有差值做平方,結果就會全都是正數。



寫成數學式:

  • 式1、(b-y₁)² + (b-y₂)² + (b-y₃)² + (b-y₄)² + (b-y₅)² + (b-y₆)² + (b-y₇)² + (b-y₈)² + (b-y₉)² = 24.62

先假設是這個數字,24.62 就是殘差平方和 (sum of squared residuals)


但是,單看這條線產生的殘差平方和是看不出什麼的,所以要用很多條線產生出很多個殘差平方和,到那時才有本錢看要選哪一條。

raw-image


現在把線旋轉一點點,發現算出來的殘差平方和 (18.72) 變小了!代表這條線比剛才的水平線還吻合這些資料點。



raw-image


再旋轉一點點,殘差平方和 (14.05) 又更小,線又更吻合資料點。



raw-image


旋轉到一定程度後發現殘差平方和 (31.71) 開始變大了。




有鑑於此,可以知道有一條最好的線藏在這堆線當中。為了知道這條線,首先需要引入一般線性方程式 (generic line equation) 的概念:y = ax + b


a 是斜率 (slope)、b 是截距 (intercept)。剛才的水平線 y = b 因為沒有斜率,所以沒有 ax,但我們已知最好的線不會是水平線,是斜線,所以就會需要 ax。


現在數學式變成這樣:

  • 式2、((ax₁ + b)-y₁)²+((ax₂ + b)-y₂)²+((ax₃ + b)-y₃)²+...

看起來很複雜,但其實只是把式1的 y₁、y₂ ... 代換成 ax + b 而已。概念不變,都是計算出每個點與線之間的距離,平方後相加,試圖找出最終值最小的線,這就是最小平方法 (least squares)。


接著就要來找最好的線啦!


殘差平方和 (原圖)

殘差平方和 (原圖)


這張圖每個點的 y 值都是一個殘差平方和,x 軸對應的是每一條線。

現在先不理 x 軸看到的線,以導數 (derivative) 來得知哪一條線是最好的。





導數推算斜率 (原圖再製)

導數推算斜率 (原圖再製)

這些殘差平方和連起來像一個 U 形,每個點會有一個切線。

水平線的導數為 0,也就是殘差平方和最小的地方。

我們就是要在眾多的點形成的 U 形中算出切線導數為 0 的點,對應到 x 軸的線,至此就找到最好的那條線了。(別擔心,通常沒有人手算,這件事就交給電腦)



以這 9 個點來說,最好的線是:y = 0.77x + 0.66。


年齡-財富 (原圖再製)

年齡-財富 (原圖再製)


回到一開始的設定,現在可以套公式知道這個富裕國度 10 歲的人擁有 8.36 千萬、20 歲的人擁有 16.06 千萬,以此類推。







真希望我也這麼富裕,但目前只能努力往知識富裕邁進。

19會員
33內容數
語言學.旅遊.夢.一些突發奇想的東西
留言0
查看全部
發表第一個留言支持創作者!