pen_MetMod {RKHSMetaMod} | R Documentation |
Function to fit a solution of the RKHS Ridge Group Sparse problem.
Description
Fits the solution of the RKHS ridge group sparse optimization problem for the Gaussian regression model.
Usage
pen_MetMod(Y, Kv, gamma, mu, resg, gama_v, mu_v, maxIter, verbose, calcStwo)
Arguments
Y |
Vector of response observations of size |
Kv |
List, includes the eigenvalues and eigenvectors of the positive definite Gram matrices |
gamma |
Vector of positive scalars. Values of the penalty parameter |
mu |
Vector of positive scalars. Values of the penalty parameter |
resg |
List of initial parameters, includes the |
gama_v |
Scalar zero or vector of vMax positive scalars, considered as weights for the Ridge penalty. Set to zero, to consider no weights, i.e. all weights equal to |
mu_v |
Scalar zero or a vector with vMax scalars, considered as weigths of Sparse Group penalty. Set to zero, to consider no weights, i.e. all weights equal to |
maxIter |
Integer, shows the maximum number of loops through initial active groups at the first step and maximum number of loops through all groups at the second step. Set as |
verbose |
Logical, if TRUE, for each pair of penalty parameters |
calcStwo |
Logical, if TRUE, the program does a second step after convergence: the algorithm is done over all groups by taking the estimated parameters at the first step as initial values. Set as FALSE by default. |
Details
Input Kv should contain the eigenvalues and eigenvectors of positive definite Gram matrices K_v
. It is necessary to set input "correction" in the function calc_Kv
equal to "TRUE".
Value
List of l components, with l equals to the number of pairs of the penalty parameters (\mu,\gamma)
. Each component of the list is a list of 3
components "mu", "gamma" and "Meta-Model":
mu |
Positive scalar, an element of the input vector mu associated with the estimated Meta-Model. |
gamma |
Positive scalar, an element of the input vector gamma associated with the estimated Meta-Model. |
Meta-Model |
Estimated meta model associated with penalty parameters mu and gamma. List of |
intercept |
Scalar, estimated value of intercept. |
teta |
Matrix with vMax rows and |
fit.v |
Matrix with |
fitted |
Vector of size |
Norm.n |
Vector of size vMax, estimated values for the Ridge penalty norm. |
Norm.H |
Vector of size vMax, estimated values for the Group Sparse penalty norm. |
supp |
Vector of active groups. |
Nsupp |
Vector of the names of the active groups. |
SCR |
Scalar equals to |
crit |
Scalar indicates the value of the penalized criteria. |
gamma.v |
Vector of size vMax, coefficients of the Ridge penalty norm, |
mu.v |
Vector of size vMax, coefficients of the Group Sparse penalty norm, |
iter |
List of three components if calcStwo |
convergence |
TRUE or FALSE. Indicates whether the algorithm has converged or not. |
RelDiffCrit |
List of two components if calcStwo |
RelDiffPar |
List of two components if calcStwo |
Note
Note.
Author(s)
Halaleh Kamari
References
Huet, S. and Taupin, M. L. (2017) Metamodel construction for sensitivity analysis. ESAIM: Procs 60, 27-69.
Kamari, H., Huet, S. and Taupin, M.-L. (2019) RKHSMetaMod : An R package to estimate the Hoeffding decomposition of an unknown function by solving RKHS Ridge Group Sparse optimization problem. <arXiv:1905.13695>
See Also
Examples
d <- 3
n <- 50
library(lhs)
X <- maximinLHS(n, d)
c <- c(0.2,0.6,0.8)
F <- 1;for (a in 1:d) F <- F*(abs(4*X[,a]-2)+c[a])/(1+c[a])
epsilon <- rnorm(n,0,1);sigma <- 0.2
Y <- F + sigma*epsilon
Dmax <- 3
kernel <- "matern"
Kv <- calc_Kv(X, kernel, Dmax, TRUE,TRUE, tol = 1e-08)
vMax <- length(Kv$names.Grp)
matZ <- Kv$kv
mumax <- mu_max(Y, matZ)
mug1 <- mumax/10
mug2 <- mumax/100
gr1 <- RKHSgrplasso(Y,Kv, mug1)
gr2 <- RKHSgrplasso(Y,Kv, mug2)
gamma <- c(.5,.01,.001)
#rescaling the penalty parameter
mu <- c(mug1/sqrt(n),mug2/sqrt(n))
resg <- list(gr1,gr2)
res <- pen_MetMod(Y,Kv,gamma,mu,resg,0,0)
l <- length(res)
for(i in 1:l){print(res[[i]]$mu)}
for(i in 1:l){print(res[[i]]$gamma)}
for(i in 1:l){print(res[[i]]$`Meta-Model`$Nsupp)}
gama_v <- rep(1,vMax)
mu_v <- rep(1,vMax)
res.w <- pen_MetMod(Y,Kv,gamma,mu,resg,gama_v,mu_v)
for(i in 1:l){print(res.w[[i]]$`Meta-Model`$Nsupp)}