R/ChooseLambda.R

Defines functions choose.lambda

Documented in choose.lambda

#' @importFrom purrr map_dbl
#' @importFrom magrittr %>%
#' @importFrom spams spams.fistaTree spams.normalize
NULL

#' choose lambda
#'
#' @description type in later
#'
#' @param X.shift a matrix
#' @param Y.single a vector
#' @param W0 a vector
#' @param tree a matrix
#'
#' @return a list
#' @export
#'
#' @examples
#' # later




choose.lambda <- function(X.shift, Y.single, W0, tree){
  mean.err.eachlambda <- NULL
  lam <- map_dbl(seq(-12,12), ~ give.lambdas(.x, Y = Y.single))  #
  #  lam <- map_dbl(seq(-12,12), ~ give.lambdas(.x, Y = data$Ytr.single))

  for (m in 1:length(lam)){
    #cat("iteration j = ", j, "\n")
    mean.err.eachlambda[m] <- map_dbl(seq(1:5), ~ CV.hier(X = X.shift, Y = Y.single, whichsubgroup = .x,
                                                                Lambda = lam[m], W0=W0, tree=tree)) %>%
      mean()
  }
  optimal.lambda <- mean.err.eachlambda %>% which.min() %>% lam[.]

  return(list(lambdas = lam, optimal.lambda = optimal.lambda))
}



##### this one depends on CV.hier.inter()
##### and purrr()
yymmhaha/PackPaper1 documentation built on May 24, 2019, 8:55 a.m.