SURE_MSEthresh {gasper} | R Documentation |
Stein's Unbiased Risk Estimate with MSE
Description
Adaptive Threshold Selection Using Principle of SURE with the inclusion of Mean Squared Error (MSE) for comparison.
Usage
SURE_MSEthresh(
wcn,
wcf,
thresh,
diagWWt,
beta = 2,
sigma,
hatsigma = NA,
policy = "uniform",
keepwc = TRUE
)
Arguments
wcn |
Numeric vector of the noisy spectral graph wavelet coefficients. |
wcf |
Numeric vector of the true spectral graph wavelet coefficients. |
thresh |
Numeric vector of threshold values. |
diagWWt |
Numeric vector of weights typically derived from the diagonal elements of the wavelet frame matrix. |
beta |
A numeric value specifying the type of thresholding to be used, for example:
|
sigma |
A numeric value representing the standard deviation (sd) of the noise. |
hatsigma |
An optional numeric value providing an estimate of the noise standard deviation (default is NA). |
policy |
A character string determining the thresholding policy. Valid options include:
|
keepwc |
A logical value determining if the thresholded wavelet coefficients should be returned (Default is TRUE). |
Details
SURE_MSEthresh
function extends the SUREthresh
function by providing an MSE between the true coefficients and their thresholded versions for a given thresholding function h
. This allows for a more comprehensive evaluation of the denoising quality in simulated scenarios where the true function is known.
Value
A list containing:
A dataframe with calculated MSE, SURE, and hatSURE values.
Minima of SURE, hatSURE, and MSE, and their corresponding optimal thresholds.
Thresholded wavelet coefficients (if
keepwc = TRUE
).
References
Donoho, D. L., & Johnstone, I. M. (1995). Adapting to unknown smoothness via wavelet shrinkage. Journal of the american statistical association, 90(432), 1200-1224.
de Loynes, B., Navarro, F., Olivier, B. (2021). Data-driven thresholding in denoising with Spectral Graph Wavelet Transform. Journal of Computational and Applied Mathematics, Vol. 389.
Stein, C. M. (1981). Estimation of the mean of a multivariate normal distribution. The annals of Statistics, 1135-1151.
See Also
Examples
## Not run:
# Compute the Laplacian matrix and its eigen-decomposition
L <- laplacian_mat(grid1$sA)
U <- eigensort(L)
# Compute the tight frame coefficients
tf <- tight_frame(U$evalues, U$evectors)
# Generate some noisy observation
n <- nrow(L)
f <- randsignal(0.01, 3, grid1$sA)
sigma <- 0.01
noise <- rnorm(n, sd = sigma)
tilde_f <- f + noise
# Compute the transform coefficients
wcn <- analysis(tilde_f, tf)
wcf <- analysis(f, tf)
# Compute the weights and use DJ trick for the SURE evaluation
diagWWt <- colSums(t(tf)^2)
thresh <- sort(abs(wcn))
# Compute to optimal threshold
opt_thresh_u <- SURE_MSEthresh(wcn,
wcf,
thresh,
diagWWt,
beta=2,
sigma,
NA,
policy = "uniform",
keepwc = TRUE)
# Extract corresponding wavelet coefficients
wc_oracle_u <- opt_thresh_u$wc[, opt_thresh_u$min["xminMSE"]]
wc_SURE_u <- opt_thresh_u$wc[, opt_thresh_u$min["xminSURE"]]
# Get the graph signal estimators
hatf_oracle_u <- synthesis(wc_oracle_u, tf)
hatf_SURE_u <- synthesis(wc_SURE_u, tf)
# Compare the perfomance according to SNR measure
round(SNR(f, hatf_oracle_u), 2)
round(SNR(f, hatf_SURE_u), 2)
## End(Not run)