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")