5484706995a58541c2a95c237ad8cb4d6d1a1eb9
[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 #TEMPORARY: use R version
29 return (EMGLLF_R(phiInit, rhoInit, piInit, gamInit,mini, maxi, gamma, lambda, X, Y, tau))
30
31 n = nrow(X) #nombre d'echantillons
32 p = ncol(X) #nombre de covariables
33 m = ncol(Y) #taille de Y (multivarié)
34 k = length(piInit) #nombre de composantes dans le mélange
35 .Call("EMGLLF",
36 phiInit, rhoInit, piInit, gamInit, mini, maxi, gamma, lambda, X, Y, tau,
37 phi=double(p*m*k), rho=double(m*m*k), pi=double(k), LLF=double(maxi),
38 S=double(p*m*k), affec=integer(n),
39 n, p, m, k,
40 PACKAGE="valse")
41 }