在《線性回歸中的線性考察》一文的最後,我們提到了偏回歸圖與偏殘差圖是不一樣的。本文從構圖原理上介紹一下偏回歸圖(Partial Regression Plot)、偏殘差圖(Partial Residual Plot)、增強的偏殘差圖(Argumented Partial Residual Plot)、槓桿圖(Leverage Plot)。雖然我極力想避免一些關於統計原理以及數學公式的表述,因為這對我來說是一件非常痛苦的事情,但對這幾個圖來說,我們要是知道了橫坐標是什麼,縱坐標是什麼,才能更好地理解和應用它們。當然在筆記中,我們還是用示例來展示一下這幾個圖如何獲得及其解讀,示例依舊採用《線性回歸中的線性考察》中的例子。
【1】偏回歸圖(Partial Regression Plot)在SPSS的[線性回歸]對話框的打開[Plots…]按鈕後有個[Produce all partial plots]選項,生成的散點圖就是偏回歸圖,實際中常被誤翻譯為「偏殘差圖」,但偏回歸圖(Partial Regression Plot)和偏殘差圖(Partial Residual Plots)是不同的。SPSS的幫助文件對偏回歸圖的定義是:Partial regression plots are scatterplots of the residuals of the dependent variable and an independent variable when both of these variables are regressed on the rest of the independent variables,翻譯過來就是自變量Xi的偏回歸圖是因變量Y與其他自變量回歸殘差與自變量Xi與其他自變量回歸殘差的散點圖。偏回歸圖是用散點圖的形式顯示兩個殘差間的關係,其中一個殘差是Y殘差(因變量Y對自變量X以外的所有預測變量上進行回歸獲取的殘差),另外一個殘差是X殘差(自變量X對模型中其他所有預測變量上進行回歸併計算的殘差) 。Y•[i] = residuals from regressing Y (the response variable) against all the independent variables except Xi,Xi•[i] = residuals from regressing Xi against the remaining independent variables.
偏回歸圖(Partial Regression Plot)也叫增加變量圖(Added variable plot),Added variable plot provides information about the marginal importance of a predictor variable Xi, given the other predictor variables already in the model. It shows the marginal importance of the variable in reducing the residual variability.The Y residuals represent the part of Y not explained by all the variables other than X. The X residuals represent the part of X not explained by other variables. The slope of the line fitted to the points in the added variable plot is equal to the regression coefficient when Y is regressed on all variables including X.
以有1個因變量Y與3個預測變量(X1,X2,X3)的多重線性回歸模型為例,模型表達式如下:完整模型為(1),模型(2)產生的εy|X2,X3就是Y殘差,模型(3)產生的εX1|X2,X3就是X殘差,X1的偏回歸圖就是以 回歸模型(2)的殘差εy|X2,X3為縱坐標、回歸模型(3)的殘差εX1|X2,X3為橫坐標構建的散點圖,這些散點(εX1|X2,X3,εy|X2,X3)的擬合直線模型為(4)。在X1的偏回歸圖中,兩個殘差擬合線(4)的截距為0,斜率和殘差跟完整模型(1)的X1的係數估計值和殘差一致。
偏回歸圖一般用於強影響點和和離群值的探尋。簡單說下幾種異常點:離群值是Y空間上的異常點,高槓桿點是X空間上的異常點,強影響點是去掉某個點後會使模型參數會明顯改變的點。
SPSS操作步驟與結果:
線性回歸:Analyze>>Regression>>Linear……
l Dependent(因變量):選入S;
l Independent(自變量):選入wt、hl和ct;
l 變量篩選方法(Method):Enter,默認;
l Plots…對話框:選中Produce all partial plots,Continue。OK。
結果會顯示體重(wt)、心臟縱徑(hl)以及胸腔橫徑(ct)的偏回歸圖。扣除hl、ct的影響後,wt的效應對心臟面積S的影響不大,同理可以查看hl和ct對S的影響,hl對S的影響比較明顯,ct對S的影響則可能不明顯。我們可以參照後面介紹的槓桿圖對偏回歸局添加擬合線和95%CI,會更明顯的觀測到考察因素對因變量是否有影響。數據可能存在離群值和高槓桿點。你可以想像刪除某些點後直線是否會改變以此來估計它的影響效果,如果改變會比較明顯則可能是強影響點。
偏回歸圖(增加變量圖)STATA製作步驟:
統計>>線性模型及相關>>線性回歸;
模型:因變量選入S,自變量選入wt,hl,ct。
以上相應命令為:regress S wt hl ct。
統計>>線性模型及相關>>回歸診斷>>添加變量圖,主要選項卡中的變量默認為所有變量;相應命令為avplots。如果只是想生成某個變量的添加變量圖,可以只選擇需要考察的變量。
偏回歸圖(增加變量圖)R命令清單及結果:
library(foreign) #載入程序包foreign
lr<- read.dta("D:/Temp/lr.dta") #從STATA文件導入名稱為lr的數據框中
lrfit<-lm(S~wt+hl+ct,data=lr) #新建對象lrfit,賦值為擬合的線性回歸
library(car) #載入包car
library(carData) #載入包carData
avPlots(lrfit) #繪製增加變量圖
實際上強影響點的考察還可以直接通過殘差、距離(Mahalanobis、Cook’s、leveragevalue)以及DfBeta、StandardizedDfBeta等進行考察,我們在《多重線性回歸》一文中都有介紹。另外R的car包中的函數influencePlot()可在一幅圖中同時顯示離群值、高槓桿點和強影響點,接上面的命令清單輸入:
influencePlot(lrfit) #繪製異常點圖
This function influencePlot{car} creates a 「bubble」 plot of Studentized residuals versus hat values, with the areas of the circles representing the observations proportional to the value Cook's distance. Vertical reference lines are drawn at twice and three times the average hat value, horizontal reference lines at -2, 0, and 2 on the Studentized-residual scale. 21、25是離群值,8和9是高槓桿點,21和25也是強影響點。
在JMP中,有一個常出現的圖叫效應槓桿圖(leverage plot),它實際上是偏回歸圖的改進版本。與偏回歸圖的區別是,槓桿圖在Y殘差中添加了Y均值,在X殘差中添加了X均值。這種添加了X均值的Y殘差稱為Y槓桿率殘差,添加了X均值的X殘差被稱為X槓桿率值。在槓桿圖中,還添加了一條水平線(y=Y均值)、Y槓桿率殘差與X槓桿率值的擬合線以及擬合線95%的置信區間。在對偏回歸圖添加95%的置信區間後,曲線之間的置信區域包含水平線[y=Y效應均值]表明在關注的檢驗水平下,該自變量的效應不顯著;置信曲線均跨過水平線[y=Y響應均值],表明擬合線具有非零斜率,擬合線如具有非零斜率,則表示這個變量效應顯著,向模型添加該變量可以更好地幫助解釋因變量的變異。分析>>擬合模型;
Y選入S,選中wt、hl、ct單擊[構造模型效應]中的[添加]選入,[特徵]為默認的[最小二乘法],[重點]為默認的[效應槓桿率],結果如下,同偏回歸圖基本一致,只是橫縱坐標值加入了均值。
也稱成分+殘差圖(Component plus Residual Plots)。Wayne A. Larsen & Susan J. McCleary在1972年的[The Use of Partial Residual Plots in Regression Analysis]一文中給出的偏殘差圖明確的定義:The ith partial residual vector can be thought of as the dependent variable vector corrected for all independent variables except the ith variable. A plot of the ith partial residuals vs values of the ith variable is proposed as a replacement for the usual plot displaying ordinary residuals vs the ith independent variable. This partial residual plot shows the extent and direction of linearity, while displaying deviations from linearity, such as outliers, inhomogeneity of variance, and curvilinear relationships. Some alternative definitions of partial residuals are described.此處的Xi變量偏殘差e定義為e=ε+βXi,指用除自變量Xi外其他所有自變量校正過的因變量,但與偏回歸圖中的使用回歸對因變量進行校正不同,偏殘差而是通過完整模型(1)直接去掉其他自變量的效應獲得的,即公式(5)中的注釋ε+βXi也可以通過Y-β0+β2X2+β3X3來計算。偏殘差圖就是偏殘差(ε+βXi)與預測變量Xi構建的散點圖(Xi,ε+βXi),其擬合線模型為方程(5),「這裡關鍵的想法是Y與Xi 之間未進入模型的非線性關係應能體現在最小二乘法的殘差中,從而通過描繪並平滑e 與Xi的關係能夠揭示y與Xi之間的偏相關關係」。在X1的偏殘差圖中,擬合線的斜率和殘差跟完整模型(1)的X1的係數估計值和殘差一致。
偏殘差圖(Xi,ε+βXi)不僅可以像普通殘差圖(Xi,ε)一樣,用於考察:
還可以用於分析:
還有一個圖叫增強的偏殘差圖(Argumented Partial Residual Plot)或者叫增強的成分+殘差圖(Argumented Component plus Residual Plots),實際上是偏殘差圖的變化形式,可以更敏感地檢測非線性,其完全模型和散點圖中均加入了二次項,增強的偏殘差圖是由(X1,ε+κ1X1+κ4X12)散點構成的圖,該圖中的擬合線(7)與其完全模型(6)擁有相同斜率與殘差。
SPSS中並未直接給出偏殘差圖的繪製,但可以根據其定義進行計算。先給出結果如下(左圖為偏殘差圖,並做過編輯,右圖為增強的偏殘差圖):
SPSS構圖步驟:
(1)偏殘差圖
①計算完整模型殘差和預測變量係數:Analyze>>Regression>>Linear……
l Dependent(因變量):選入S;
l Independent(自變量):選入wt、hl和ct;
l 變量篩選方法(Method):Enter,默認;
l Save…對話框:選中Unstandardized,Continue。OK。
此步生成未標準化的殘差RES_1,同時在係數表中各自變量的係數,如βhl=9.258524;
②生成新變量Yr:Transform>>Compute Variable…
Yr=9.258524*hl+RES_1;
③構建偏殘差圖:Graphs>>Chart Builder…
Gallery:Scatter/Dot中雙擊Simple Scatter,將hl拉入X-Axis?,將Yr拉入Y-Axis?框,OK。
雙擊生成的偏殘差圖,添加平滑擬合線(loess)及參考線y=9.258524X,並進行美化。
①生成新變量hl2:Transform>>Compute Variable…
hl2=hl*hl;
②計算強化偏殘差圖的完整模型殘差和預測變量係數:Analyze>>Regression>>Linear……
l Dependent(因變量):選入S;
l Independent(自變量):選入wt、hl、ct、hl2;
l 變量篩選方法(Method):Enter,默認;
l Save…對話框:選中Unstandardized,Continue。OK。
此步生成未標準化的殘差RES_2,同時在係數表中各自變量的係數,如βhl=-9.222247,βhl2=0.975178;
③生成新變量Yar:Transform>>Compute Variable…
Yar=-9.222247*hl+0.975178*hl2+RES_1;
④構建偏殘差圖:Graphs>>Chart Builder…
Gallery:Scatter/Dot中雙擊Simple Scatter,將hl2拉入X-Axis?,將Yar拉入Y-Axis?框,OK。
STATA步驟:
統計>>線性模型及相關>>線性回歸;
模型:因變量選入S,自變量選入wt,hl,ct;
統計>>線性模型及相關>>回歸診斷>>分量和殘差圖(或增強的分量和殘差圖),主要選項卡中的變量默認為所有變量選擇hl。分量和殘差圖只能一個變量一個變量分析,本例以hl為例。
R命令清單:
在R軟體中,偏殘差圖(成分殘差圖)不僅給出了偏殘差圖的散點(Xi,ε+βXi)及其平滑擬合曲線(粉紅色),同時給出了Xi與βXi的擬合直線。在偏殘差圖中,如果直線與擬合曲線接近重合表明自變量Xi與因變量存在很好的線性關係,如果差別較大則表明自變量與因變量之間可能存在非線性關係。R命令清單及結果如下:
library(foreign) #載入程序包foreign
lr<- read.dta("D:/Temp/lr.dta") #從STATA文件導入名稱為lr的數據框中
lrfit<-lm(S~wt+hl+ct,data=lr) #新建對象lrfit,賦值為擬合的線性回歸
library(car) #載入包car
library(carData) #載入包carData
crPlots(lrfit) #繪製分類殘差圖
l Regress Y on all variables including X and store the residuals (e).
l Multiply e with regression coefficient of X (eX).
l Construct scatter plot of eX and X.
筆者按照這個定義,不論是用eβ還是eX作為縱坐標均未能實現R給出的偏殘差圖,需要進一步探討,但在應用上,其形式與STATA基本一致,不影響使用。
這幾天全國人民都在關注疫情的拐點,屆時新增人數逐漸穩定然後轉至逐漸減少,希望這一天不會太遙遠!