
wnet(y, xfuncs, covt = NULL, min.scale = 0, nfeatures = NULL, alpha = 1, lambda = NULL, standardize = FALSE, pen.covt = FALSE, filter.number = 10, wavelet.family = "DaubLeAsymm", family = "gaussian", nfold = 5, nsplit = 1, store.cv = FALSE, store.glmnet = FALSE, seed = NULL, ...)
y
and $d$ is the number of sites at which each signal is observed. For 2D predictors, an $n \times d \times d$ array comprising $n$ images of dimension $d \times d$. For 3D predictors, an $n \times d \times d \times d$ array comprising $n$ images of dimension $d \times d \times d$. Note that $d$ must be a power of 2.
y
: either a scalar, or a vector of values to be compared.
glmnet
: either a scalar, or a vector of values to be compared. alpha=1
gives the lasso penalty, while alpha=0
yields the ridge penalty.
glmnet
automatically generates a sequence of candidate values.
glmnet
: should the predictor variables be standardized? Defaults to FALSE
, but either way, the coefficients are returned on the original scale.
FALSE
(the default), penalization is suppressed by setting the appropriate components of penalty.factor
to 0 in the call to glmnet
.
"gaussian"
(the default) and "binomial"
.
nfold
validation sets; CV is computed by averaging over these splits.
glmnet
? seed = NULL
, a random seed is used.
glmnet
.
"wnet"
, which is a list with the following components:
store.glmnet = TRUE
, the object returned by glmnet
.glmnet
, for each combination of the other tuning parameters.min.scale
, nfeatures
, alpha
and lambda
that minimize the CV. For example, if alpha=c(0,0.5,1)
is specified and the CV-minimizing tuning parameter combination takes alpha
to be the 2nd of these values, then the third column of the table is c(2, 0.5)
.store.cv = TRUE
, a table giving the CV criterion for each combination of min.scale
, nfeatures
, alpha
and lambda
. Otherwise, just the minimized CV criterion.store.cv = TRUE
, the standard error of the CV estimate for each combination of min.scale
, nfeatures
, alpha
and lambda
.type
in wd
) with periodic boundary handling (see argument bc
in wd
).For 2D predictors, setting min.scale=1
will lead to an error, due to a technical detail regarding imwd
. Please contact the authors if a workaround is needed.
Zhao, Y., Chen, H., and Ogden, R. T. Wavelet-based Adaptive LASSO and screening approaches in functional linear regression. Journal of Computational and Graphical Statistics, to appear.
wcr
, wnet.perm
## Not run:
# ### 1D functional predictor example ###
#
# data(gasoline)
#
# # input a single value of each tuning parameters
# gas.wnet1 <- wnet(gasoline$octane, xfuncs = gasoline$NIR[,1:256],
# nfeatures= 20, min.scale = 0, alpha = 1)
# gas.wpcr1 <- wcr(gasoline$octane, xfuncs = gasoline$NIR[,1:256], min.scale = 0,
# nfeatures = 20, ncomp = 15)
# gas.wpls1 <- wcr(gasoline$octane, xfuncs = gasoline$NIR[,1:256], min.scale = 0,
# nfeatures = 20, ncomp = 15, method = "pls")
# plot(gas.wnet1)
# plot(gas.wpcr1)
# plot(gas.wpls1)
#
# # input vectors of candidate tuning parameter values
# gas.wnet2 <- wnet(gasoline$octane, xfuncs = gasoline$NIR[,1:256],
# nfeatures= 20, min.scale = 0:3, alpha = c(0.9, 1))
# gas.wpcr2 <- wcr(gasoline$octane, xfuncs = gasoline$NIR[,1:256], min.scale = 0:3,
# nfeatures = c(16, 18, 20), ncomp = 10:15)
# gas.wpls2 <- wcr(gasoline$octane, xfuncs = gasoline$NIR[,1:256], min.scale = 0:3,
# nfeatures = c(16, 18, 20), ncomp = 10:15, method = "pls")
# plot(gas.wnet2)
# plot(gas.wpcr2)
# plot(gas.wpls2)
#
# ### 2D functional predictor example ###
#
# n = 200; d = 64
#
# # Create true coefficient function
# ftrue = matrix(0,d,d)
# ftrue[40:46,34:38] = 1
#
# # Generate random functional predictors, and scalar responses
# ii = array(rnorm(n*d^2), dim=c(n,d,d))
# iimat = ii; dim(iimat) = c(n,d^2)
# yy = iimat %*% as.vector(ftrue) + rnorm(n, sd=.3)
#
# mm.wnet <- wnet(yy, xfuncs = ii, min.scale = 4, alpha = 1)
#
# mm.wpls <- wcr(yy, xfuncs = ii, min.scale = 4, nfeatures = 20, ncomp = 6,
# method = "pls")
#
# plot(mm.wnet)
# plot(mm.wpls)
#
# ### 3D functional predictor example ###
#
# n = 200; d = 16
#
# # Create true coefficient function
# ftrue = array(0,dim = rep(d, 3))
# ftrue[10:16,12:15, 4:8] = 1
#
# # Generate random functional predictors, and scalar responses
# ii = array(rnorm(n*d^3), dim=c(n,rep(d,3)))
# iimat = ii; dim(iimat) = c(n,d^3)
# yy = iimat %*% as.vector(ftrue) + rnorm(n, sd=.3)
#
# mmm.wnet <- wnet(yy, xfuncs = ii, min.scale = 2, alpha = 1)
#
# mmm.wpls <- wcr(yy, xfuncs = ii, min.scale = 2, nfeatures = 20, ncomp = 6,
# method = "pls")
# plot(mmm.wnet)
# plot(mmm.wpls)
# ## End(Not run)
Run the code above in your browser using DataLab