update main.R and fix some errors
[valse.git] / pkg / R / EMGLLF.R
CommitLineData
4fed76cc
BA
1#' EMGLLF
2#'
3#' Description de EMGLLF
4#'
c280fe59
BA
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
4fed76cc 16#'
c280fe59
BA
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 : ...
4fed76cc 23#'
4fed76cc
BA
24#' @export
25EMGLLF <- function(phiInit, rhoInit, piInit, gamInit,
26 mini, maxi, gamma, lambda, X, Y, tau)
27{
c280fe59
BA
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")
4fed76cc 38}