Adjustments for CRAN upload
[valse.git] / pkg / R / computeGridLambda.R
index 4b68bcd..f4073d0 100644 (file)
@@ -1,35 +1,39 @@
-#' computeGridLambda 
+#' computeGridLambda
 #'
 #' Construct the data-driven grid for the regularization parameters used for the Lasso estimator
 #'
 #' @param phiInit value for phi
-#' @param rhoInit\tvalue for rho
-#' @param piInit\tvalue for pi
+#' @param rhoInit  for rho
+#' @param piInit  for pi
 #' @param gamInit value for gamma
 #' @param X matrix of covariates (of size n*p)
 #' @param Y matrix of responses (of size n*m)
 #' @param gamma power of weights in the penalty
 #' @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
+#' @param eps threshold to stop EM algorithm
+#' @param fast boolean to enable or not the C function call
 #'
-#' @return the grid of regularization parameters
+#' @return the grid of regularization parameters for the Lasso estimator. The output is a vector with nonnegative values that are relevant
+#' to be considered as regularization parameter as they are equivalent to a 0 in the regression parameter.
 #'
 #' @export
-computeGridLambda <- function(phiInit, rhoInit, piInit, gamInit, X, Y, gamma, mini, 
-  maxi, tau, fast = TRUE)
-  {
+computeGridLambda <- function(phiInit, rhoInit, piInit, gamInit, X, Y, gamma, mini,
+  maxi, eps, fast)
+{
   n <- nrow(X)
-  p <- dim(phiInit)[1]
-  m <- dim(phiInit)[2]
-  k <- dim(phiInit)[3]
-  
-  list_EMG <- EMGLLF(phiInit, rhoInit, piInit, gamInit, mini, maxi, gamma, lambda = 0, 
-    X, Y, tau, fast)
+  p <- ncol(X)
+  m <- ncol(Y)
+  k <- length(piInit)
+
+  list_EMG <- EMGLLF(phiInit, rhoInit, piInit, gamInit, mini, maxi, gamma, lambda = 0,
+    X, Y, eps, fast)
+
   grid <- array(0, dim = c(p, m, k))
-  for (i in 1:p)
+  for (j in 1:p)
   {
-    for (j in 1:m) grid[i, j, ] <- abs(list_EMG$S[i, j, ])/(n * list_EMG$pi^gamma)
+    for (mm in 1:m)
+      grid[j, mm, ] <- abs(list_EMG$S[j, mm, ])/(n * list_EMG$pi^gamma)
   }
   sort(unique(grid))
 }