神經造影4:迴歸分析應用於SPM

[回到目錄]

迴歸分析應用於SPM

1. SPM分析的基礎就是一種多重迴歸分析

在使用SPM分析MRI影像資料時常看到GLM(general linear model)這個令人望之生畏的名詞,我們都知道它是SPM「統計模式」的核心。事實上多重迴歸分析也是GLM其中的一種模式,從多重回歸下手,會更容易理解SPM分析的一些統計學概念。

首先考慮一個以voxel-based morphometry為主的影像分析。在這個研究中,我們想了解人腦哪些部位的灰質體積(GMV),與「反覆吞嚥次數」(RSST)有關。也就是說,我們能不能找到一個人腦區域,吞嚥次數越快的人他的灰質體就越大。另外我們也想控制住年齡(AGE)這個因素,因為我們知道人腦體積也會受到年齡的影響(大致上是年紀越大,體積越小)。上面這個問題可以先轉化成一個多重迴歸分析的問題。我們想做的事情就是以AGE(X1)與RSST(X2)這兩個預測變項(predictor)去預測GMV。

GMV=b1*X1+b2*X2+a

注意這裡b1和b2都是未標準化(有單位的)迴歸係數(coefficient)。

在SPM中這個模式是透過design matrix來表示(圖)。而在SPM中我們設定的covariate就是predictor的數值,另外還要加上a(常數)。因此在design matrix這個矩陣中,你有N個predictor,就會有N+1個column。列數就代表受試者的數目。

另外注意在design matrix中我們實際上把predictor的數值都做了「中心化」(centering)的處理。這使得所有的數值都是原始值減掉平均值(demeaned)。所以你會看到黑色和白色 – 白色代表原始值高於平均值,黑色代表原始值小於平均值。這些變化會和原來的predictor數值變化(下圖)吻合。

2. Model fitting與迴歸係數

再次強調,上面的design matrix其實只是GMV=b1*X1+b2*X2+a這個回歸預測模式的一種表現方式而已。其中每個欄位的數值變化(黑色白色)就代表X1與X2的數值,而全部白色的這一欄代表常數(a)。而我們要預測的GMV數值則是我們的影像資料。所以接下來SPM要做的事情就是找出來b1, b2, a這些數值,目標是讓迴歸公式算出的預測值盡可能接近(fit)實際值。簡單地說,

實際值=GMV (根據我們的影像資料)

預測值=predicted GMV= b1*X1+b2*X2+a

事實上GMV, X1(AGE)和X2(RSST)都是已知。所以你根本不需要SPM,只要用一般的統計軟體即可找出b1與b2。我們以下就來舉一個例子!

(但須要先了解的是,人腦影像資料有很多voxel,SPM事實上是對每一個voxel做回歸模式分析 – 所以,這裡的GMV是指「針對特定的一個voxel」而言。在我們這個例子中,我就取MNI座標[-17 -54 72]這個voxel為例。為了避免混淆,底下的GMV都以GMV[-17 -54 72]代替之。)

請參考Excel說明檔,我們可以算出以下:

注意這裡Coef就是未標準化的迴歸係數。你應該可以找出來b1與b2分別是-0.00032與0.0195。這裡你已經可以看到兩件事(請回想先前有關迴歸分析的介紹):首先是AGE對GMV[-17 -54 72]的影響是負值,這呼應了前面說的,年齡越大灰質體積通常會變小。第二件事是b2比b1來得大。記得我們提過迴歸係數代表預測值對被預測值的「影響力」,或是直觀地說就是斜率 – 這表示RSST改變一單位,對GMV[-17 -54 72]的影響,是大於AGE改變一單位。這對我們而言是個好消息,說明了這部分灰質體積的改變,可能與吞嚥的關係很密切(並不全然是因為老化而造成的)。

你也可以很容易計算出這個迴歸係數的T值。在這裡我們做了一個統計檢定,我們想知道這個影響力(b)到底有多大? 我們比較的對象就是b=0(斜率為0,代表沒有影響力)。T score的計算方式很簡單,就是(b – 0)/ SE (這裡的SE就是迴歸係數b的標準誤)。

我們會看到RSST的結果是顯著的,這點與SPM所呈現的報表會呼應(下圖),注意在[-17 -54 72]這個位置,以RSST預測GMV[-17 -54 72]的T value=11.34,與我們上面計算的結果吻合。

你可能感興趣的是,這個預測的結果到底有多好? 畢竟如果這些b1, b2預測的結果與值計觀察到的GMV[-17 -54 72]天差地遠 – 那麼去討論b有多大的顯著性就沒什麼意義了。你可以簡單做一個分析(參考Excel檔):首先根據b1, b2, a算出predicted GMV,接著比較predicted GMV與實際GMV[-17 -54 72]觀察值(來自原始影像資料)。結果會像這樣:

左圖是我們利用一般統計軟體估計出b1, b2, a值然後畫出來的結果。右圖則是利用SPM中”plot”這個工具(plot / fitted response / scan|time)畫出來的結果,基本上兩個結果是吻合的,都顯示出回歸模式的預測,還蠻接近實際上的GMV[-17 -54 72]。注意這兩個圖的X軸都是影像編號(也就是第幾個受試者)。在10位受位受試者中,總是對有些人預測比較準,對另外幾個人(例如第8號)預測比較不準。

3. SPM的輸出檔

前面提到的例子我們是以一般統計軟體去分析回歸模式的手法,來說明SPM影像分析背後的核心就是迴歸分析。那麼SPM實際上分析完成後輸出的結果是什麼? 一般說來有兩部分:

1. Estimation:當你建立完成design matrix(也就是指定回歸模式的predictor),透過Estimation功能,SPM會計算出各個predictor的迴歸係數。在我們的例子中共有三個迴歸係數需要估計(記得包括常數a)。所以你會得到三個beta_XXX的影像檔 – 這個影像檔中每個voxel的數值,就分別對應你「對該voxel預測GMV[-17 -54 72]時,所獲得的常數,b1與b2」。因此,在本例中如果看[-17 -54 72]這個voxel, 在beta_0001, beta_0002與beta_0003這三個輸出影像檔的數值分別是0.307, -0.00032與0.0195,結果與我們迴歸分析(如上表)的結果吻合。

2. Contast setup:Estimation完成後只是告訴我們這幾個predictor的相對權重有多高。但我們想知道的是,例如以RSST為例,它對GMV[-17 -54 72]的影響力到底是否達到統計顯著? 從SPM的觀點來看,我們就必須設定一個contrast,可以直觀地想像成是用來凸顯出(“contrast”)我們特別想知道的predictor,也就是RSST。我們這裡設定的contrast是[0 0 1],這個”1”就代表1 x beta_0003 (也就是b2,RSST的迴歸係數。而”0”代表0 x beta_0001與0 x beta_0002,表示我們排除了常數與AGE這兩個因素的影響。你應該可以很容易看出來,這個運算所獲得的影像(con_0001)實際上和beta_0003是一模一樣的!

我們可以從另一個角度來看。因為我們現在要估計這個b值影響力的顯著性,前面提過我們是透過t test來進行。根據t test的公式

T值 = ( 迴歸係數b – 0 ) / 迴歸係數b的標準誤

既然我們對RSST感興趣,這裡的b就是b2,而b2的SE(標準誤)也可以從回歸模式分析中獲得(如上表,SE=0.00172)。而”contrast”實際上就是分子的部分,你可以很容易看出來

Contrast = b2 – 0 = 0.0195 – 0 = 0.0195

T= 0.0195 / 0.00172 = 11.337

這個數值(11.337)會與SPM所計算的結果吻合。對每一個contrast,SPM都會計算出T值,紀錄在spmT_XXX這個影像中。所以你在spmT_0001這個影像尋找[-17 -54 72]的數值,你就會看到11.337。

最後我們要確定這個T值是不是夠高,達到統計上的顯著性。我們這時候可以參考t分布,自由度為樣本數-1,利用Excel函數TINV可獲得當p 值=0.001的情況下,自由度為9,則T值的臨界值為4.78 – 而我們的結果高於這個臨界值,因此可以宣稱RSST對GMV的影響力是達統計上顯著的。這個結果會與最上面SPM報表呈現的結果吻合 (注意其中有一行文字寫著height threshold T=4.78 (uncorrected p<0.001)。

至於我們為什麼要與p值=0.001做比較? 為什麼不是常見的p=0.05? 或著會不會用更嚴謹的標準? 這個在後面的講義會解釋。