4.3. PROC REG PROC REG 的主要功能為執行迴歸分析 (regression analysis), 欲分析之依變數與自變 數皆需為數值 PROC REG 可執行線性迴歸 (linear regression) 與多項式迴歸 (polynomial regression), 本節僅就線性迴歸部份作介紹 線性迴歸分析之基本概念 欲探討兩個變數之間的關聯性時, 除使用相關係數以瞭解兩變數之間的關聯強度外, 亦可將兩變數以線性模式串連起來, 並觀察其關係, 此即為迴歸分析之基本觀念 線性迴歸分析是利用一個含有單一或多個自變數的迴歸模型來解釋依變數 y, 若只有單一自變數 x 則為簡單線性迴歸分析 (simple linear regression); 若含有多個自變數則為多元線性迴歸分析, 迴歸模型如下 : y x x, i 0 1 1 i... p pi i (,,..., p) 為未知而需估計之迴歸係數, i 為測量誤差並具有以下性質 其中 0 1 1. i 相互獨立, 2 2. i 具有相同分佈, 其期望值為 0, 變異數為, 3. i 通常假設為常態分佈 請注意, ( 0, 1,..., p) 之估計為最小平方法 (least square method), 其性質之一為估計 值不會受到 i 分佈之假設影響, 但在常態假設之下, 最小平方法之估計與最大概似估 計法所得相同 簡單線性迴歸 以一實例示範如何使用 PROC REG 進行迴歸分析 : 現有 19 位孩童的身高及體重 資料, 欲以簡單線性回歸模型探討孩童身高及體重之間的關連性之外 ( 身高為自變 數, 體重為依變數 ): 4.3. PROC REG 1
Name Weight Height Age Name Weight Height Age Name Weight Height Age Alfred 69.0 112.5 14 Alice 56.5 84.0 13 Barbara 65.3 98.0 13 Carol 62.8 102.5 14 Henry 63.5 102.5 14 James 57.3 83.0 12 Jane 59.8 84.5 12 Janet 62.5 112.5 15 Jeffrey 62.5 84.0 13 John 59.0 99.5 12 Joyce 51.3 50.5 11 Judy 64.3 90.0 14 Louise 56.3 77.0 12 Mary 66.5 112.0 15 Philip 72.0 150.0 16 Robert 64.8 128.0 12 Ronald 67.0 113.0 15 Thomas 85.0 11 William 66.5 112.0 15 備註 : 第 19 筆 weight 有缺值 程式碼 DATA children; INPUT name $ weight height age @@; CARDS; Alfred 69.0 112.5 14 Carol 62.8 102.5 14 Jane 59.8 84.5 12 John 59.0 99.5 12 Louise 56.3 77.0 12 Robert 64.8 128.0 12 William 66.5 112.0 15 Alice 56.5 84.0 13 Henry 63.5 102.5 14 Janet 62.5 112.5 15 Joyce 51.3 50.5 11 Mary 66.5 112.0 15 Ronald 67.0 133.0 15 Barbara 65.3 98.0 13 James 57.3 83.0 12 Jeffrey 62.5 84.0 13 Judy 64.3 90.0 14 Philip 72.0 150.0 16 Thomas. 85.0 11 ; ODS GRAPHICS ON; PROC REG DATA=children; MODEL weight=height / CLI CLM; 4.3. PROC REG 2
RUN; ODS GRAPHICS OFF; 程式碼說明 ODS GRAPHICS ON 敘述句 : 宣告 ODS GRAPHICS 模組啟動,ODS 為 Output Delivery System 之縮寫, 是 SAS 8.2 版之後開始發展的新功能, 主要為協助報表的產生, 而在 SAS 9 版開始支援各程序 的簡易圖表繪製, 其使用方法為, 將欲產生內定統計圖的程序以 ODS GRAPHICS ON 及 ODS GRAPHICS OFF 包括起來, 執行之後會自動產生統計圖, 前提是該程 序已經支援 ODS GRAPHICS 功能 PROC REG 敘述句 : DATA= 欲分析的資料集 MODEL 敘述句 : 執行 PROC REG 敘述句時,SAS 程式預設迴歸方程式具有截距項, 本例中的 model 為 : 在程式中僅需表示為 weight = 0 + 1 height + weight = height 若模型無截距項, 亦即, 模型無 0 項, 則需在斜線之後下指令 weight = 1 height + weight = height/ NOINT 請注意在單一 PROC REG 步驟中可以有多個 MODEL 敍述句 斜線 / 分隔選項指令, 常用選項包括 : P 輸出依變數的預測值 CLM 輸出依變數期望值之信賴區間 CLI 輸出個別預測值之信賴區間 CLB 輸出迴歸係數估計值之信賴區間 ALPHA= 設定信賴區間與檢測的型一誤差率 ODS GRAPHICS OFF 敘述句宣告 ODS GRAPHICS 結束, 請注意 RUN 須先被執行 4.3. PROC REG 3
Output 結果 1 顯示此次 PROC REG 指令中的依變數為體重 (weight), 並且讀到有 19 組觀測值, 但由於 有一觀測值出現缺值, 因此只剩 18 組觀測值可用 Output 結果 2 變異數分析之虛無假設為 自變數無法解釋依變數, 亦即 自變數之迴歸係數為 0, 本例中 output 結果顯示 p-value < 0.001, 因此有足夠證據顯示依變數得以被自變數所解釋 R-square 為自變數解釋依變數之比例, 在本例中 height 解釋了 76.63% 的 weight 算是還不錯 Output 結果 3 在簡單線性迴歸模式中, 由於只有一個自變數,ANOVA 的虛無假設會同等於 Parameter Estimates 中 height 的虛無假設, 亦即 H0: 1 0, 故實際上為檢驗同一件事, 讀者可檢驗 F Value 實為 t Value 的平方, 但在多元回歸分析中即非如此 ( 見例 2) 不 過上圖仍有提供其他資訊, 即是參數 0 ( 截距 intercept) 以及 1( 斜率 ) 的估計值與其檢 測, 因此我們可以求得簡單線性迴歸線為 : 4.3. PROC REG 4
weight 43.0023 0.1944 height 因此, 根據配適出來的迴歸式, 身高每增加一公分, 則孩童體重會增加 0.1944 公斤 請注意, 再次提醒迴歸分析中的迴歸係數估計為最小平方法, 其估計不受測量誤差之 假設影響, 則即便 Output 結果 3 當中的 p-value 不顯著, 迴歸線之估計依然不受影響 Output 結果 4 Predicted Value 為根據估計之迴歸線 weight 43.00227 0.19436 height 代入觀察之身高所得的體重預測值 請注意雖然第 19 筆數據的體重為缺失值 (missing value), 由於身高資料並未缺失,SAS 依然得以計算該筆資料之體重預測值 Std Error Mean Predict 為預測值之標準誤, 而 95% CL Predict 為體重預測值之 95% 信賴區間, 為 MODEL 敘述句之選項 CLI 輸出結果 95% CL Mean 為體重期望值估計值之 95% 信賴區間, 為 MODEL 敘述句之選項 CLM 之 輸出結果 Residual 為殘差 = 觀察值 - 預測值, 可用於評估測量誤差的假設是否合理 除了上面的 OUTPUT 結果, 我們還可從 Result 視窗 中可以叫出更多 ODS GRAPHICS 結果 : 4.3. PROC REG 5
ODS GRAPHICS 結果 1 殘差診斷圖 ODS GRAPHICS 結果 2 殘差對自變數圖 ODS GRAPHICS 結果 3 配適圖 ODS GRAPHICS 結果 1 此為殘差對 height 作的散佈圖, 目的是為了觀察殘差是否與自變數 height 之間存在某 種關係, 因自變數不為一隨機變數, 理論上應該與殘差並無相關, 若如上圖中殘差分 布的情形無顯著存在某趨勢性, 我們可視殘差與自變數身高無關 ODS GRAPHICS 結果 2 4.3. PROC REG 6
ODS GRAPHICS 結果 2 為殘差對依變數體重作的各種圖形分析, 其中比較重要的是, y 左上角的殘差對預測值作圖, 理論上殘差與預測值之相關亦為 0, 因此我們同樣觀察殘差是否均勻散佈在此圖當中, 以判斷假設之正確性, 而中間左邊的常態機率圖, 如果殘差符合常態分佈, 則各殘差值應該都在斜線附近, 我們得以此檢驗模型之常態假設 ODS GRAPHICS 結果 3 4.3. PROC REG 7
ODS GRAPHICS 結果 3 為身高與體重之散佈圖, 並繪製估計出來的簡單線性迴歸線 與其 95% 期望值估計信賴值區間與 95% 預測值信賴區間 多元線性迴歸 以同樣例子加入年齡資料, 探討孩童身高 年齡二者與體重之間的關連性 ( 身高 及年齡為自變數, 體重為依變數 ), 故為一多元線性迴歸模型 程式碼 ODS GRAPHICS ON; PROC REG DATA=children; MODEL weight=height age / CLI CLM; RUN; ODS GRAPHICS OFF; 4.3. PROC REG 8
程式碼說明 MODEL 敘述句 : 宣告迴歸分析模型, 本例中的模型為 weight height age ε 故語法為 MODEL weight=height age 其餘指令與解釋請參照例一說明 0 1 2 Output 視窗 5 本例為兩個自變數的多元線性迴歸分析, 因此變異數分析的虛無假設為 H0: 1 2 0, 且由於 p-value<0.001, 即代表 1 2 至少有一個不為 0 若想進一步探究哪一個不為 0 或是否兩者皆不為 0 的話, 就必需從下面 output 結果去了解 與簡單線性迴歸分析比較不同的是, 在多元線性迴歸分析中, 決定係數 R-Square 會隨著自變數增加而增加, 即便某些自變數在統計學上不一定可以解釋依變數的變量, 這時要改用校正後的決定係數 Adj R-Sq, 在本例中 Adj R-Sq = 0.7944 表示 height 與 age 可以解釋 79.44% 的 weight, 與未修正的 R-Square = 81.86% 相去不遠 Output 視窗 6 4.3. PROC REG 9
由此報表我們可以求得多元線性迴歸線為 : weight 32.0990 0.1378height 1.2354age 亦即孩童身高每增加一公分則體重增加 0.1378 公斤, 年紀每大一歲則體重增加 1.2354 公斤 此報表亦提供檢驗身高的係數是否為 0 以及年齡的係數是否為 0, 因此有兩個基本假 設, 分別為 H 0 : 1 = 0 以及 H 0 : 2 = 0, 根據分別的 p-value 顯示, 在 0.05 的顯著水準下, 有足夠證據前宣稱身高的係數不為 0, 而沒有足夠證據年齡的係數不為 0 4.3. PROC REG 10