UA MATH571A 检验异方差的非参数回归方法
UA MATH571A 檢驗異方差的非參數回歸方法
- LOESS(locally estimated scatterplot smoothing)
- LOWESS(Robust Locally Weighted Regression and Smoothing Scatterplots)
QE Methodology2015年5月第四題有點意思,這道題介紹了一種可能的用非參數回歸方法檢驗線性模型是否有異方差問題的方法:在用線性模型擬合了數據之后,我們可以用loess模型對殘差的絕對值關于擬合值的散點圖做一個非參數回歸,如果非參數回歸曲線不平,就說明有異方差;如果非參數回歸曲線比較平,就說明是沒有異方差。
LOESS(locally estimated scatterplot smoothing)
一個數值例子是研究棒球選手職業生涯平均命中率(career batting average)與選手從業年數的關系。數據包含332名職業棒球運動員,職業生涯平均命中率(Y)與從業年數(X)的散點圖如下
baseball.df = read.csv( file.choose() ) Y = na.omit(baseball.df$batting.average) X = na.omit(baseball.df$years) plot( Y ~ X, pch=19 )
從這個散點圖我們可以看出以下信息:
假設我們試圖用一元線性回歸對這個數據集建模,為了檢驗是否有異方差,可以畫出殘差的絕對值關于職業生涯平均命中率擬合值的散點圖,用loess模型做非參數回歸,并把非參數回歸曲線貼在散點圖上。loess模型的思想是選取某個點的一個鄰域,給鄰域內的點按到這個點的歐氏距離賦權做一次或者二次WLS,選擇領域的方式是選擇離這個點歐氏距離最近的n×qn \times qn×q個點,nnn是總點數。也就是說loess模型是有兩個超參的,決定鄰域大小的qqq以及用一次回歸還是二次回歸做WLS。下面我們分別嘗試一下用q=0.33q=0.33q=0.33、二次的loess以及q=0.75q=0.75q=0.75、二次的loess:
q=0.33q=0.33q=0.33
baseball.lo = loess( absresid~Yhat, span = 0.33, degree = 2,family='symmetric' ) Ysmooth = predict( baseball.lo,data.frame(Yhat = seq(min(Yhat),max(Yhat),.001)) ) plot( absresid~Yhat, xlim=c(.25,.29), ylim=c(0,.11) ) par( new=TRUE ) plot( Ysmooth~seq(min(Yhat),max(Yhat),.001), type='l', lwd=2,xaxt='n', yaxt='n' , xlab='', ylab='', xlim=c(.25,.29), ylim=c(0,.11))
q=0.75q=0.75q=0.75
比較這兩個結果,我們有下面的發現:
LOWESS(Robust Locally Weighted Regression and Smoothing Scatterplots)
為了改進loess的robustness,Purdue的Cleveland教授在1979年提出了LOWESS方法,下面我們用lowess方法試一試。
q=0.75q=0.75q=0.75
baseball.lowe = lowess( Yhat, absresid, f = 0.75, iter = 3, delta = 0.01 * diff(range(Yhat))) plot( absresid~Yhat, xlim=c(.25,.29), ylim=c(0,.11) ) par( new=TRUE ) plot( baseball.lowe$y~baseball.lowe$x, type='l', lwd=2,xaxt='n', yaxt='n' , xlab='', ylab='', xlim=c(.25,.29), ylim=c(0,.11))q=0.33q=0.33q=0.33
baseball.lowe = lowess( Yhat, absresid, f = 0.33, iter = 3, delta = 0.01 * diff(range(Yhat))) plot( absresid~Yhat, xlim=c(.25,.29), ylim=c(0,.11) ) par( new=TRUE ) plot( baseball.lowe$y~baseball.lowe$x, type='l', lwd=2,xaxt='n', yaxt='n' , xlab='', ylab='', xlim=c(.25,.29), ylim=c(0,.11))
基于LOWESS方法,明顯殘差絕對值與擬合值的非參數回歸曲線關于超參就穩定多了,當smoothing的鄰域變化時,非參數回歸曲線變化不明顯。并且可以看出曲線基本是平坦的,所以從圖形上可以認定沒有異方差。
還可以考慮用標準差的置信區間來看看異方差的顯著性,一個比較簡單但不怎么精確的方法是畫出殘差的絕對值對常數的回歸系數的置信區間,比較非參數回歸曲線是否落在置信區間內:
cc.lm <- lm(absresid~1) > confint(cc.lm,level = 0.99)0.5 % 99.5 % (Intercept) 0.01630165 0.02081424baseball.lowe = lowess( Yhat, absresid, f = 0.75, iter = 3, delta = 0.01 * diff(range(Yhat))) plot( absresid~Yhat, xlim=c(.25,.29), ylim=c(0,.11) ) par( new=TRUE ) plot( baseball.lowe$y~baseball.lowe$x, type='l', lwd=2,xaxt='n', yaxt='n' , xlab='', ylab='', xlim=c(.25,.29), ylim=c(0,.11),col = "red") abline(h=0.01630165) abline(h=0.02081424)
這種方法最大的問題在于如果非參數回歸曲線落在置信區間內,那么可以認為是顯著的;但非參數回歸曲線稍微偏離了這個置信區間,我們卻不能斷定它是不顯著的。
總結
以上是生活随笔為你收集整理的UA MATH571A 检验异方差的非参数回归方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UA MATH566 统计理论 QE练习
- 下一篇: UA MATH564 概率论 公式与定理