1. 程式人生 > >#使用SAS進行變數篩選、模型診斷、多元線性迴歸分析 #

#使用SAS進行變數篩選、模型診斷、多元線性迴歸分析 #

 轉載, 太經典了,學習了

第一節 多元線性迴歸分析的概述

  迴歸分析中所涉及的變數常分為自變數與因變數。當因變數是非時間的連續性變數(自變數可包括連續性的和離散性的)時,欲研究變數之間的依存關係,多元線性迴歸分析是一個有力的研究工具。
  多元迴歸分析的任務就是用數理統計方法估計出各回歸引數的值及其標準誤差;對各回歸引數和整個迴歸方程作假設檢驗;對各回歸變數(即自變數)的作用大小作出評價;並利用已求得的迴歸方程對因變數進行預測、對自變數進行控制等等。
  值得注意的是∶一般認為標準化迴歸係數的絕對值越大,所對應的自變數對因變數的影響也就越大。但是,當自變數彼此相關時,迴歸係數受模型中其他自變數的影響,若遇到這種情況,解釋標準化迴歸係數時必須採取謹慎的態度。當然,更為妥善的辦法是通過迴歸診斷(The Diagnosis of Regression),瞭解哪些自變數之間有嚴重的多重共線性(Multicoll-inearity),從而,捨去其中作用較小的變數,使保留下來的所有自變數之間儘可能互相獨立。此時,利用標準化迴歸係數作出解釋,就更為合適了。
  關於自變數為定性變數的數量化方法
  設某定性變數有k個水平(如ABO血型系統有4個水平),若分別用1、2、…、k代表k個水平的取值,是不夠合理的。因為這隱含著承認各等級之間的間隔是相等的,其實質是假定該因素的各水平對因變數的影響作用幾乎是相同的。
  比較妥當的做法是引入k-1個啞變數(Dummy Variables),每個啞變數取值為0或1。現以ABO血型系統為例,說明產生啞變數的具體方法。
  當某人為A型血時,令X1=1、X2=X3=0;當某人為B型血時,令X2=1、X1=X3=0;當某人為AB型血時,令X3=1、X1=X2=0;當某人為O型血時,令X1=X2=X3=0。
  這樣,當其他自變數取特定值時,X1的迴歸係數b1度量了E(Y/A型血)-E(Y/O型血)的效應; X2的迴歸係數b2度量了E(Y/B型血)-E(Y/O型血)的效應; X3的迴歸係數b3度量了E(Y/AB型血)-E(Y/O型血)的效應。相對於O型血來說,b1、b2、b3之間的差別就較客觀地反映了A、B、AB型血之間的差別。
  [說明] E(Y/)代表在“

”所規定的條件下求出因變數Y的期望值(即理論均值)。
  5.變數篩選
  研究者根據專業知識和經驗所選定的全部自變數並非對因變數都是有顯著性影響的,故篩選變數是迴歸分析中不可迴避的問題。然而,篩選變數的方法很多,詳見本章第3節,這裡先介紹最常用的一種變數篩選法──逐步篩選法。
  模型中的變數從無到有,根據F統計量按SLENTRY的值(選變數進入方程的顯著性水平)決定該變數是否入選;當模型選入變數後,再根據F統計量按SLSTAY的值(將方程中的變數剔除出去的顯著性水平)剔除各不顯著的變數,依次類推。這樣直到沒有變數可入選,也沒有變數可剔除或入選變數就是剛剔除的變數,則停止逐步篩選過程。在SAS軟體中運用此法的關鍵語句的寫法是∶
  MODEL Y = 一系列的自變數 / SELECTION=STEPWISE SLE=p1 SLS=p2;
具體應用時,p1、p2應分別取0~1之間的某個數值。
6.迴歸診斷

自變數之間如果有較強的相關關係,就很難求得較為理想的迴歸方程;若個別觀測點與多數觀測點偏離很遠或因過失誤差(如抄寫或輸入錯誤所致),它們也會對迴歸方程的質量產生極壞的影響。對這兩面的問題進行監測和分析的方法,稱為迴歸診斷。前者屬於共線性診斷(The Diagnosis of Collinearity)問題;後者屬於異常點診斷(The Diagnosis ofOutlier)問題。下面結合SAS輸出結果作些對應的解釋,詳細討論參見第4節。

 第二節 應用舉例

  [例1] 某精神病學醫生想知道精神病患者經過6個月治療後疾病恢復的情況Y是否能通過精神錯亂的程度X1、猜疑的程度X2兩項指標來較為準確地預測。資料如下,試作分析。
  Y X1 X2
   28 3.36 6.9

24 3.23 6.5

14 2.58 6.2

21 2.81 6.0

22 2.80 6.4

10 2.74 8.4

28 2.90 5.6

8 2.63 6.9

23 3.15 6.5

16 2.60 6.3

13 2.70 6.9

22 3.08 6.3

20 3.04 6.8

21 3.56 8.8

13 2.74 7.1

18 2.78 7.2
  先建立資料檔案pdh.txt,輸成16行3列的形式。這是二元線性迴歸分析問題。由於自變數個數很少,先嚐試用不篩選自變數的方法建立迴歸方程,視結果的具體情況再確定後續方案。

(程式1) 

dm ‘log;clear;output;clear;’;

DATA abc1;

INFILE ‘d:\zerocv\pdh.txt’;

INPUT y x1 x2;

PROC REG;

MODEL y=x1 x2;

RUN;

使用SAS進行變數篩選、模型診斷、多元線性迴歸分析
這裡寫圖片描述

程式1很簡單,它擬合Y關於X1、X2的二元線性迴歸方程;從運算結果得知∶ 方程的截距項與0之間無顯著性差別(紅色框),表明可將截距項去掉(加上選擇項NOINT),於是,產生了如下:

(程式2) 

DATA abc2;

INFILE 'd:\zerocv\pdh.txt';

INPUT y x1 x2;

PROC REG;

MODEL y=x1 x2 / NOINT P R;

RUN;

使用SAS進行變數篩選、模型診斷、多元線性迴歸分析

這裡寫圖片描述

這是程式2的方差分析和引數估計結果,方程與各引數的檢驗結果都有顯著性意義,所求得的二元線性迴歸方程為∶Y^=17.806056X1-4.873584X2,SY.X=2.53714。SY.X是迴歸模型誤差的均方根,此值越小,表明所求得的迴歸方程的精度越高(下同)。

使用SAS進行變數篩選、模型診斷、多元線性迴歸分析

這裡寫圖片描述

這是對程式2中的二元迴歸模型作殘差分析的結果,從第④、⑤兩列發現第8個觀測點所對應的學生化殘差的絕對值大於2(因STUDENT=-2.170),故認為該點可能是異常點,需認真檢查核對原始資料。
  第①~③列分別為因變數的觀測值、預測值及其標準誤差;其後的普通殘差及其標準誤差被省略了;第⑥列為Cook’s D統計量及預測平方和Press的定義參見本章第6節。

程式2的運算結果表明∶第8個觀測點為可疑的異常點,試著將此點剔除後看看結果有什樣的變化,產生了程式3。

(程式3) 

DATA abc3;

INFILE ‘d:\zerocv\pdh.txt’;

INPUT y x1 x2;

IF N=8 THEN DELETE;

PROC REG;

MODEL y=x1 x2 / NOINT P R;

RUN;

使用SAS進行變數篩選、模型診斷、多元線性迴歸分析

這裡寫圖片描述

這是程式3的方差分析和引數估計結果,方程與各引數的檢驗結果都有顯著性意義(p值均小於0.0001),所求得的二元線性迴歸方程為∶Y^=16.972158X1-4.465611X2, SY.X=2.14515。

使用SAS進行變數篩選、模型診斷、多元線性迴歸分析

這裡寫圖片描述

這是對程式3中的二元迴歸模型作殘差分析的結果,沒有發現異常點(第四列沒有絕對值大於2的記錄)。比較第8個觀測點去掉前後預測平和Press的值從122.8819降為79.9550;對整個方程檢驗的F值從474.661上升為660.326,表明該點對因變數預測值的影響是比較大的,值得注意

程式2與程式3MODEL語句中的選擇項P、R分別要求計算各點上因變數的預測值和進行殘差分析。欲求標準化迴歸係數,可在MODEL語句的“/”之後加上“STB”。

[結論] 可用二元線性迴歸方程Y^=16.972158X1-4.465611X2較好地預測因變數Y的的值,迴歸方程誤差均方根為 =2.14515。

  [例2] 有人在某地抽樣調查了29例兒童的血紅蛋白與4種微量元素的含量,資料如下,試問∶可否用4種微量元素(單位都是μmol/L)鈣(X1)、鎂(X2)、鐵(X3)、銅(X4)來較好地預測血紅蛋白(Y,g/L)的含量?為回答所提的問題,選用多元線性迴歸分析較合適。先將資料按29行5列的形式輸入,建立資料檔案BLOOD.txt

Y X1 X2 X3 X4

135.0 13.70 12.68 80.32 0.16

130.0 18.09 17.51 83.65 0.26

137.5 13.43 21.73 76.18 0.19

140.0 16.15 16.10 84.09 0.19

142.5 14.67 15.48 81.72 0.16

127.5 10.90 10.76 70.84 0.09

125.0 13.70 12.68 80.32 0.16

122.5 21.49 18.00 78.78 0.28

120.0 15.06 15.70 70.60 0.18

117.5 13.48 14.07 72.60 0.20

115.0 15.28 15.35 79.83 0.22

112.5 15.01 13.84 68.59 0.14

110.0 17.39 16.44 74.59 0.21

107.5 18.03 16.49 77.11 0.19

105.0 13.75 13.57 79.80 0.14

102.5 17.48 15.13 73.35 0.19

100.0 15.73 14.41 68.75 0.13

97.5 12.16 12.55 61.38 0.15

95.0 13.04 11.15 58.41 0.13

92.5 13.03 14.87 69.55 0.16

90.0 12.40 10.45 59.27 0.14

87.5 15.22 12.03 46.35 0.19

85.0 13.39 11.83 52.41 0.21

82.5 12.53 11.99 52.38 0.16

80.0 16.30 12.33 55.99 0.16

78.0 14.07 12.04 50.66 0.21

75.0 16.50 13.12 61.61 0.11

72.5 18.44 13.54 55.94 0.18

70.0 11.80 11.73 52.75 0.13

[程式修改指導] 由於自變數不太多,為便於對全部變數都參入計算的結果有一個全面的瞭解,先用程式1作試探性分析,並用了共線性診斷的技術。
  值得注意的是∶用來實現共線性診斷的選擇項有①COLLIN、②COLLINOINT兩個,①對截距未進行校正,②對截距進行了校正。若MODEL語句中加了選擇項/NOINT(即方程中不包含截距項),此時,①、②的輸出結果完全相同,故只需寫其中一個即可;若MODEL語句中未加選擇項/NOINT(即方程中包含截距項),此時,①、②的輸出結果之間差別大小視截距項的檢驗結果有無顯著性而有所不同。當截距項無顯著性意義時,①、②的輸出結果差別很小,用其中任何一個結果都是可以的,參見本例程式1的輸出結果;當截距項有顯著性意義時,①、②的輸出結果差別較大,應該用由②輸出的結果,參見在本例結尾所給的[樣例]。
  若希望對異常點進行診斷,可在MODEL語句的“/”號之後加上選擇項INFLUNENCE。  由於程式1執行的結果表明“截距項無顯著性意義”,提示應將截距項從模型中去掉,於是,產生了程式2。MODEL語句中各選擇項的含義是∶NOINT不要截距項、STEPWISE用逐步迴歸法篩選自變數、SLE=0.3規定選變數進入方程的顯著性水平為0.3、 SLS=0.1規定從方程中剔除變數的顯著性水平為0.1、STB要求求出標準化迴歸引數的估計值。

(程式1)

DATA abc1;

INFILE ‘d:\zerocv\blood.txt’;

INPUT y x1-x4;

PROC reg;

MODEL y=x1-x4 / COLLIN COLLINOINT;

RUN;

使用SAS進行變數篩選、模型診斷、多元線性迴歸分析

這裡寫圖片描述

  程式1的引數估計結果∶截距項Intercept、X2、X4都無顯著性意義(p值較大),但不應過早將X2、X4從模型中去掉。最好等截距項從模型中去掉之後,重新擬合,視最後的結果再作決定。

使用SAS進行變數篩選、模型診斷、多元線性迴歸分析

這裡寫圖片描述

這是共線性診斷的第1部分,即未對截距項校正的迴歸診斷結果∶從最後一行的條件數25.5585>10(概念參見本章第4節)可知,自變數之間有較強的共線性;從該行方差分量 (對大的條件數(Condition index),通常大於10認為條件數大,會有共線性變數,而contition index>30認為條件數非常大,嚴重的共線性變數,考察大的條件數所在行,同時有2個以上變數的方差分量超過50%,就意味這些變數間有一定程度的相關,也即該圖中Proportion of Variation中有某行同時有2各或以上的值超過50%,則可認為有共線性)的數值可看出∶自變數之間的共線性主要表現在X2、X3兩變數上。
這裡寫圖片描述

使用SAS進行變數篩選、模型診斷、多元線性迴歸分析

這是共線性診斷的第2部分,即對截距項校正之後的迴歸診斷結果∶因本例的截距項無顯著性意義,故用第1部分診斷結果就可以了。

(程式2)

DATA abc2;

INFILE ‘d:\zerocv\blood.txt’;

INPUT y x1-x4;

PROC reg;

MODEL y=x1-x4 / NOINT

SELECTION=STEPWISE SLE=0.30 SLS=0.10 STB;

RUN;

使用SAS進行變數篩選、模型診斷、多元線性迴歸分析

使用SAS進行變數篩選、模型診斷、多元線性迴歸分析

這裡寫圖片描述

這是程式2中逐步迴歸分析的結果。 篩選的最後結果表明∶ 只有X1和X3進入篩選;X3是有非常顯著性影響的變數;而X1僅在P=0.0865水平上有顯著性意義,若規定SLS=0.05,則迴歸方程中只有X3一個自變數。
這裡寫圖片描述

使用SAS進行變數篩選、模型診斷、多元線性迴歸分析
這裡寫圖片描述

逐步迴歸分析的最後結果,迴歸方程為∶Y^=-1.242806X1+1.813880X3
兩個標準化迴歸係數分別為-0.174394、1.166184,結合前面共線性診斷的結果可知, X1與X3之間無密切的相關關係,故可認為X3對Y的影響大於X1。
  [專業結論] 微量元素中鐵(X3)的含量對血紅蛋白(Y)的影響有非常顯著性意義。鐵的吸收量提高後,有助於血紅蛋白含量的提高(因B3=1.16618>0);而鈣的吸收量提高後,反而會使血紅蛋白含量有減少的趨勢(因B1=-0.17439<0)。
  [例3] 某項試驗研究中,有5個自變數X1~X5和1個因變數Y(資料見下面的SAS程式)。試擬合Y關於5個自變數的迴歸方程,並用COLLIN和COLLINOINT兩個選擇項進行迴歸診斷。

DATA DEF;

INPUT X1-X5 Y @@; CARDS;

64 14 20 224 100 24.08 70 14 18 236 100 25.67

64 16 24 242 100 28.59 72 16 22 212 100 25.31

66 18 28 218 85 27.88 72 18 26 230 85 31.53

66 20 18 242 85 27.99 74 20 30 206 85 28.03

68 22 22 218 85 27.77 74 22 20 230 85 31.31

68 24 26 236 70 31.21 76 24 24 206 70 29.16

70 26 30 212 70 30.83 76 26 28 224 70 36.39

;

PROC REG;

MODEL Y=X1-X5 / COLLIN COLLINOINT;

RUN;

使用SAS進行變數篩選、模型診斷、多元線性迴歸分析

這裡寫圖片描述
  總迴歸模型有非常顯著性意義(Pr>F的p值較小,且r-square接近1),截距項有顯著性意義(Intercept項的p值較小)。

使用SAS進行變數篩選、模型診斷、多元線性迴歸分析

這裡寫圖片描述
這是選擇項COLLIN輸出的結果,由於截距項有顯著性意義,故在未對截距項進行校正的共線性診斷結果中幾乎看不出哪些自變數之間有共線性關係。所以需要先對截距項進行校正後進行共線性診斷,看下面的輸出。

使用SAS進行變數篩選、模型診斷、多元線性迴歸分析

這裡寫圖片描述
這是選擇項COLLINOINT輸出的結果,由於截距項有顯著性意義,故從對截距項進行校正後的共線性診斷結果,從該行方差分量(對大的條件數(Condition index),通常大於10認為條件數大,會有共線性變數,而contition index>30認為條件數非常大,嚴重的共線性變數,考察大的條件數所在行,同時有2個以上變數的方差分量超過50%,就意味這些變數間有一定程度的相關,也即該圖中Proportion of Variation中有某行同時有2各或以上的值超過50%,則可認為有共線性)的數值可看出∶第5列中X2與X5的值均超過90%,且條件數為7.6,故認為X2與X5之間存在一定的共線性關係。

這裡寫圖片描述

這裡寫圖片描述

第三節變數篩選方法

  當所研究的問題涉及較多的自變數時,我們很難想象事先選定的全部自變數對因變數的影響都有顯著性意義,也不敢保證全部自變數之間是相互獨立的。換句話說,在建立多元線性迴歸方程時,需要根據各自變數對因變數的貢獻大小進行變數篩選,剔除那些貢獻小、與其他自變數有密切關係的自變數,發現那些對迴歸方程有很壞影響的觀測點(這些都是迴歸診斷的重要內容,參見第4節),從而求出精練的、穩定的迴歸方程。
  在運用SAS中REG或STEPWISE等過程進行迴歸分析時,是通過MODEL語句對模型作出初步假設,然後就要根據實驗資料和統計規則,選擇模型中的變數和估計迴歸引數。對於線性模型而言,在REG中可以同時採用以下8種選擇變數的方法,現逐一加以介紹。
  1.向前選擇法(FORWARD)
  模型中變數從無到有依次選一變數進入模型,並根據該變數在模型中的Ⅱ型離差平和(SS2)計算F統計量及P值。當P小於SLENTRY(程式中規定的選變數進入方程的顯著性水平)則該變數入選,否則不能入選;當模型中變數少時某變數不符合入選標準,但隨著模型中變數逐次增多時,該變數就可能符合入選標準;這樣直到沒有變數可入選為止。SLENTRY預設值定為0.5,亦可定為0.2到0.4,如果自變數很多,此值還應取得更小一些,如讓SLENTRY=0.05。
  向前選擇法的侷限性∶SLENTRY取值小時,可能任一個變數都不能入選;SLENTRY大時,開始選入的變數後來在新條件下不再進行檢驗,因而不能剔除後來變得無顯著性的變數。
  2.向後消去法(BACKWARD)
  從模型語句中所包含的全部變數開始,計算留在模型中的各個變數所產生的F統計量和P值,當P小於SLSTAY(程式中規定的從方程中剔除變數的顯著性水平)則將此變數保留在方程中,否則,從最大的P值所對應的自變數開始逐一剔除,直到模型中沒有變數可以剔除時為止。SLSTAY預設值為0.10,欲使保留在方程中的變數都在α=0.05水平上顯著時,應讓SLSTAY=0.05。
  程式能執行時, 因要求所選自變數的子集矩陣滿秩,所以當觀測點少、且變數過多時程式會自動從中選擇出觀測點數減1個變數。
  向後消去法的侷限性∶SLSTAY大時,任一個變數都不能剔除;SLSTAY小時,開始剔除的變數後來在新條件下即使有了顯著性,也不能再次被入選迴歸模型並參入檢驗。
  3.逐步篩選法(STEPWISE)
  此法是向前選擇法和向後消去法的結合。模型中的變數從無到有像向前選擇法那樣,根據F統計量按SLENTRY水平決定該變數是否入選;當模型選入變數後,又像向後消去法那樣,根據F統計量按SLSTAY水平剔除各不顯著的變數,依次類推。這樣直到沒有變數可入選,也沒有變數可剔除或入選變數就是剛剔除的變數,則停止逐步篩選過程。
  逐步篩選法比向前選擇法和向後消去法都能更好地在模型中選出變數,但也有它的侷限性∶其一,當有m個變數入選後,選第m+1個變數時,對它來說,前m個變數不一定是最佳組合;其二,選入或剔除變數僅以F值作標準,完全沒考慮其他標準。
  4.最大R2增量法(MAXR)
  首先找到具有最大決定係數R2的單變量回歸模型,其次引入產生最大R2增量的另一變數。然後對於該兩變數的迴歸模型,用其他變數逐次替換,並計算其R2,如果換後的模型能產生最大R2增量,即為兩變數最優迴歸模型,如此再找下去,直到入選變數數太多,使設計矩陣不再滿秩時為止。
  它也是一種逐步篩選法,只是篩選變數所用的準則不同,不是用F值,而是用決定係數R2判定變數是否入選。因它不受SLENTRY和SLSTAY的限制,總能從變數中找到相對最大者;脹克服了用本節篩選法1~3法時的一種侷限性∶找不到任何變數可進入模型的情況。
  本法與本節第3種方法都是逐步篩選變數方法,每一步選進或剔除變數都是隻限於一個,因而二者侷限性也相似∶第一,當有m個變數入選後,選第m+1個變數時,對它來說,前m個變數不一定是最佳組合;第二,選入或剔除變數僅以R2值作標準,完全沒考慮其他標準。
  5.最小R2增量法(MINR)
  首先找到具有最小決定係數R2的單變量回歸模型,然後從其餘變數中選出一個變數,使它構成的模腥其他變數所產生的R2增量最小,不斷用新變數進行替換老變數,依次類推,這樣就會順次列出全部單變量回歸模型,最後一個為單變數最佳模型;兩變數最小R2增量的篩選類似本節第4種方法,但引入的是產生最小R2增量的另一變數。對該兩變數的迴歸模型,再用其他變數替換,換成產生最小R2增量者,直至R2不能再增加,即為兩變數最優迴歸模型。依次類推,繼續找含3個或更多變數的最優迴歸模型等等,變數有進有出。
  它與本節第4種方法選的結果不一定相同,但它在尋找最優模型過程中所考慮的中間模型要比本節第4種方法多。
  本法的侷限性與本節第3、4種方法相似∶第一,當有m個變數入選後,選第m+1個變數時,每次只有1個變數進或出,各變數間有複雜關係時,就有可能找不到最佳組合;第二,選入變數或替換變數僅以R2值作標準,完全沒考慮其他標準。
  6.R2選擇法(RSQUARE)
  從模型語句中的各自變數所有可能子集中選出規定數目的子集,使該子集所構成的模型的決定係數R2最大。要注意∶當觀測點少、且模型語句中變數數目過多時, 程式不能執行,因為過多變數使誤差項無自由度,設計矩陣不滿秩,所以最多隻能從所有可能的變數中選擇觀測點數減1個變數放入模型。本法和後面的本節第7、8種方法分別是按不同標準選出迴歸模型自變數的最優子集,這類選變數法不是從所有可能形成的變數中,而僅僅從模袖量中窮舉。
  本法的侷限性在於∶其一,當樣本含量小於等於自變數(含互動作用項)個數時,只能在一定數目的變數中窮舉,為找到含各種變數數目的最優子集,要麼增加觀測,要麼反覆給出不同模型;其二,選最優子集的標準是R2,完全沒考慮其他標準。
  7.修正R2選擇法(ADJRSQ)
  根據修正的決定係數R2取最大的原則,從模型的所有變數子集中選出規定數目的子集。程式能執行的條件是設計矩陣X滿秩。
  本法的侷限性與本節第6種方相似: 其一,與本節第6種方中“其一”相同;其二,選最優子集的標準只是用修正的R2取代未修正的R2而已,完全沒考慮其他標準。
  8.Mallow’s Cp選擇法(CP)
  根據Mallow’s Cp統計量(定義見本章第6節),從模袖量子集中選出最優子集。 Cp統計量的數值比本節第6、7種方法更大地依賴於MODEL語句所給出的模型,它比前二者多考慮的方面是∶用模型語句決定的全迴歸模型估計出誤差平和。程式能執行的條件是設計矩陣滿秩。
  本法的侷限性與本節第6種方相似,只是用Cp統計量取代R2而已。
  [說明1] 全迴歸模型選擇(NONE)∶不捨棄任何變數,將全部變數都放入模型之中去。當各回歸模型中的各回歸變數的設計矩陣不滿秩時,與本節第6~8種方法選擇方法同樣道理,迴歸分析是不能正常進行下去的。
  [說明2] 用本節第6~8種方法只能達到篩選變數的目的,但結果中並沒有具體給出迴歸方程各引數的估計值及其檢驗結果,需從所給出的變數組合中結合專業知識選擇某些變數子集,用不篩選變數的方法建立含所指定變數子集的迴歸方程。
  [說明3] 用本節第1~5種方法雖然給出了篩選變數後的迴歸方程,但一般也只用於變數篩選,當確定了最後的迴歸方程之後,此時,再在模型語句的“/”號之後多加一些選擇項,重新執行修改後的程式,以便給出各種檢驗、診斷和描述性的結果。

 第四節 迴歸診斷方法

迴歸診斷的兩項主要任務

(1)檢驗所選模型中的各變數之間共線性(即某些自變數之間有線性關係)情況;

(2) 根據模型推算出與自變數取各樣本值時對應的因變數的估計值y^,反過來檢驗所測得的Y是否可靠。

下面就SAS系統的REG過程執行後不同輸出結果,僅從迴歸診斷方面理解和分析說明1.用條件數和方差分量來進行共線性診斷
  各入選變數的共線性診斷藉助SAS的MODEL語句的選擇項COLLIN或COLLINOINT來完成。二者都給出資訊矩陣的特徵根和條件數(Condition Number),還給出各變數的方差在各主成分上的分解(Decomposition),以百分數的形式給出,每個入選變數上的方差分量之和為1。COLLIN和COLLINOINT的區別在於後者對模型中截距項作了校正。當截距項無顯著性時,看由COLLIN輸出的結果;反之,應看由COLLINOINT輸出的結果。
(1)條件數
  先求出資訊矩陣X’X的各特徵根, 條件指數(condition indices)定義為: 最大特徵根與每個特徵根比值的平根,其中最大條件指數k稱為矩陣X’X的條件數。
  條件數大,說明設計矩陣有較強的共線性,使結果不穩定,甚至使離開試驗點的各估計值或預測值毫無意義。
  直觀上,條件數(condition index)度量了資訊矩陣X’X的特徵根散佈程度,可用來判斷多重共線性是否存在以及多重共線性嚴重程度。在應用經驗中,若0<k<10,則認為沒有多重共線性;10≤k≤30,則認為存在中等程度或較強的多重共線性;k>30,則認為存在嚴重的多重共線性。

(2)方差分量
  強的多重共線性同時還會表現在變數的方差分量上∶同一行中同時有2個以上變數的方差分量超過50%,就意味這些變數間有一定程度的相關。

2.用方差膨脹因子來進行共線性診斷
(1)容許度(Tolerance,在Model語句中的選擇項為TOL)
  對一個入選變數而言,該統計量等於1- R2,這裡R2是把該自變數當作因變數對模型中所有其餘迴歸變數的決定係數, R2大(趨於1),則1-R2=TOL小(趨於0),容許度差,該變數不由其他變數說明的部分相對很小。
(2)方差膨脹因子(VIF)
  VIF=1/TOL,該統計量有人譯為“方差膨脹因子”(Variance Inflation Factor),對於不好的試驗設計,VIF的取值可能趨於無限大。VIF達到什麼數值就可認為自變數間存在共線性?尚無正規的臨界值。[陳希孺、王鬆桂,1987]根據經驗得出∶VIF>5或10時,就有嚴重的多重共線性存在。

3.用學生化殘差對觀測點中的強影響點進行診斷
  對因變數的預測值影響特別大,甚至容易導致相反結論的觀測點,被稱為強影響點(In-fluence Case)或稱為異常點(Outlier)。有若干個統計量(如∶Cook’ D統計量、hi統計量、STUDENT統計量、RSTUDENT統計量等,這些統計量的定義參見第6節)可用於診斷哪些點對因變數的預測值影響大,其中最便於判斷的是學生化殘差STUDENT統計量,當該統計量的值大於2時,所對應的觀測點可能是異常點,此時,需認真核對原始資料。若屬抄寫或輸入資料時人為造成的錯誤,應當予以糾正;若屬非過失誤差所致,可將異常點剔除後再作迴歸分析。如果有可能,最好在此點上補做試驗,以便進一步確認可疑的“異常點”是否確屬異常點。

第五節 用各種篩選變數方法程式設計的技巧
  從第3節可知,有多種篩選變數的方法,這些方法中究竟哪一種最好?沒有肯定的答覆。最為可行的做法是對同一批資料多用幾種篩選變數的方法,並結合專業知識從中選出相對優化的迴歸模型。
  判斷一個迴歸模型是否較優,可從以下兩個方面考慮∶其一,整個迴歸模型及模型中各回歸引數在統計學上有顯著性意義、在專業上(特別是因變數的預測值及迴歸方程的精度)有實際意義;其二,在包含相同或相近資訊的前提下,迴歸方程中所包含的變數越少越好。   

下面利用一個小樣本資料,通過一個較複雜的SAS程式,展示如何用各種篩選變數的方法實現迴歸分析、如何用已求得的迴歸方程對資料作進一步的分析的技巧。
  [例4]  α-甲醯門冬醯苯丙氨酸甲酯(FAPM)是合成APM的關鍵中間體之一。試驗表明,影響FAPM收率的主要因素有∶ 原料配比(r)、溶劑用量(p1)、催化劑用量(p2)及反應時間(t)等4個因素,現將各因素及其具體水平的取值列在下面。
  影響FAPM合成收率的因素和水平∶
  因素各水平的程式碼     1   2   3   4   5   6   7
  r 原料配比       0.80  0.87  0.94  1.01  1.08  1.15  1.22
  p1 溶劑用量(ml)     10   15   20   25   30   35   40 
  p2 催化劑用量(g)    1.0  1.5  2.0  2.5  3.0  3.5  4.0 
  t 反應時間(h)       1   2   3   4   5   6   7 
  研究者按某種試驗設計方法選定的因素各水平的組合及其試驗結果如下,試用迴歸分析方法分析此資料(注∶權重僅為相同試驗條件下重複實驗執行的次數)。
   編號   r     p1     p2     t  Y(收率,%)  權重
    1   0.80    15     2.0     6    71.5    3
    2   0.87    25     3.5     5    71.2    2
    3   0.94    35     1.5     4    72.8    3
    4   1.01    10     3.0     3    69.7    2
    5   1.08    20     1.0     2    67.5    3
    6   1.15    30     2.5     1    67.3    3
    7   1.22    40     4.0     7    71.8    3
[SAS程式]
dm ‘log;clear;output;clear;’;

OPTIONS PS=70;

DATA ex3;

INPUT r p1 p2 t y w;

rp1=r*p1; rt=r*t; p1t=p1*t; r2=r*r; t2=t*t; p12=p1*p1; p22=p2*p2;

  • 這裡產生的7個新變數代表因素之間的互動作用;

CARDS;

0.80 15 2.0 6 71.5 3

0.87 25 3.5 5 71.2 2

0.94 35 1.5 4 72.8 3

1.01 10 3.0 3 69.7 2

1.08 20 1.0 2 67.5 3

1.15 30 2.5 1 67.3 3

1.22 40 4.0 7 71.8 3

;

RUN;

PROC REG ;

MODEL y=r r2 p1 p12 p2 p22 t t2 rp1 rt p1t / SELECTION=FORWARD;

MODEL y=r r2 p1 p12 p2 p22 t t2 rp1 rt p1t / SELECTION=BACKWARD;

MODEL y=r r2 p1 p12 p2 p22 t t2 rp1 rt p1t / SELECTION=STEPWISE;

MODEL y=r r2 p1 p12 p2 p22 t t2 rp1 rt p1t / SELECTION=MAXR START=1 STOP=5;

MODEL y=r r2 p1 p12 p2 p22 t t2 rp1 rt p1t /SELECTION=MINR START=1 STOP=5;

MODEL y=t t2 p12 r rp1 / SELECTION=RSQUARE BEST=30 STOP=5;

MODEL y=t t2 p12 r rp1 / SELECTION=ADJRSQ BEST=30 STOP=5;

MODEL y=t t2 p12 r rp1 / SELECTION=CP BEST=40 STOP=5;

RUN;

  • 用選好的模型分析資料,並給出關於模型的各種統計量(計權重);

PROC REG;

WEIGHT w;

MODEL y=r rp1 p12 t2 / SELECTION=NONE P CLI INFLUENCE STB COLLIN COLLINOINT;

RUN;

DATA b; * 先將原始資料放入資料集b ;

SET ex3 END=EOF;

OUTPUT;

  • 再按照r , p1 , t的合理範圍形成y為缺失的資料也放入資料集b;

IF EOF THEN DO;

   y=.;

   DO r=0.8 TO 1.22 BY .7;

       do p1=10 to 40 BY 5;

          DO t=1 TO 7;

              rp1=r*p1; rt=r*t; p1t=p1*t; r2=r*r; t2=t*t; p12=p1*p1;OUTPUT;

          END;

       END;

   END;

END;

RUN;

  • 按原始資料迴歸,卻可得到r、p1、t的新組合所對應的估計值y^;

PROC REG DATA=b ;

WEIGHT w;

MODEL y=r rp1 p12 t2 / P CLI CLM COLLINOINT STB R VIF;

OUTPUT OUT=d1 PREDICTED=pdc;

RUN;

PROC PRINT DATA=d1; RUN;

PROC SORT DATA=d1(KEEP=r p1 t pdc); BY DESCENDING pdc; RUN;

DATA c;

SET d1;

FILE PRINT;

TITLE '40 best combinations of r p1 t ';

IF _N_<=40 THEN PUT ' r='r:4.2 ' p1='p1:2.0 ' t=' t:1.0 ' y=' pdc:8.5;

* 對於各因素各水平取值區間的不同組合,求出估計值,列出其中40個收率較高的組合;

RUN;

[SAS程式修改指導] 至於模型1~模型8等號右邊每次究竟應該寫哪些自變數(含它們的互動作用項),基本上是在結合專業知識的基礎上憑經驗進行摸索,一般需多次除錯。若觀測點數n遠遠大於自變數的個數k時,可將全部自變數放入MODEL語句中,用不同的方法進行篩選;若n≤k,有些方法最多隻能用n-1個變數參入篩選。
  [說明] 此程式的輸出結果太多,從略。

第6節 與迴歸分析有關的重要統計術語和統計量的註解

1.R-square(決定係數、復(全)相關係數平)
(1)複相關係數為因變數的觀測值y與估計值(y^)之間的簡單線性相關係數
(2)決定係數
  其中,各入選變數總的迴歸貢獻(即迴歸離差平和)SSR可分別表示成下列①、②兩種形式∶
  ① (即各回歸係數與Siy相乘再求和,其中 。
  ② (即總離均差平和與總誤差平和之差)。
2.校正的R2 (Adjusted R-square )
  R2隨模型中的變數的增加而增加,且不會減小,模型中的變數太多可能因共線性而不穩定,所以看一個模型好壞,不僅要看R2,而且還應看R2adj,後者對自由度(也即變數數)作了校正。  

  
3.Mallows’ Cp統計量
  當從k個迴歸變數中選出p個時,為鑑別模型好壞,可用Mallows’ Cp統計量(一般認為, Cp近似等於p較好),它與總觀測數(n)、MODEL語句所考慮的總變數數(k)、運算中當前選入模型的變數數(p)、總的誤差平和(SSEk)、該模型的誤差平和(SSEp)有關:  

此式中的第1項還可用下面兩種表達形式∶①MSEp·(n-p-1)/MSEk ;②SSEp/MSEk
  Cp的定義公式中第1項的3種形式是等式變換,注意到下面兩個均方的定義,則不難看懂它們之間的關係。MSEp=SSEp/(n-p-1)、 MSEk=SSEk/(n-k-1)。
4.剩餘或殘差(Residual)
  ①普通殘差, RESIDi=ei=yi-y^i ;
  ②學生化殘差Studentized residual, STUDENTi=ei/STDERR(ei) ;
  ③學生化剔除殘差Studentized deleted residual, (有人稱為刀切法殘差Jackknife residual),
  RSTUDENT=ei/(S(i)*p),在MODEL語句中加上INFLUENCE後就會給出各點上RSTUDENT統計量的值,如果單用選擇項R,只給出普通殘差和STUDENT的計算結果。
  ④預測平和,Press=∑ni=1[ei/(1-hi)]2,它度量了全模型的優劣。
5.COOK’S D(庫克距離)統計量
  對某一觀測引起的影響(INFLUENCE)的度量,通過計算此觀測在模型中和不在模型中引起COOK’S D統計量的變化來衡量。[約瀚·內特等,1990]認為∶COOK’S D>50%時,就可以認為第i個觀測點對迴歸函式的擬合有強的影響。

相關推薦

#使用SAS進行變數篩選模型診斷多元線性迴歸分析 #

 轉載, 太經典了,學習了 第一節 多元線性迴歸分析的概述   迴歸分析中所涉及的變數常分為自變數與因變數。當因變數是非時間的連續性變數(自變數可包括連續性的和離散性的)時,欲研究變數之間的依存關係,多元線性迴歸分析是一個有力的研究工具。   多元迴歸

利用R進行多元線性迴歸分析

對於一個因變數y,n個自變數x1,...,xn,要如何判斷y與這n個自變數之間是否存線上性關係呢? 肯定是要利用他們的資料集,假設資料集中有m個樣本,那麼,每個樣本都分別對應著一個因變數和一個n維的自變

用R進行多元線性迴歸分析建模

概念:多元迴歸分析預測法,是指通過對兩個或兩個以上的自變數與一個因變數的相關分析,建立預測模型進行預測的方法。當自變數與因變數之間存在線性關係時,稱為多元線性迴歸分析。 下面我就舉幾個例子來說明一下

opencv_人臉檢測模型訓練人臉識別

nbsp tro python3.6 pychar 入門 tex 幫助 family ext 人臉檢測、模型訓練、人臉識別 2018-08-15   今天給大家帶來一套人臉識別一個小案例,主要是幫助小夥伴們解決如何入門OpenCV人臉識別的問題,現在的AI行業比較火熱,

sklearn庫:分類迴歸聚類降維模型優化文字預處理實現用例(趕緊收藏)

分類演算法 # knn演算法 from sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier() ''' __init__函式 def __init__(self, n_neighbors=5,

【scikit-learn】交叉驗證及其用於引數選擇模型選擇特徵選擇的例子

[0.95999999999999996, 0.95333333333333337, 0.96666666666666656, 0.96666666666666656, 0.96666666666666679, 0.96666666666666679, 0.96666666666666679, 0.9666

學習理論模型選擇特徵選擇——斯坦福CS229機器學習個人總結(四)

這一份總結裡的主要內容不是演算法,是關於如何對偏差和方差進行權衡、如何選擇模型、如何選擇特徵的內容,通過這些可以在實際中對問題進行更好地選擇與修改模型。 1、學習理論(Learning theory) 1.1、偏差/方差(Bias/variance)

scikit-learn中交叉驗證及其用於引數選擇模型選擇特徵選擇的例子

內容概要 訓練集/測試集分割用於模型驗證的缺點 K折交叉驗證是如何克服之前的不足 交叉驗證如何用於選擇調節引數、選擇模型、選擇特徵 改善交叉驗證 1. 模型驗證回顧 進行模型驗證的一個重要目的是要選出一個最合適的模型,對於監督學習而言,我們希望模型

Flask框架(flask中的資料庫SQLAlchemy(python3),配置模型建立表)

1.  SQLAlchemy是一個關係型資料庫框架,      它提供了高層的ORM和底層的原生資料庫的操作。       flask-sqlalchemy是一個簡化了SQLAlchemy操作的flask擴充套

Django模型---原理模型管理類

1.原理通過ORM與資料庫互動,如更換資料庫只需要更改執行環境的配置。參見“Django專案的流程文章”ORM是“物件-關係-對映”的簡稱,主要任務是:根據物件的型別生成表結構將物件、列表的操作,轉換為sql語句將sql查詢到的結果轉換為物件、列表2.模型類(models.M

Yii框架之資料庫配置連線模型配置獲取具體資料執行原生的sql語句

【資料庫操作】MVC框架C:controller  控制器V:view       檢視M:model    模型操作資料庫步驟:1) 建立資料庫php0507、建立資料表、寫入測試資料2) 通過Yii

Struts2表單驗證模型驅動防重複提交資料回顯筆記整理

 剛學完一些零散的struts內建功能,做點筆記,就當回顧一遍,也便以後使用。 -------------------------------------------------------------------------------------------------

線性模型之邏輯迴歸(LR)(原理公式推導模型對比常見面試點)

參考資料(要是對於本文的理解不夠透徹,必須將以下部落格認知閱讀,方可全面瞭解LR): (1).https://zhuanlan.zhihu.com/p/74874291 (2).邏輯迴歸與交叉熵 (3).https://www.cnblogs.com/pinard/p/6029432.html (4).htt

吳恩達機器學習(二)多元線性迴歸(假設代價梯度特徵縮放多項式)

目錄 0. 前言 學習完吳恩達老師機器學習課程的多變數線性迴歸,簡單的做個筆記。文中部分描述屬於個人消化後的理解,僅供參考。 0. 前言 多元線性迴歸(Multivari

機器學習--線性迴歸1(一元線性迴歸多元線性迴歸,誤差性質)

前面幾節都是監督學習方面的演算法,監督學習是指有目標變數或預測目標的機器學習方法,迴歸與分類的不同,就在於其目標變數是連續數值型,而分類的目標變數是標稱型資料,其實前面的Logistic迴歸就是迴歸的一種,他們的處理方法大同小異,在這裡系統的講解一下回歸的來龍去脈,理解影響迴

吳恩達-機器學習(2)-多元線性迴歸正規方程

文章目錄 Multivariate Linear Regression 特徵縮放 學習率 多項式迴歸(Ploynomial regression) Normal Equation

【機器學習筆記02】最小二乘法(多元線性迴歸模型

數學基礎 1.轉置矩陣 定義: 將矩陣A同序數的行換成列成為轉置矩陣ATA^TAT,舉例: A=(1203−11)A=\begin{pmatrix} 1 &amp; 2 &amp; 0 \\ 3 &amp; -1 &amp;

TensorFlow實踐(5)——多元線性迴歸模型

(一)前 言 一元線性迴歸是一個主要影響因素作為自變數來解釋因變數的變化,但在現實問題中,因變數的變化往往受到多個重要因素的影響,這時就需要兩個或兩個以上的影響因素作為自變數來解釋因變數的變化,這便是多元迴歸,而當多個自變數與因變數之間是線性關係時,所進

多元線性迴歸資料篩選問題

前幾天,偶然在網上看到,建立多元線性迴歸時須對其中的異常資料進行篩選剔除,那這裡的異常點指的是什麼呢?這裡的異常點指的是人為採集資料誤差或者某些異常的個例等等一些不太準確的資料。 例子說明 例如,對於下表中的一些資料我們來進行資料篩選。 在醫學上,糖尿

多元線性迴歸模型的F檢驗

F檢驗    對於多元線性迴歸模型,在對每個迴歸係數進行顯著性檢驗之前,應該對迴歸模型的整體做顯著性檢驗。這就是F檢驗。當檢驗被解釋變數yt與一組解釋變數x1, x2 , ... , xk -1是否存在迴歸關係時,給出的零假設與備擇假設分別是 H0:b1 = b2 = ..