bp.robust.Huber(s, lambda, cutpoint, ..., analysis.name="nd.dwt", x="mof", max.iter=20, opt.tol=0.01, fea.tol=0.01, cg.tol=0.01, cg.max.iter=length(s), verbose=T)
bp.robust.L1
solves basis pursuit for the L1 loss function (cutpoint=0) and
bp.by.ip
or
bp.by.bcr
solve basis pursuit for the L2 loss function (cutpoint=Inf)
wavelet
or
n.levels
used by
analysis
.
dwt
,
nd.dwt
or
wp.table
,
cp.table
and their 2-D versions.
analysis
or a character string: "mof"
(method of frame estimate) is available. Initial guess of the wavelet
coefficients for the iterative interior point algorithm.
Sardy, S. (1988). Regularization Techniques for Linear Regression with
a Large Set of Carriers. Ph.D. Thesis. Department of Statistics. University of
Washington, Seattle.
Chen S., Donoho, D.L., and Saunders, M. (1996). Atomic decomposition by basis
pursuit. Technical report, Department of Statistics, Stanford University.
Huber, P.J. (1981). Robust Statistics. New York: Wiley.
# please be patient - convergence might take several minutes par(mfrow=c(2,2)) snr <- 7 n <- 512 lambda <- 2.048 s.true <- as.vector(make.signal("heavisine", n)) s.true <- s.true*snr/sqrt(var(s.true)) noise <- rnorm(n) where <- sample(c(1:n), 0.1*n) noise[where] <- rnorm(length(where), sd=4) s <- s.true + noise plot(s.true, ylim=range(s), type="l") title("Underlying signal") plot(s, ylim=range(s)) title("Contaminated data") robust.est <- bp.robust.Huber(s, lambda=lambda, cutpoint=2, n.levels=6, wavelet="s8", analysis.name="nd.dwt", x="mof", max.iter=20, opt.tol=0.05, fea.tol=0.05, cg.tol=0.01, cg.max.iter=length(s), verbose=T) plot(robust.est$s.hat, ylim=range(s), type="l") title("Robust basis pursuit estimation") L2.est <- bp.by.ip(s, lambda=lambda, n.levels=6, wavelet="s8", analysis.name="nd.dwt", x="mof", max.iter=20, opt.tol=0.05, fea.tol=0.05, cg.tol=0.01, cg.max.iter=length(s), verbose=T) plot(L2.est$s.hat, ylim=range(s), type="l") title("Non-robust basis pursuit estimation")