rlm:Robust regression by iterated reweighted least squares(IRLS)

2021-02-20 Listenlii




最小二乘法(OLS)是很常用的線性回歸。

本文介紹的IRLS是其變化版。

對數據中異常值的處理會有很大提升。

簡單搜了一下,網上對該方法還沒有中文的說明,也可能是我沒有找到。



幾個基本概念:

Residual:殘差,預測值(基於回歸方程)與實際觀測值之間的差值。
Outlier:
在線性回歸中,離群值是具有較大殘差的觀測值。
Leverage:
在預測變量上具有極值的觀測值是具有高槓桿的點。槓桿是衡量一個自變量偏離其均值的程度。高槓桿點對回歸係數的估計有很大的影響。
Influence:
如果移除觀測結果會使回歸係數的估計發生很大的變化,那麼該觀測結果就是有影響的。影響力可以被認為是槓桿和離群值的產物。
Cook’s distance:
測量槓桿信息和殘差的方法。


關於IRLS:
rlm屬於穩健回歸(Robust regression)的一個方法。
穩健回歸可以用在任何使用最小二乘回歸的情況下。在擬合最小二乘回歸時,我們可能會發現一些異常值或高槓桿數據點。已經確定這些數據點不是數據輸入錯誤,也不是來自另一個群落。所以我們沒有令人信服的理由將它們排除在分析之外。
穩健回歸可能是一種好的策略,它是在將這些點完全從分析中排除;和包括所有數據點;以及在OLS回歸中平等對待所有數據點之間的妥協。他可以個給每個樣本一個權重,離群值權重低一些,正常值權重高一些,進行校正。
rlm可在MASS包實現。

1#搞一個數據
2cdata <- read.dta("https://stats.idre.ucla.edu/stat/data/crime.dta")
3
4#先用OLS試試
5ols <- lm(crime ~ poverty + single, data = cdata)
6opar <- par(mfrow = c(2,2), oma = c(0, 0, 1.1, 0))
7plot(ols, las = 1)

1#從殘差結果可知,9, 25, 51 是異常值。
2#然後計算Cook’s distance.一般將高於4/n的值為異常高的值。
3d1 <- cooks.distance(ols)
4r <- stdres(ols)
5a <- cbind(cdata, d1, r)
6a[d1 > 4/51, ]
7
8   sid state crime murder pctmetro pctwhite pcths poverty single        d1         r
91    1    ak   761    9.0     41.8     75.2  86.6     9.1   14.3 0.1254750 -1.397418
109    9    fl  1206    8.9     93.0     83.5  74.4    17.8   10.6 0.1425891  2.902663
1125  25    ms   434   13.5     30.7     63.3  64.3    24.7   14.7 0.6138721 -3.562990
1251  51    dc  2922   78.5    100.0     31.8  73.1    26.4   22.1 2.6362519  2.616447
13
14#可以看到4個樣本的cook值很高,高於我們設的閾值。
15
16#接下來用rlm試試~
17#默認的權重算法為Huber方法~ 
18rr.huber <- rlm(crime ~ poverty + single, data = cdata)
19#將權重和殘差排個序輸出
20hweights <- data.frame(state = cdata$state, resid = rr.huber$resid, weight = rr.huber$w)
21hweights2 <- hweights[order(rr.huber$w), ]
22hweights2[1:15, ]
23
24   state      resid    weight
2525    ms -846.08536 0.2889618
269     fl  679.94327 0.3595480
2746    vt -410.48310 0.5955740
2851    dc  376.34468 0.6494131
2926    mt -356.13760 0.6864625
3021    me -337.09622 0.7252263
3131    nj  331.11603 0.7383578
3214    il  319.10036 0.7661169
331     ak -313.15532 0.7807432
3420    md  307.19142 0.7958154
3519    ma  291.20817 0.8395172
3618    la -266.95752 0.9159411
372     al  105.40319 1.0000000
38
39#明顯的看到,殘差越高的樣本權重越低。
40
41#然後再換一種權重算法bisquare 
42rr.bisquare <- rlm(crime ~ poverty + single, data=cdata, psi = psi.bisquare)
43biweights <- data.frame(state = cdata$state, resid = rr.bisquare$resid, weight = rr.bisquare$w)
44biweights2 <- biweights[order(rr.bisquare$w), ]
45biweights2[1:15, ]
46
47   state     resid      weight
4825    ms -905.5931 0.007652565
499     fl  668.3844 0.252870542
5046    vt -402.8031 0.671495418
5126    mt -360.8997 0.731136908
5231    nj  345.9780 0.751347695
5318    la -332.6527 0.768938330
5421    me -328.6143 0.774103322
551     ak -325.8519 0.777662383
5614    il  313.1466 0.793658594
5720    md  308.7737 0.799065530
5819    ma  297.6068 0.812596833
5951    dc  260.6489 0.854441716
6050    wy -234.1952 0.881660897
615     ca  201.4407 0.911713981
6210    ga -186.5799 0.924033113
63
64#這個權重和上面的方法差別就很大了



綜上,rlm是比OLS更好的方法。

但是巨大的差異表明模型參數受到異常值的高度影響。
不同的權重算法各有優點和缺點。Huber可能會難以處理嚴重的異常值,而bisquare可能會難以收斂或產生多個解決方案。

Reference:
https://stats.idre.ucla.edu/r/dae/robust-regression/


相關焦點

  • 一圖一話87:回歸-Regression,到底是什麼
    論文的全名叫:Regression towards Mediocrity in Hereditary Stature(連結:http://galton.org/essays/1880-1889/galton-1886-jaigi-regression-stature.pdf).
  • 地理加權回歸模型(GWR, Geographically Weighted Regression)
    mypalette.6<- brewer.pal(6, "Spectral")spplot(gwr.res$SDF,"LowEduc", key.space = "right",       col.regions = mypalette.6, at = c(-8,-6, -4, -2, 0, 2, 4),        main = "Basic GW regressioncoefficient
  • Attractor of Iterated Function System
    ContractionCauchy Sequences and Completeness of Metric SpaceBanach's Fixed Point TheoremIn this short note we shall show the existence and uniqueness of attractor of an IFS (iterated
  • 英語詞彙辨析:at(the)least,not(in)the least
    at(the)least,not(in)the least   這一對短語的涵義有很大的差異。   At least的意思是「至少」(指數量或程度上)也可解作「反正就是…」。它與 at the least,at the very least同義,可互換使用,但後兩者有強調意味,遠不及前者用得普遍。
  • robust什麼意思
    robust什麼意思robust而人類或者動物如果是robust,那用四川話可以說,他們巴適得很。這裡的巴適和bus發音有點相似,也可以聯繫起來記憶~ robust形容人或動物,就是結實、強壯,用來形容物品或者系統,則是堅固耐用、不可能損壞、崩潰。
  • 辨析英語近似詞彙:at(the)least和not(in)the least
    at(the)least,not(in)the least   這一對短語的涵義有很大的差異。   At least的意思是「至少」(指數量或程度上)也可解作「反正就是…」。它與 at the least,at the very least同義,可互換使用,但後兩者有強調意味,遠不及前者用得普遍。
  • 用R進行Lasso regression回歸分析
    glmnet是由史丹福大學的統計學家們開發的一款R包,用於在傳統的廣義線性回歸模型的基礎上添加正則項,以有效解決過擬合的問題,支持線性回歸,邏輯回歸,泊松回歸,cox回歸等多種回歸模型,連結如下https://cran.r-project.org/web/packages/glmnet/index.html對於正則化,提供了以下3種正則化的方式ridge regression
  • 英語詞彙進階:healthy, energetic, vigorous, robust, sturdy
    01基礎詞彙healthy健康的,健壯的有益於健康的He looks robustrobust 強健的,強壯的,富有活力的結實的,耐用的,堅固的He was not physically robust and his main recreation was playing bridge.他身體不好,主要的娛樂活動是玩橋牌和室內遊戲。