X-Git-Url: https://git.auder.net/?p=valse.git;a=blobdiff_plain;f=R%2FgridLambda.R;h=7b82f6316cc3f0f323fe220fbece4fc13a787d73;hp=66b6cc2eba16aed17403d0f9df8ce377c609abf2;hb=d1531659214edd6eaef0ac9ec835455614bba16c;hpb=6bd2e869a17f3980d52820643c1c1b5f3725738e diff --git a/R/gridLambda.R b/R/gridLambda.R index 66b6cc2..7b82f63 100644 --- a/R/gridLambda.R +++ b/R/gridLambda.R @@ -1,20 +1,31 @@ +#' Construct the data-driven grid for the regularization parameters used for the Lasso estimator +#' @param phiInit value for phi +#' @param rhoInt value for rho +#' @param piInit value for pi +#' @param gamInit value for gamma +#' @param mini minimum number of iterations in EM algorithm +#' @param maxi maximum number of iterations in EM algorithm +#' @param tau threshold to stop EM algorithm +#' @return the grid of regularization parameters +#' @export +#----------------------------------------------------------------------- gridLambda = function(phiInit, rhoInit, piInit, gamInit, X, Y, gamma, mini, maxi, tau) { - n = nrow(X) - p = dim(phiInit)[1] - m = dim(phiInit)[2] - k = dim(phiInit)[3] - - list_EMG = .Call("EMGLLF",phiInit,rhoInit,piInit,gamInit,mini,maxi,1,0,X,Y,tau) - - grid = array(0, dim=c(p,m,k)) - for (i in 1:p) - { - for (j in 1:m) - grid[i,j,] = abs(list_EMG$S[i,j,]) / (n*list_EMG$pi^gamma) - } - grid = unique(grid) - grid = grid[grid <=1] - - return(grid) + n = nrow(X) + p = dim(phiInit)[1] + m = dim(phiInit)[2] + k = dim(phiInit)[3] + + list_EMG = .Call("EMGLLF",phiInit,rhoInit,piInit,gamInit,mini,maxi,1,0,X,Y,tau) + + grid = array(0, dim=c(p,m,k)) + for (i in 1:p) + { + for (j in 1:m) + grid[i,j,] = abs(list_EMG$S[i,j,]) / (n*list_EMG$pi^gamma) + } + grid = unique(grid) + grid = grid[grid <=1] + + return(grid) }