五种方法:Andrew、hampel、huber、LAD、tukey。
#Andrew Function
#load the necessary libraries
library(MASS)
#generate simulated values
set.seed(123)
x <- rnorm(100)
y <- 2*x + rnorm(100)
#perform robust regression
Andrew <- function(r, k = 1.339, deriv = 0)
{
U <- k/abs(r)
if (!deriv)
return(ifelse(U >= 1, abs(U*sin(pi*r/k)), 0))
}
fit <- rlm(y ~ x,psi=Andrew)
#Generate a graph of the regression results
y2 <- fit$coefficients[1]+fit$coefficients[2]*x
data <- data.frame(x,y,y2)
plot(x, y, main = "Andrew Robust Regression",
xlab = "x", ylab = "y", col = "blue")
abline(fit$coefficients, col = "red")
#hampel Function
#load the necessary libraries
library(MASS)
#generate simulated values
set.seed(123)
x <- rnorm(100)
y <- 2*x + rnorm(100)
#perform robust regression
fit <- rlm(y ~ x,psi