Adjustments for CRAN upload
[valse.git] / pkg / R / initSmallEM.R
index 01147d7..3945322 100644 (file)
@@ -1,13 +1,19 @@
-#' initialization of the EM algorithm 
+#' initSmallEM
+#'
+#' initialization of the EM algorithm
 #'
 #' @param k number of components
 #' @param X matrix of covariates (of size n*p)
 #' @param Y matrix of responses (of size n*m)
+#' @param fast boolean to enable or not the C function call
+#'
+#' @return a list with phiInit (the regression parameter reparametrized),
+#' rhoInit (the covariance parameter reparametrized), piInit (the proportion parameter is the
+#' mixture model), gamInit (the conditional expectation)
 #'
-#' @return a list with phiInit, rhoInit, piInit, gamInit
-#' @export
-#' @importFrom methods new
 #' @importFrom stats cutree dist hclust runif
+#'
+#' @export
 initSmallEM <- function(k, X, Y, fast)
 {
   n <- nrow(X)
@@ -34,12 +40,12 @@ initSmallEM <- function(k, X, Y, fast)
     for (r in 1:k)
     {
       Z <- Zinit1[, repet]
-      Z_indice <- seq_len(n)[Z == r]  #renvoit les indices oรน Z==r
+      Z_indice <- seq_len(n)[Z == r]  #renvoit les indices ou Z==r
       if (length(Z_indice) == 1) {
-        betaInit1[, , r, repet] <- MASS::ginv(crossprod(t(X[Z_indice, ]))) %*% 
+        betaInit1[, , r, repet] <- MASS::ginv(crossprod(t(X[Z_indice, ]))) %*%
           crossprod(t(X[Z_indice, ]), Y[Z_indice, ])
       } else {
-        betaInit1[, , r, repet] <- MASS::ginv(crossprod(X[Z_indice, ])) %*% 
+        betaInit1[, , r, repet] <- MASS::ginv(crossprod(X[Z_indice, ])) %*%
           crossprod(X[Z_indice, ], Y[Z_indice, ])
       }
       sigmaInit1[, , r, repet] <- diag(m)
@@ -54,7 +60,7 @@ initSmallEM <- function(k, X, Y, fast)
       {
         dotProduct <- tcrossprod(Y[i, ] %*% rhoInit1[, , r, repet]
           - X[i, ] %*% phiInit1[, , r, repet])
-        Gam[i, r] <- piInit1[repet, r] * 
+        Gam[i, r] <- piInit1[repet, r] *
           det(rhoInit1[, , r, repet]) * exp(-0.5 * dotProduct)
       }
       sumGamI <- sum(Gam[i, ])
@@ -76,5 +82,5 @@ initSmallEM <- function(k, X, Y, fast)
   piInit <- piInit1[b, ]
   gamInit <- gamInit1[, , b]
 
-  return(list(phiInit = phiInit, rhoInit = rhoInit, piInit = piInit, gamInit = gamInit))
+  list(phiInit = phiInit, rhoInit = rhoInit, piInit = piInit, gamInit = gamInit)
 }