資料分析6:迴歸分析的三個基本概念

[回到目錄]

迴歸分析的三個基本概念

1. 簡介

迴歸分析是行為醫學與臨床醫學最常使用的工具,但也可能是最常被誤用(或過度解釋)的工具。初學同學經常一頭就栽進複雜的數學公式,就算算出正確答案也不知道如何解釋這些數字的意義。這裡用一種「直觀」的方式來解釋三個與迴歸分析有關的重要概念:迴歸係數,迴歸誤差與變異解釋量。我相信弄懂這三件事,絕對能幫助同學在閱讀相關文獻結果,或是自己進行分析時,更能清楚明白這些分析的用意。

2. 迴歸係數

一般同學都很清楚相關係數,這裡首先要說的是相關係數和迴歸係數是不同的東西。除了名字不同,他們的數學意涵,還有最重要的「直觀上的意義」也大不同。簡單地說,變項Y對變項X的迴歸係數反映出迴歸線的斜率有多「陡」,我們可以解釋成X變項改變一單位時,Y變項改變多少單位。相關係數

如果從直觀上來看(圖1),相關係數高代表兩個dataset共變的趨勢越明顯。而迴歸係數高 – 參考中間的迴歸線,代表「斜率」越高。這個斜率的直觀解釋就是「當X變項增加一點點,Y變項增加多少」。

在臨床醫學中迴歸係數佔有很重要的地位。例如X軸代表藥物劑量,Y軸代表疼痛的改變量 – 很明顯地,迴歸係數越大(正值),代表「吃一點點藥,疼痛就可以減緩很多」。這裡要釐清兩個觀念:

A. 相關性高,不見得迴歸係數就大:也就是說r值很大,還是很有可能迴歸係數不高,也就是說,在臨床上這個藥物的效果就不是那麼理想。

B. 兩個變項存在兩個迴歸係數,但只有一個相關係數:你可以計算Y對X的迴歸係數(通常表示成by.x),或是X對Y的相關係數(bx.y)。以by.x來說,直觀地看就是「以X變項去預測Y變項」。當然你也可以用Y去預測X,所以自然也存在bx.y。但而相關係數反映的是兩者共變的關係,就沒有所謂誰預測誰的問題。

C. 斜率=0,代表一個變項不管怎麼改變,另一個變項都「紋風不動」,表示這個變項的對另一個變項的影響力極小。

簡單地說,迴歸係數告訴我們一個變項對另一個變項的影響力。回到XX的公式,你會注意到迴歸係數是有單位的 – 這裡指的是非標準化迴歸係數(通常用英文b表示),這也就呼應我們說的,他代表的是「X改變一單位,而Y會改變多少單位)。很多時候你們會在統計報表裡看到beta這個東西,這是標準化迴歸係數。Beta的計算方式很簡單:Beta = b * (X變項的標準差 / Y變項的標準差)

你可以看出來,透過呈上兩個變項標準差的商,原本有單位的b,變成Beta以後就沒有單位了。這基本上就是「標準化」的意涵(去除單位)。無論b或Beta,直觀上的意義都是一樣的,在強調一次:「X變項改變一單位,對Y變項造成的影響(改變多少單位)」。

3. 迴歸誤差

誤差的意思大家都知道,就是「觀察與實際值的差異」,對吧? 其實在迴歸分析中,幾乎就是這麼簡單的一件事。但這裡我們要搞清楚的是,迴歸分析考慮的與其說是觀察值,不如說是「根據迴歸公式所預測的預測值」。另外,迴歸分析還會考慮一件事,就是「平均值」 - 後者很多教課書都一筆帶過,其實是非常重要的概念。

我們想像一下最簡單的迴歸公式,其實就是一直線! 比方我要預測期末可成績,就用Y=85這個全班平均值來預測即可。當然,我們想要做更精密的預測,所以引入了X變項(出席時間),看看加入個別出席時間這個變項以後,得到的預測值會不會比Y=85來得更好。

直觀地簡單想像,我們比較兩種預測模式:

模式A – 不考慮X變項的影響,直接用一個常數來預測Y值(所以對每個一個Xi,預測的結果永遠都是Y。

模式B – 考慮X變項的影響,除了常數以外,再根據每一個X來預測Y (Y=bX+a)。

下表是用嚴格的符號來表示不同數值的定義:

這裡特別要注意的「預測值離均差」這個概念,實際上就是我們對上述「模式A」與「模式B」比較的結果。假使今天這個值非常接近0 – 也就表示用模式A來預測,與根據模式B來預測的效果幾乎沒啥差異 – 也就等於說明,用X變項來預測的用處並不大。

所謂的迴歸誤差,指的就是殘差(Yi-Yi’)的部分。這個數值也可以表示成「原始值離均差- 預測值離均差」,因為

原始值離均差 = 預測值離均差 + 殘差 ; (Yi – Ӯ) = (Yi’-Ӯ) + (Yi – Yi’)

這點透過圖2應該可以明顯看出。

4. 變異解釋量

如果可以理解上面「原始值離均差 = 預測值離均差 + 殘差」這樣的關係,那麼再帶入計算離散程度的平方和(sum of squares,SS)的概念,會得到下列的關係:

SStotal=SSreg+SSresidual

這裡最重要的是區分前面講的迴歸誤差,是針對任一個X與Y的配對(Xi與Yi)而言。而這裡我們用平方和,表示我們考慮的是「對全體X與Y」,我們要估計原始值離均差,預測值離均差與殘差個別的變異程度。

其中SStotal就代表原始值離均差的變異程度。假定現在一共有20筆資料,那麼用白話來說,SStotal就是「這20個Y值(原始值)的離均差所呈現的離散程度」。

回到一開始說的,原始值離均差可以視為是我們以模式A做預測的效果。因此如果SStotal很小,基本上我們也不需要什麼複雜的迴歸模式啦~ 因為只要一個常數就足以猜中幾乎所有的Y值。在圖2中可以看到,事實上SStotal是蠻大的,也就是光靠一個常數(平均值)不足以作良好的預測。所以這裡再加上迴歸公式的預測值,這部分的變異量就是SSreg。如果SSreg越大,表示「在SStotal這樣的變異程度,有很大一部分可以用迴歸公式算出的預測值來解釋。」事實上也就表示SSresidual很小 – 記得residual(殘差)是迴歸公式預測失準的部分。

所以我們可以把SSreg對SStotal所佔的比例,視為一個「迴歸公式對我們的預測到底多有幫助」的指標。這個SSreg/SStotal的值就是我們常在paper上看到的coefficient of determination(決定係數,R2),用直觀的話來說,就是「有多少比例的變異量,是我們透過迴歸公式,可以用X去預測Y來獲得的」。如果R2非常小,就表示我們的迴歸公式恐怕沒太大用處,因為相對地表示SSresidual很大。