Robust Fitting of Linear Models

This uses the rlm function from the MASS library. The function allows one to fit a linear model by robust regression using an M estimator, allowing robust inference for parameters and robust model selection. The robust fit is minimally influenced by outliers in the response variable, in the explanatory variable(s) or in both.

robreg<-read.table("c:\\temp\\robreg.txt",header=T)
attach(robreg)
names(robreg)

[1] "amount" "rate"

plot(amount,rate,pch=16)
abline(lm(rate~amount))
summary(lm(rate~amount))

Coefficients:
             Estimate Std. Error t value   Pr(>|t|)
(Intercept)   12.1064     1.4439   8.385   1.52e-05  ***
     amount   -1.0634     0.2552  -4.166    0.00243   **

Residual standard error: 2.851 on 9 degrees of freedom
Multiple R-Squared: 0.6585, Adjusted R-squared: 0.6206
F-statistic: 17.36 on 1 and 9 DF, p-value: 0.002425

We can leave out the maximum and minimum values of the response or explanatory variables separately or together using subset to test for influence:

summary(lm(rate~amount,subset=(rate<max(rate))))

images

Coefficients:

              Estimate   Std. Error   t value   Pr(>|t|)
(Intercept)    10.8163       1.0682    10.126   7.73e-06 ***
amount         -0.9201       0.1811    -5.081   0.000952 ***

Residual standard error: 1.964 on 8 degrees of freedom
Multiple R-Squared: 0.7634, Adjusted R-squared: 0.7339
F-statistic: 25.82 on 1 and 8 DF, p-value: 0.000952

The intercept is lower by more than 1.0 and the slope is shallower ...

Get The R Book now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.