first draft of EMGLLF.R and EMGrank.R (should work)
[valse.git] / pkg / R / EMGLLF.R
1 #' EMGLLF
2 #'
3 #' Description de EMGLLF
4 #'
5 #' @param phiInit Parametre initial de moyenne renormalisé
6 #' @param rhoInit Parametre initial de variance renormalisé
7 #' @param piInit Parametre initial des proportions
8 #' @param gamInit Paramètre initial des probabilités a posteriori de chaque échantillon
9 #' @param mini Nombre minimal d'itérations dans l'algorithme EM
10 #' @param maxi Nombre maximal d'itérations dans l'algorithme EM
11 #' @param gamma Puissance des proportions dans la pénalisation pour un Lasso adaptatif
12 #' @param lambda Valeur du paramètre de régularisation du Lasso
13 #' @param X Régresseurs
14 #' @param Y Réponse
15 #' @param tau Seuil pour accepter la convergence
16 #'
17 #' @return A list ... phi,rho,pi,LLF,S,affec:
18 #' phi : parametre de moyenne renormalisé, calculé par l'EM
19 #' rho : parametre de variance renormalisé, calculé par l'EM
20 #' pi : parametre des proportions renormalisé, calculé par l'EM
21 #' LLF : log vraisemblance associée à cet échantillon, pour les valeurs estimées des paramètres
22 #' S : ... affec : ...
23 #'
24 #' @export
25 EMGLLF <- function(phiInit, rhoInit, piInit, gamInit,
26 mini, maxi, gamma, lambda, X, Y, tau)
27 {
28 n = nrow(X) #nombre d'echantillons
29 p = ncol(X) #nombre de covariables
30 m = ncol(Y) #taille de Y (multivarié)
31 k = length(piInit) #nombre de composantes dans le mélange
32 .Call("EMGLLF",
33 phiInit, rhoInit, piInit, gamInit, mini, maxi, gamma, lambda, X, Y, tau,
34 phi=double(p*m*k), rho=double(m*m*k), pi=double(k), LLF=double(maxi),
35 S=double(p*m*k), affec=integer(n),
36 n, p, m, k,
37 PACKAGE="valse")
38 }