R筆記:多重線性回歸(二)_適用條件考察

2021-02-21 一統漿糊

書接上回……

我們在<<多重線性回歸(一)_模型擬合>>一文中已經建立了回歸模型lmfit並對模型參數進行了估計,但建立回歸方程實際上是整個回歸分析裡面最簡單的一部分,數據適不適合採用線性回歸,回歸模型對數據的擬合性如何還需要更進一步的考察驗證。線性回歸基本適用條件:獨立、線性、正態和方差齊同,本次筆記在上次筆記建立多重回歸模型lmfit後考察這幾個適用條件。

線性回歸適用條件和模型的診斷多涉及殘差分析。R的基礎包幾個常用的殘差計算分析函數如下:

residuals():模型殘差;

rstandard():標準化殘差,或者直接計算sqrt(deviance(model)/df.residual(model)),…);

rstudent():學生化殘差;

predict():預測值;

plot():繪製模型診斷圖或構建相應的殘差圖。plot函數可利用模型殘差繪製6幅圖(默認4幅,相當於which=1:4,Cook距離和Cook距離對槓桿值圖默認不顯示),實現模型正態性、方差齊性及異常點等的分析。

Six plots (selectable by which) are currently available: a plot of residuals against fitted values, a Scale-Location plot of sqrt(|residuals|) against fitted values, a Normal Q-Q plot, a plot of Cook's distances versus row labels, a plot of residuals against leverages, and a plot of Cook's distances against leverage/(1-leverage). By default, the first three and 5 are provided. 1:Residuals vs Fitted; 2: Normal Q-Q; 3: Scale-Location; 4: Cook's distance; 5: Residuals vs Leverage; 6:Cook's dist vs Leverage hii/(1-hii).

par(mfrow=c(2,3)) #par {graphics}將plot()函數生成的四幅圖繪製在一個大圖中,大圖按2×3排列四幅小圖

plot(lmfit, which=1:6, col ="blue")  

結果如下,基本滿足線性、正態性和方差齊性,但可能存在異常點。

殘差對擬合值散點圖:可用於判斷殘差中是否還存在非線性趨勢成分,紅色的是lowess(局部加權回歸散點修勻法)曲線;There could be a non-linear relationship between predictor variables and an outcome variable and the pattern could show up in this plot if the model doesn’t capture the non-linear relationship. If you find equally spread residuals around a horizontal line without distinct patterns, that is a good indication you don’t have non-linear relationships。該散點圖也常用來判斷判斷方差齊性。

殘差的正態QQ圖:用於判斷殘差的正態性,It’s good if residuals are lined well on the straight dashed line.

Scale-Location圖:殘差絕對值平方根對擬合值散點圖,常用於判斷方差齊性。It’s also called Spread-Location plot. This plot shows if residuals are spread equally along the ranges of predictors. This is how you can check the assumption of equal variance (homoscedasticity). It’s good if you see a horizontal line with equally (randomly) spread points.

Cook距離圖:各觀察值的Cook距離,判斷異常值Cook's distance is a measure of how much the residuals of all records would change if a particular record were excluded from the calculation of the model coefficients. A large Cook's distance indicates that excluding a record from changes the coefficients substantially, and should therefore be considered influential.[SPSS]

標準化殘差對槓桿值散點圖:尋找強影響點。This plot helps us to find influential cases.We watch out for outlying values at the upper right corner or at the lower right corner. Those spots are the places where cases can be influential against a regression line. Look for cases outside of a dashed line, Cook’s distance. When cases are outside of the Cook’s distance (meaning they have high Cook’s distance scores), the cases are influential to the regression results. The regression results will be altered if we exclude those cases.

In the Cook's distance vs leverage/(1-leverage) plot, contours of standardized residuals that are equal in magnitude are lines through the origin. The contour lines are labelled with the magnitudes.通過原點的線是標準化殘差等高線。

參考:

A Modern Approach to Regression with R.

Understanding Diagnostic Plots for Linear Regression Analysis:https://data.library.virginia.edu/diagnostic-plots/

How does plot.lm() determine outliers for residual vs fitted plot?:https://stackoverflow.com/questions/39259252/how-does-plot-lm-determine-outliers-for-residual-vs-fitted-plot

除了基礎包,R中有大量的包(比如car包、olsrr包、plotmo包、HH包、gvlma包)都可以實現對線性回歸適用條件的考察。

獨立性的判斷還是以事實經驗為主,沒有理由認為一個嬰兒的出生體重會對其他嬰兒的出生體重有影響,可以認為因變量值(或者殘差)相互獨立。Durbin-Watson檢驗可用於檢測數據的是否具有隨時間變化的自相關(相隔時間越近相關性越大),但該檢驗統計不顯著僅代表沒有自相關關係,並不代表數據就不相關,本例非聚集性數據並不適用。R中的Durbin-Watson檢驗函數有很多:DurbinWatsonTest {DescTools}dwtest {lmtest}test.DW {dcv}durbinWatsonTest {car}score_dw {auditor}reg.dw {YRmisc}reg.dw {PMmisc}……,使用很簡單需要時可參考,比如

library(DescTools)

DurbinWatsonTest(lmfit)

自變量與結局變量間的散點圖、殘差與自變量的散點圖、殘差對擬合值散點圖、偏殘差圖(成分殘差圖)是常用的考察辦法。當解釋變量和結局變量不滿足線性關係時,解釋變量是分類變量應考慮將其設為啞變量,解釋變量是連續變量進行Box-Tidwell變換

各個自變量與結局變量間的散點圖矩陣可以直觀的大體了解各個自變量與響應變量間的關係。在數據初步考察裡面我們用到了各個變量間的散點圖來初步觀察這種關係。相比這種散點圖,殘差與自變量的散點圖效率更高一些,該圖在<<線性回歸中的線性考察>>一文中做過介紹。以繪製殘差與自變量age的散點圖為例:

lmres<-residuals(lmfit) 

plot(lmres~lmdata$age,col="blue")

abline(h=0,lwd=2,col="red") #添水平直線y=0,線寬為2,顏色為綠色。添加水平直線用v,添加垂直直線h。添加殘差與變量的的擬合直線:abline(lm(lmres~lmdata$age),lwd=1, col="blue")

年齡對應的殘差點基本上是平均分布在y=0的直線兩側,無明顯偏負或偏正,年齡與新生兒體重基本呈線性。

我們也可以直接利用現成的函數來繪製,比如residual.plots {HH},但函數residual.plots()結果顯示不友好,可以改用函數residual.plots.lattice {HH}

Residual plots for a linear model. Four sets of plots are produced: (1) response against each of the predictor variables, (2) residuals against each of the predictor variables, (3) partial residuals for each predictor against that predictor ("partial residuals plots", and (4) partial residuals against the residuals of each predictor regressed on the other predictors ("added variable plots").

residual.plots.lattice {HH}

Construct four sets of regression plots. Response variable $Y$ against each $X_j$, residuals $e$ against each $X_j$, partial residuals plots of $e^j$ against each $X_j$, added variable plots of $e^j$ against the residuals of each $X_j$ adjusted for the other $X$ columns. The slopes shown in the panels of both bottom rows are equal to the regression coefficients.

library(HH);library(lattice);library(grid);library(latticeExtra);library(multcomp);library(survival);library(TH.data);library(MASS);library(gridExtra)

residual.plots.lattice(lmfit)

結果中第一行是各個自變量與因變量的關係;第二行是各個自變量與殘差的關係,從各個自變量與殘差的關係看,基本滿足線性關係;第三行是各自變量的偏殘差圖;第四行是添加變量圖(偏回歸圖)。

除了普通殘差圖,偏殘差圖(Partial Residual Plots)是更為專業的線性判斷方法,它可以排除混雜因素的影響,能夠更準確地判定自變量和因變量是否為線性。偏殘差圖也稱成分+殘差圖(Component plus Residual Plots)偏殘差圖就是偏殘差(用除自變量Xi外其他所有自變量校正過的因變量)與預測變量Xi構建的散點圖,詳細介紹可參見<<偏回歸圖與偏殘差圖>>。上述residual.plots.lattice {HH}函數給出的結果中,第三行結果就是各個自變量的偏殘差圖,結果顯示校正了其他變量的影響後,年齡和隨訪次數對新生兒體重的影響不大,孕前體重越重新生兒體重越重,母親吸菸、有早產經歷、患高血壓、有應激性新生兒體重越輕,相比白人,黑人和其他種族的孕婦的新生兒體重更輕一些。當然這些只是圖片上顯示出來的信息,並不能判定有沒有統計學意義。變量較多時residual.plots.lattice {HH}的結果細節顯示不足,可以使用ols_plot_comp_plus_resid{olsrr}crPlots{car}來繪製出成分殘差圖。crPlots{car}結果的成分殘差圖不僅給出了偏殘差圖的散點(Xi,ε+βXi)及其平滑擬合曲線(粉紅色,局部加權回歸散點平滑法(locally weighted scatterplot smoothing,LOWESS或LOESS)),同時給出了Xi與βXi的擬合直線,如果直線與擬合曲線差別較大則表明自變量與因變量之間可能存在非線性關係,則需要添加一些曲線成分如二次項、三次項等;如果擬合直線與曲線接近重合則表明自變量Xi與因變量存在很好的線性關係,但非水平直線才表明對影響變量有影響(水平線表示該自變量係數為0)。library(car);library(carData)crPlots(lmfit)

結果顯示年齡、隨訪次數與新生兒體重偏殘差擬合線與平滑擬合線重合性還可以,在年齡中可能存在一個異常點需要注意,但直線擬合線基本呈水平表明其對新生兒體重影響不大。孕前體重與新生兒體重的線性假設是合適的,而且對新生兒體重也有影響。

ols_plot_comp_plus_resid(lmfit)

我們僅展示age、lwt及race的結果。由於種族是3個水平被設置為因子後結果以2個虛擬變量來展示。各變量線性關係良好,但age對bwt影響不大,孕前體重與新生兒體重呈正相關,與白人相比,黑人和其他種族孕母的新生兒體重更輕一些。

olsrr包功能強大,Tools for Building OLS Regression Models.Tools designed to make it easier for users, particularly beginner/intermediate R users to build ordinary least squares regression models. Includes comprehensive regression output, heteroskedasticity tests, collinearity diagnostics, residual diagnostics, measures of influence, model fit assessment and variable selection procedures.

https://cran.r-project.org/web/packages/olsrr/

(3)正態性

線性回歸模型的正態性指的並不是指因變量呈正態分布,而是要求模型的殘差服從正態分布,詳細可參見<<線性回歸中的正態分布>>。你可以可對模型殘差進行統計學檢驗,也可以採用相關的專業圖進行判定。如果數據不滿足正態分布,可以考慮進行數據變換,比如Box-Cox變換,或者換用其他的統計學方法

第一類方法是先生成模型的殘差,然後對殘差進行正態分布的檢驗。比較常見的方法是Shapiro-Wilk W檢驗和Kolmogorov-Smirnov檢驗,這些我們在<<R筆記:正態分布的檢驗>>一文中都有介紹,以Shapiro-Wilk W檢驗為例,

shapiro.test(lmres)

結果如下,表明殘差滿足正態分布(P=0.612>0.05)。

Shapiro-Wilk normality test

data:  lmres

W = 0.99378, p-value = 0.612

除了直接對殘差進行檢驗,我們還可以進行圖示法,比如在前面plot函數結果中有模型殘差的Q-Q圖,

qqnorm(lmres)

結果就是Q-Q圖我們就不單獨展示了。我們還可以使用專用函數,比如qqPlot{car}:

library(car);library(carData)  

qqPlot(lmfit)  #Quantile-Comparison Plot.these functions return the labels of identified points, unless a grouping factor is employed, in which case NULL is returned invisibly.這是對函數返回值的解釋,我其實沒怎麼看懂,但結合前面的圖示返回值應該是兩個異常點。

[1] 130 132

所有的點都在Q-Q線95%CI內(如在95%CI的之外的點可初步判定為離群點),表明滿足殘差滿足正態分布的要求。但130和132可能是異常點。

(4)方差齊性

線性回歸中的等方差指因變量殘差不隨所有自變量取值水平的變化而變化,在自變量與殘差或預測值與殘差的散點圖上,標準化殘差隨機、均勻的散布在0橫線上下兩側,即不論自變量或因變量預測值如何變化,標準化殘差的波動基本保持穩定,可認為方差基本相等。同正態性檢驗一樣,方差齊性檢驗除了圖示法,也可以進行統計檢驗。這些我們在<<線性回歸中的方差齊性探察>>一文中都有介紹。如果殘差不滿足方差齊同的要求,因變量變換、加權最小二乘法、穩健回歸是常用的處理方法

圖示法我們在前面用plot()繪製模型診斷圖時已有過說明,此處演示plotres{plotmo}繪製Sqrt abs residuals vs fitted圖,結果同前,不再贅述。該函數同樣可以輸出殘差的其他診斷圖,比如Q-Q圖,殘差對預測值等。library(plotmo);library(Formula);library(plotrix);library(TeachingDemos)

plotres(lmfit,which=c(1,3,4,6),col="blue")  #Which plots do draw. Default is 1:4. 1:Model plot. What gets plotted here depends on the model class. For example, for earth models this is a model selection plot. Nothing will be displayed for some models. For details, please see the plotres vignette; 2:Cumulative distribution of abs residuals; 3:Residuals vs fitted; 4:QQ plot; 5:Abs residuals vs fitted; 6:Sqrt abs residuals vs fitted; 7:Abs residuals vs log fitted; 8:Cube root of the squared residuals vs log fitted; 9:Log abs residuals vs log fitted.

R中很多函數都可以實現線性回歸的方差齊性檢驗:bptest{lmtest}ncvTest{car}spreadLevelPlot{car}。統計檢驗法我們以bptest()ncvTest()為例,兩種方法的檢測結果均顯示殘差滿足方差等同(P均>0.05)。

library(lmtest);library(zoo)

bptest(lmfit)  

studentized Breusch-Pagan test

data:  lmfit

BP = 12.718, df = 9, p-value = 0.1758

library(car);library(carData) 

ncvTest(lmfit)  

Non-constant Variance Score Test

Variance formula: ~ fitted.values

Chisquare = 0.0005196456, Df = 1, p = 0.98181

olsrr 包也提供了4種異方差檢驗Bartlett Test、Breusch Pagan Test、Score Test、F Test,感興趣可以自己去練習一下。最後介紹一個集線性(Linearity)、同方差性(Homoscedasticity)、不相關(即獨立,Uncorrelatedness)、正態性(Normality)的檢驗為一體的綜合假設檢驗(Global Validation of Linear Models Assumptions):gvlma{gvlma},該函數還單獨給出了偏度、峰度和異方差檢驗結果。

gvlma(lmfit)  

結果顯示前提條件並沒有完全滿足,比如異方差檢驗未通過。這與前面單獨檢測結果有差異。

下次R筆記預告:模型評估與診斷,如模型擬合優度、多重共線、強影響點、離群值、槓桿值等R分析方法。

相關焦點

  • SPSS-線性相關與多重線性回歸
    對服從正態分布的定量資料,我們探討線性相關,對計數和等級資料,我們探討秩相關,今天的內容,便是定量資料的相關與回歸。1 簡單線性相關與回歸:例:探討身高與前臂長的相關性① 繪製散點圖(直觀的反應兩者關係):② 求相關係數(兩變量相關關係的方向及密切程度):
  • R相關與回歸學習筆記(三十五)——樣條函數變換、線性可加模型(一)
    (一)——相關分析R相關與回歸學習筆記(二)——相關與因果、相關係數大小、相關係數的檢驗R相關與回歸學習筆記(三)——相關陣、一元回歸分析R相關與回歸學習筆記(五)——回歸有效性R相關與回歸學習筆記(六)——R程序R相關與回歸學習筆記(七)——回歸診斷(一)R相關與回歸學習筆記(七)——回歸診斷(二)
  • python多重線性回歸分析
    一個簡單的線性回歸模型測試。定義:線性回歸是利用數理統計中回歸分析,來確定兩種或兩種以上變量間相互依賴的定量關係的一種統計分析方法,運用十分廣泛。表達形式為y =aX+b,b為誤差服從均值為0的正態分布,a為截距。
  • 簡單線性回歸(二)
    線性回歸相關知識:簡單線性回歸(一)線性回歸步驟線性回歸需滿足的條件①因變量Y與自變量X呈線性關係②每個個體觀察值之間互相獨立③在一定範圍內,任意給定X值,其對應的隨機變量Y均服從正態分布④在一定範圍內,不同X值所對應的隨機變量Y的方差相等某研究者測量了16名成年男子的體重(Kg)和臀圍(cm)數據,欲探求成年男子的體重與臀圍是否可以建立線性回歸模型。
  • 如何用線性回歸模型做數據分析?
    編輯導語:在日常工作中,很多時候都會用到數據分析的方法,線性回歸模型看起來非常簡單,但實際上它的十分重要;本文作者分享了關於如何用線性回歸模型做數據分析的方法,我們一起來學習一下。
  • 線性回歸中+t值的含義_線性回歸 y截距p值的計算 - CSDN
    線性回歸模型的基本特性就是:模型是參數的線性函數。最簡單的線性回歸模型當然是模型是參數的線性函數的同時,也是輸入變量的線性函數,或者叫做線性組合。一般線性回歸對於一個一般的線性模型而言,其目標就是要建立輸入變量和輸出變量之間的回歸模型。該模型是既是參數的線性組合,同時也是輸入變量的線性組合。
  • 線性回歸分析思路總結!簡單易懂又全面!
    當自變量為1個時,是一元線性回歸,又稱作簡單線性回歸;自變量為2個及以上時,稱為多元線性回歸。在SPSSAU裡均是使用【通用方法】裡的【線性回歸】實現分析的。回歸模型有很多限制條件,上述步驟裡我們只是構建了模型,至於模型質量如何,模型是否滿足線性回歸的前提條件,都需要在這一步進行確認。
  • 正態分布 線性回歸 - CSDN
    採用最小二乘法進行線性回歸時,需要滿足特定的條件:正態性:一定範圍內,給定任意x值,對應的y均服從正態分布獨立:即誤差項間不存在相關,一般時間序列數據會存在自相關線性:因變量和自變量有線性關係同方差性:即模型誤差項的方差相等。
  • 回歸系列(四)|一個完整的線性回歸是怎樣做的
    作者:丁點helper 來源:丁點幫你前面的文章主要介紹了回歸的一些關鍵詞,比如回歸係數、樣本和總體回歸方程、預測值和殘差等,今天我們結合一個案例來看看如何做完整的回歸分析,準確而言,是多重線性回歸(Multiple Linear Regreesion)。
  • 簡單線性回歸(一)
    回歸分析(regression analysis )是研究一個變量如何隨另一些變量變化的方法。例如,學習成績會受努力的時間,方法,個人的智慧,教育資源等因素影響;疾病的發生與生活環境,方式,遺傳因素,自身體質等影響。常見的回歸分析有 線性回歸、非線性回歸、多重線性回歸、Logistic回歸等等。
  • 回歸系列(五)|線性回歸分析做完後,還應考慮什麼?
    作者:丁點helper 來源:丁點幫你上一篇文章介紹了一般線性回歸的典型操作,並且留了一個思考題。感謝小夥伴的參與,大家很厲害,沒有被迷惑到,線性回歸獲得的係數代表的是相關關係,而非因果關聯。回歸是相關不是因果多重線性回歸,一般是指有多個自變量X,只有一個因變量Y。
  • 線性相關
    當然,有關聯並不代表就一定是線性相關,也可能是曲線、性線性相關等。本節主要討論線性相關,因為線性相關較其他相關簡單,也是多重線性回歸的基礎。           線性相關                兩隨機變量X、Y之間呈線性趨勢的關係。一般地,若兩變量X、Y 同時增大或減少,稱為正相關;若兩變量X、Y 呈反向變化,稱為負相關。
  • CFA二級:線性回歸假設的違反,識別與處理「量化方法分析」
    CFA二級量化方法重點分析:線性回歸假設的違反,識別與處理   高頓財經CFA講師  Quine老師   線性回歸分析的有效性依賴於若干假設,這些假設包括:
  • 線性回歸分析詳解10(完結篇):線性回歸分析預測的十大步驟
    許栩原創專欄《從入門到高手:線性回歸分析詳解》第10章,這是本專欄的最後一章,是專欄的完結篇:用線性回歸分析做預測,多元線性回歸分析預測的十大步驟。線性回歸分析專格欄總目錄請見上圖,前9章,我分別講述了回歸分析及與回分析相關的概念,一元、多元線性回歸分析的公式與計算方法,以及多重共線性、回歸方程的精度、顯著性驗證和置信區間等進行回歸分析的重要步驟及其計算方法。至此,以回歸分析進行需求預測的各項知識點及各項準備工作全部完成,我們可以正式的以回歸分析進行需求預測。
  • 線性回歸的統計假設 - CSDN
    在用多元線性回歸模型進行統計推斷之前,我們需要知道該模型的基礎假設。假設我們有n個因變量Y及自變量X1,X2,...,Xk的值,我們想推斷多元回歸方程Yi= b0 + b1X1i + b2X2i + ... + bkXki +εi。
  • 統計計量 | 用R做多元線性回歸分析(文末有福利)
    回顧一下計量課上,多元線性回歸模型的基本假定有哪些?假設1:解釋變量是非隨機的或固定的,且各X之間互不相關(無多重共線性);假設2:隨機誤差項具有零均值、同方差及不序列相關;假設3:解釋變量與隨機項不相關;假設4:隨機項滿足正態分布;假設5:樣本容量趨於無窮時,各解釋變量的方差趨於有界常數;假設6:回歸模型的設定是正確的。
  • 一元線性回歸顯著性檢驗專題及常見問題 - CSDN
    二、回歸方程的顯著性檢驗  目的:檢驗   缺點:接近於1的程度與數據組數 n 有關(n 較小時,相關係數的波動較大,|r| 接近於1,n 較大時,|r|易偏小,n 較小時,不能僅憑 r 判定 x 與 y 之間有密切的線性關係)  另外補充一點,Pearson相關係數的適用範圍:  ① 兩個變量之間是線性關係
  • r語言多元線性回歸相關性_多元線性回歸調整相關性 - CSDN
    多元線性回歸多元線性回歸的核心問題:應該選擇哪些變量???RSS(殘差平方和)與R2  (相關係數的平方)選擇法:遍歷所有可能的組合,選出使RSS最小,R2  最大的模型。
  • 多元線性逐步回歸分析
    一、方法簡述多元逐步回歸有3種篩選自變量的方法:(1)向前法:這種算法SPSS會建立由一個自變量開始,每次引入一個偏回歸平方和最大且具有統計學意義的自變量,由少到多,直到無具有統計學意義的因素可以代入方程為止,此法也可能納入部分無意義變量;(2)向後法:這種算法SPSS會先建立一個全因素的回歸方程,再逐步剔除一個偏回歸平方和最小且無統計學意義的自變量
  • 深入研究線性回歸
    當我說到「線性回歸」時,大多數人開始想到的是最小二乘法(OLS)。如果你不熟悉這個術語,下面的方程可能會有幫助:學過最小二乘法嗎?如果學過,那麼你就走在正確的道路上了。但是線性回歸不僅僅是最小二乘法。首先,讓我們更仔細地看看最小二乘法。