From c280fe59f3b4f7fe7c1bf5cceb8352bead1bf26b Mon Sep 17 00:00:00 2001 From: Benjamin Auder Date: Sun, 2 Apr 2017 12:18:09 +0200 Subject: [PATCH] first draft of EMGLLF.R and EMGrank.R (should work) --- pkg/R/EMGLLF.R | 34 +++++++++++++++++++++++++++------- pkg/R/EMGrank.R | 27 +++++++++++++++++++++------ 2 files changed, 48 insertions(+), 13 deletions(-) diff --git a/pkg/R/EMGLLF.R b/pkg/R/EMGLLF.R index 2b1a0af..7d9ee77 100644 --- a/pkg/R/EMGLLF.R +++ b/pkg/R/EMGLLF.R @@ -2,17 +2,37 @@ #' #' Description de EMGLLF #' -#' @param phiInit ... +#' @param phiInit Parametre initial de moyenne renormalisé +#' @param rhoInit Parametre initial de variance renormalisé +#' @param piInit Parametre initial des proportions +#' @param gamInit Paramètre initial des probabilités a posteriori de chaque échantillon +#' @param mini Nombre minimal d'itérations dans l'algorithme EM +#' @param maxi Nombre maximal d'itérations dans l'algorithme EM +#' @param gamma Puissance des proportions dans la pénalisation pour un Lasso adaptatif +#' @param lambda Valeur du paramètre de régularisation du Lasso +#' @param X Régresseurs +#' @param Y Réponse +#' @param tau Seuil pour accepter la convergence #' -#' @return ... +#' @return A list ... phi,rho,pi,LLF,S,affec: +#' phi : parametre de moyenne renormalisé, calculé par l'EM +#' rho : parametre de variance renormalisé, calculé par l'EM +#' pi : parametre des proportions renormalisé, calculé par l'EM +#' LLF : log vraisemblance associée à cet échantillon, pour les valeurs estimées des paramètres +#' S : ... affec : ... #' -#' @examples -#' ... -#' ... #' @export EMGLLF <- function(phiInit, rhoInit, piInit, gamInit, mini, maxi, gamma, lambda, X, Y, tau) { - .Call("EMGLLF", phiInit, rhoInit, piInit, gamInit, - mini, maxi, gamma, lambda, X, Y, tau, PACKAGE="valse") + n = nrow(X) #nombre d'echantillons + p = ncol(X) #nombre de covariables + m = ncol(Y) #taille de Y (multivarié) + k = length(piInit) #nombre de composantes dans le mélange + .Call("EMGLLF", + phiInit, rhoInit, piInit, gamInit, mini, maxi, gamma, lambda, X, Y, tau, + phi=double(p*m*k), rho=double(m*m*k), pi=double(k), LLF=double(maxi), + S=double(p*m*k), affec=integer(n), + n, p, m, k, + PACKAGE="valse") } diff --git a/pkg/R/EMGrank.R b/pkg/R/EMGrank.R index 71f7c5b..e44ff7a 100644 --- a/pkg/R/EMGrank.R +++ b/pkg/R/EMGrank.R @@ -2,15 +2,30 @@ #' #' Description de EMGrank #' -#' @param Pi ... +#' @param phiInit ... +#' @param Pi Parametre de proportion +#' @param Rho Parametre initial de variance renormalisé +#' @param mini Nombre minimal d'itérations dans l'algorithme EM +#' @param maxi Nombre maximal d'itérations dans l'algorithme EM +#' @param X Régresseurs +#' @param Y Réponse +#' @param tau Seuil pour accepter la convergence +#' @param rank Vecteur des rangs possibles #' -#' @return ... +#' @return A list ... +#' phi : parametre de moyenne renormalisé, calculé par l'EM +#' LLF : log vraisemblance associé à cet échantillon, pour les valeurs estimées des paramètres #' -#' @examples -#' ... -#' ... #' @export EMGrank <- function(Pi, Rho, mini, maxi, X, Y, tau, rank) { - .Call("EMGrank", Pi, Rho, mini, maxi, X, Y, tau, rank, PACKAGE="valse") + n = nrow(X) #nombre d'echantillons + p = ncol(X) #nombre de covariables + m = ncol(Y) #taille de Y (multivarié) + k = length(Pi) #nombre de composantes dans le mélange + .Call("EMGrank", + Pi, Rho, mini, maxi, X, Y, tau, rank, + phi=double(p*m*k), LLF=double(1), + n, p, m, k, + PACKAGE="valse") } -- 2.44.0