L1 Linear Regression
Solve the linear system A x = b
in an Lp sense, that is minimize the
term sum |b - A x|^p
. The case p=1
is also called
“least absolute deviation” (LAD) regression.
L1linreg(A, b, p = 1, tol = 1e-07, maxiter = 200)
A |
matrix of independent variables. |
b |
independent variables. |
p |
the p in L^p norm, |
tol |
relative tolerance. |
maxiter |
maximum number of iterations. |
L1/Lp regression is here solved applying the “iteratively reweighted least square” (IRLS) method in which each step involves a weighted least squares problem.
If an intercept term is required, add a unit column to A
.
Returns a list with components x
the linear coefficients describing
the solution, reltol
the relative tolerance reached, and niter
the number of iterations.
In this case of p=1
, the problem would be better approached by use
of linear programming methods.
Dasgupta, M., and S.K. Mishra (2004). Least absolute deviation estimation of linear econometric models: A literature review. MPRA Paper No. 1781.
m <- 101; n <- 10 # no. of data points, degree of polynomial x <- seq(-1, 1, len=m) y <- runge(x) # Runge's function A <- outer(x, n:0, '^') # Vandermonde matrix b <- y ( sol <- L1linreg(A, b) ) # $x # [1] -21.93242 0.00000 62.91092 0.00000 -67.84854 0.00000 # [7] 34.14400 0.00000 -8.11899 0.00000 0.84533 # # $reltol # [1] 6.712355e-10 # # $niter # [1] 81 # minimum value of polynomial L1 regression sum(abs(polyval(sol$x, x) - y)) # [1] 3.061811
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.