From e28b952496c2faca7fd61379d8d77264771dfbf5 Mon Sep 17 00:00:00 2001 From: Florian Lecocq Date: Tue, 17 Sep 2019 12:54:45 +0200 Subject: [PATCH] Handle numerical issues in SNMoE - SNMoE: Handle numerical issues when calculating the two conditional expectations 'E1ik' and 'E2ik' in StatSNMoE class; - CITATION: Update citations; - logsumexp.R: Correct a typo; - IRLS.cpp: Correct a typo. --- NAMESPACE | 2 + R/ParamSNMoE.R | 5 +- R/ParamStMoE.R | 2 +- R/StatSNMoE.R | 8 ++- R/logsumexp.R | 2 +- R/meteorits-package.R | 24 ++++---- inst/CITATION | 122 +++++++++++++++++++++------------------ man/ParamSNMoE-class.Rd | 2 +- man/ParamStMoE-class.Rd | 2 +- man/meteorits-package.Rd | 22 +++---- meteorits_0.1.0.pdf | Bin 229455 -> 229532 bytes src/IRLS.cpp | 2 +- 12 files changed, 109 insertions(+), 84 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 4cce859..244ac7a 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -20,6 +20,8 @@ exportClasses(StatNMoE) exportClasses(StatSNMoE) exportClasses(StatStMoE) exportClasses(StatTMoE) +import(MASS) import(methods) +import(pracma) importFrom(Rcpp,sourceCpp) useDynLib(meteorits, .registration = TRUE) diff --git a/R/ParamSNMoE.R b/R/ParamSNMoE.R index c619ebd..f7258d4 100755 --- a/R/ParamSNMoE.R +++ b/R/ParamSNMoE.R @@ -25,7 +25,7 @@ #' \eqn{(1, K)}). #' @field lambda The skewness parameters for each experts (matrix of size #' \eqn{(1, K)}). -#' @field delta delta is equal \eqn{\delta = +#' @field delta delta is equal to \eqn{\delta = #' \frac{\lambda}{\sqrt{1+\lambda^2}}}{\delta = \lambda / #' (1+\lambda^2)^(1/2)}. #' @field df The degree of freedom of the SNMoE model representing the @@ -123,6 +123,7 @@ ParamSNMoE <- setRefClass( Z <- matrix(0, nrow = n, ncol = K) Z[klas %*% ones(1, K) == ones(n, 1) %*% seq(K)] <- 1 tau <- Z + res <- IRLS(phiAlpha$XBeta, tau, ones(nrow(tau), 1), alpha) alpha <<- res$W @@ -147,6 +148,7 @@ ParamSNMoE <- setRefClass( \\code{statSNMoE} of class \\link{StatSNMoE} (which contains the E-step)." res_irls <- IRLS(phiAlpha$XBeta, statSNMoE$tik, ones(nrow(statSNMoE$tik), 1), alpha, verbose_IRLS) + statSNMoE$piik <- res_irls$piik reg_irls <- res_irls$reg_irls @@ -156,6 +158,7 @@ ParamSNMoE <- setRefClass( # Update the regression coefficients tauik_Xbeta <- (statSNMoE$tik[, k] %*% ones(1, p + 1)) * phiBeta$XBeta + beta[, k] <<- solve((t(tauik_Xbeta) %*% phiBeta$XBeta)) %*% (t(tauik_Xbeta) %*% (Y - delta[k] * statSNMoE$E1ik[, k])) # Update the variances sigma2k diff --git a/R/ParamStMoE.R b/R/ParamStMoE.R index 391f71e..f4718af 100755 --- a/R/ParamStMoE.R +++ b/R/ParamStMoE.R @@ -25,7 +25,7 @@ #' \eqn{(1, K)}). #' @field lambda The skewness parameters for each experts (matrix of size #' \eqn{(1, K)}). -#' @field delta delta is equal \eqn{\delta = +#' @field delta delta is equal to \eqn{\delta = #' \frac{\lambda}{\sqrt{1+\lambda^2}}}{\delta = \lambda / #' (1+\lambda^2)^(1/2)}. #' @field nu The degree of freedom for the Student distribution for each diff --git a/R/StatSNMoE.R b/R/StatSNMoE.R index 6a0e98d..220ade6 100755 --- a/R/StatSNMoE.R +++ b/R/StatSNMoE.R @@ -166,9 +166,13 @@ StatSNMoE <- setRefClass( # E1ik = E[Ui|yi,xi,zik=1] E1ik[, k] <<- mu_uk + sigma_uk * dnorm(paramSNMoE$lambda[k] * dik, 0, 1) / pnorm(paramSNMoE$lambda[k] * dik, 0, 1) + E1ik[is.nan(E1ik[, k]), k] <<- mu_uk[is.nan(E1ik[, k])] - sigma_uk * paramSNMoE$lambda[k] * dik[is.nan(E1ik[, k])] + E1ik[is.infinite(E1ik[, k]), k] <<- mu_uk[is.infinite(E1ik[, k])] - sigma_uk * paramSNMoE$lambda[k] * dik[is.infinite(E1ik[, k])] # E2ik = E[Ui^2|y,zik=1] E2ik[, k] <<- mu_uk ^ 2 + sigma_uk ^ 2 + sigma_uk * mu_uk * dnorm(paramSNMoE$lambda[k] * dik, 0, 1) / pnorm(paramSNMoE$lambda[k] * dik, 0, 1) + E2ik[is.nan(E2ik[, k]), k] <<- mu_uk[is.nan(E2ik[, k])] ^ 2 + sigma_uk ^ 2 - sigma_uk * mu_uk[is.nan(E2ik[, k])] * paramSNMoE$lambda[k] * dik[is.nan(E2ik[, k])] + E2ik[is.infinite(E2ik[, k]), k] <<- mu_uk[is.infinite(E2ik[, k])] ^ 2 + sigma_uk ^ 2 - sigma_uk * mu_uk[is.infinite(E2ik[, k])] * paramSNMoE$lambda[k] * dik[is.infinite(E2ik[, k])] # weighted skew normal linear expert likelihood piik_fik[, k] <- piik[, k] * (2 / sigmak) * dnorm(dik, 0, 1) * pnorm(paramSNMoE$lambda[k] * dik) @@ -179,7 +183,9 @@ StatSNMoE <- setRefClass( log_sum_piik_fik <<- matrix(log(rowSums(piik_fik))) # E[Zik|y,x] and E[U^2|y,zik=1] - tik <<- piik_fik / (rowSums(piik_fik) %*% ones(1, paramSNMoE$K)) + # tik <<- piik_fik / (rowSums(piik_fik) %*% ones(1, paramSNMoE$K)) + log_Tauik <- log_piik_fik - logsumexp(log_piik_fik, 1) %*% ones(1, paramSNMoE$K) + tik <<- exp(log_Tauik) } ) ) diff --git a/R/logsumexp.R b/R/logsumexp.R index 38dec40..cdabf5b 100755 --- a/R/logsumexp.R +++ b/R/logsumexp.R @@ -7,7 +7,7 @@ logsumexp <- function(A, margin) { A <- xstar + log(apply(exp(M), 1, sum)) } else{ xstar <- apply(A, 2, max) - M <- M - matrix(1, nrow = row(M), ncol = 1) %*% xstar + M <- M - matrix(1, nrow = nrow(M), ncol = 1) %*% xstar A <- xstar + log(apply(exp(M), 2, sum)) } return(A) diff --git a/R/meteorits-package.R b/R/meteorits-package.R index b98126b..39c88ec 100755 --- a/R/meteorits-package.R +++ b/R/meteorits-package.R @@ -10,17 +10,17 @@ #' `meteorits` contains the following Mixture-of-Experts models: #' #' \itemize{ -#' \item NMoE provides a flexible framework for heterogenous data with -#' Normal expert regressors network; -#' \item SNMoE provides a flexible modeling framework for heterogenous -#' data with possibly skewed distributions to generalize the standard Normal -#' mixture of expert model; -#' \item TMoE provides a flexible and robust modeling framework for -#' heterogenous data with possibly heavy-tailed distributions and corrupted by -#' atypical observations; -#' \item StMoE provides a flexible and robust modeling framework for -#' heterogenous data with possibly skewed, heavy-tailed distributions and -#' corrupted by atypical observations. +#' \item NMoE (Normal Mixtures-of-Experts) provides a flexible framework for +#' heterogenous data with Normal expert regressors network; +#' \item SNMoE (Skew-Normal Mixtures-of-Experts) provides a flexible +#' modeling framework for heterogenous data with possibly skewed +#' distributions to generalize the standard Normal mixture of expert model; +#' \item tMoE (t Mixtures-of-Experts) provides a flexible and robust +#' modeling framework for heterogenous data with possibly heavy-tailed +#' distributions and corrupted by atypical observations; +#' \item StMoE (Skew t Mixtures-of-Experts) provides a flexible and robust +#' modeling framework for heterogenous data with possibly skewed, +#' heavy-tailed distributions and corrupted by atypical observations. #' } #' #' For the advantages/differences of each of them, the user is referred to our @@ -46,6 +46,8 @@ #' Chamroukhi, F., A. Same, G. Govaert, and P. Aknin. 2009. \emph{Time Series Modeling by a Regression Approach Based on a Latent Process.} Neural Networks 22 (5-6): 593--602. \url{https://chamroukhi.com/papers/Chamroukhi_Neural_Networks_2009.pdf}. #' #' @import methods +#' @import pracma +#' @import MASS ## usethis namespace: start #' @useDynLib meteorits, .registration = TRUE ## usethis namespace: end diff --git a/inst/CITATION b/inst/CITATION index 2b1abb5..2b6a4bd 100644 --- a/inst/CITATION +++ b/inst/CITATION @@ -1,4 +1,7 @@ -citHeader("To cite meteorits in publications use:") +citHeader("To cite the package meteorits in a publication please use the +following reference. To cite the corresponding paper for a specific package +from meteorits (e.g NMoE, SNMoE, tMoE, StMoE, etc), please choose the +reference(s) from the list provided below.") note <- sprintf("R package version %s", meta$Version) @@ -7,69 +10,76 @@ citEntry( title = "meteorits: Mixtures-of-Experts Modeling for Complex and Non-Normal Distributions ('MEteorits')", author = personList(person(given="F.", family="Chamroukhi"), - person(given="M.", family="Bartcus"), - person(given="F.", family="Lecocq")), + person(given="F.", family="Lecocq"), + person(given="M.", family="Bartcus")), year = "2019", note = note, url = "https://github.com/fchamroukhi/MEteorits", - textVersion = paste0("Faicel Chamroukhi, Marius Bartcus and Florian Lecocq (2019). + textVersion = paste0("Faicel Chamroukhi, Florian Lecocq and Marius Bartcus (2019). meteorits: Mixtures-of-Experts Modeling for Complex and Non-Normal Distributions ('MEteorits'). ", note, ". https://github.com/fchamroukhi/MEteorits") ) citEntry( - entry = "Article", + entry = "Article", author = personList(person(given="B-T.", family="Huynh"), person(given="F.", family="Chamroukhi")), - journal = "Journal de la Societe Francaise de Statistique", - title = "Estimation and Feature Selection in Mixtures of Generalized Linear Experts Models.", + journal = "Journal de la Soci\\'{e}t\\'{e} Fran\\c{c}aise de Statistique", + title = "Estimation and Feature Selection in Mixtures of Generalized Linear Experts Models", year = "2019", - url = "https://chamroukhi.com/papers/Chamroukhi_Huynh_jsfds-published.pdf", - textVersion = "B-T. Huynh and F. Chamroukhi (2019). \u201cEstimation and Feature Selection in Mixtures of Generalized Linear Experts Models.\u201d Journal de la Societe Francaise de Statistique. ." ) citEntry( @@ -81,33 +91,33 @@ citEntry( volume = "79", pages = "20--36", url = "https://chamroukhi.com/papers/TMoE.pdf", - textVersion = "Chamroukhi F (2016). \u201cRobust mixture of experts modeling using the - t-distribution.\u201d Neural Networks - Elsevier, 79, pp. 20-36. + textVersion = "Chamroukhi F (2016). \u201cRobust mixture of experts modeling + using the t-distribution.\u201d Neural Networks - Elsevier, *79*, 20-36. ." ) citEntry( - entry = "InProceedings", - title = "Skew-Normal Mixture of Experts", + entry = "InProceedings", + title = "Skew-Normal Mixture of Experts", author = personList(person(given="F.", family="Chamroukhi")), - booktitle = "The International Joint Conference on Neural Networks (IJCNN)", - year = "2016", - url = "https://chamroukhi.com/papers/Chamroukhi-SNMoE-IJCNN2016.pdf", - textVersion = "Chamroukhi F (2016). \u201cSkew-Normal Mixture of Experts.\u201d In - The International Joint Conference on Neural Networks (IJCNN). - ." + booktitle = "The International Joint Conference on Neural Networks (IJCNN)", + year = "2016", + url = "https://chamroukhi.com/papers/Chamroukhi-SNMoE-IJCNN2016.pdf", + textVersion = "Chamroukhi F (2016). \u201cSkew-Normal Mixture of + Experts.\u201d In The International Joint Conference on Neural Networks (IJCNN). + ." ) citEntry( entry = "PhdThesis", title = "Statistical learning of latent data models for complex data analysis", author = person(given="F.", family="Chamroukhi"), - school = "Universit\u00e9 de Toulon", + school = "Universit\\'{e} de Toulon", year = "2015", type = "Habilitation Thesis (HDR)", url = "https://chamroukhi.com/Dossier/FChamroukhi-Habilitation.pdf", - textVersion = "Chamroukhi F (2015). Statistical learning of latent data models for - complex data analysis. Habilitation Thesis (HDR), Universit\u00e9 de Toulon. + textVersion = "Chamroukhi F (2015). Statistical learning of latent data models + for complex data analysis. PhD thesis, Universit\u00e9 de Toulon. ." ) @@ -115,26 +125,28 @@ citEntry( entry = "PhdThesis", title = "Hidden process regression for curve modeling, classification and tracking", author = person(given="F.", family="Chamroukhi"), - school = "Universit\'{e} de Technologie de Compi\`{e}gne", + school = "Universit\\'{e} de Technologie de Compi\\`{e}gne", year = "2010", type = "Ph.D. Thesis", url = "https://chamroukhi.com/papers/FChamroukhi-Thesis.pdf", - textVersion = "Chamroukhi F (2010). \u201cHidden process regression for curve - modeling, classification and tracking\u201d. Ph.D. Thesis, Universit\u00e9 de - Technologie de Compi\u00e8gne. - ." + textVersion = "Chamroukhi F (2010). Hidden process regression for curve + modeling, classification and tracking. PhD thesis, Universit\u00e9 de Technologie + de Compi\u00e8gne. ." ) citEntry( entry = "Article", - title = "Time series modeling by a regression approach based on a latent process.", + title = "Time series modeling by a regression approach based on a latent process", author = personList(person(given="F.", family="Chamroukhi"), - person(given="A.", family="Sam\u00e9"), + person(given="A.", family="Sam\\'{e}"), person(given="G.", family="Govaert"), person(given="P.", family="Aknin")), journal = "Neural Networks Elsevier Science Ltd.", year = "2009", - volume = "22(5-6)", + volume = "22", + number = "5-6", pages = "593--602", - textVersion = "F. Chamroukhi and A. Sam\u00e9 and G. Govaert and P. Aknin (2009). \u201cTime series modeling by a regression approach based on a latent process.\u201d Neural Networks Elsevier Science Ltd., vol. 22(5-6), pp. 593--602." + textVersion = "Chamroukhi F, Sam\u00e9 A, Govaert G, Aknin P (2009). \u201cTime + series modeling by a regression approach based on a latent process.\u201d + Neural Networks Elsevier Science Ltd., *22(5-6)*, 593-602." ) diff --git a/man/ParamSNMoE-class.Rd b/man/ParamSNMoE-class.Rd index 17290e3..5aad93f 100644 --- a/man/ParamSNMoE-class.Rd +++ b/man/ParamSNMoE-class.Rd @@ -44,7 +44,7 @@ default.} \item{\code{lambda}}{The skewness parameters for each experts (matrix of size \eqn{(1, K)}).} -\item{\code{delta}}{delta is equal \eqn{\delta = +\item{\code{delta}}{delta is equal to \eqn{\delta = \frac{\lambda}{\sqrt{1+\lambda^2}}}{\delta = \lambda / (1+\lambda^2)^(1/2)}.} diff --git a/man/ParamStMoE-class.Rd b/man/ParamStMoE-class.Rd index 7891647..ce8dfda 100644 --- a/man/ParamStMoE-class.Rd +++ b/man/ParamStMoE-class.Rd @@ -44,7 +44,7 @@ default.} \item{\code{lambda}}{The skewness parameters for each experts (matrix of size \eqn{(1, K)}).} -\item{\code{delta}}{delta is equal \eqn{\delta = +\item{\code{delta}}{delta is equal to \eqn{\delta = \frac{\lambda}{\sqrt{1+\lambda^2}}}{\delta = \lambda / (1+\lambda^2)^(1/2)}.} diff --git a/man/meteorits-package.Rd b/man/meteorits-package.Rd index 37c33b3..f98da41 100644 --- a/man/meteorits-package.Rd +++ b/man/meteorits-package.Rd @@ -16,17 +16,17 @@ sparse mixture-of-experts models for high-dimensional data. \code{meteorits} contains the following Mixture-of-Experts models: \itemize{ -\item NMoE provides a flexible framework for heterogenous data with -Normal expert regressors network; -\item SNMoE provides a flexible modeling framework for heterogenous -data with possibly skewed distributions to generalize the standard Normal -mixture of expert model; -\item TMoE provides a flexible and robust modeling framework for -heterogenous data with possibly heavy-tailed distributions and corrupted by -atypical observations; -\item StMoE provides a flexible and robust modeling framework for -heterogenous data with possibly skewed, heavy-tailed distributions and -corrupted by atypical observations. +\item NMoE (Normal Mixtures-of-Experts) provides a flexible framework for +heterogenous data with Normal expert regressors network; +\item SNMoE (Skew-Normal Mixtures-of-Experts) provides a flexible +modeling framework for heterogenous data with possibly skewed +distributions to generalize the standard Normal mixture of expert model; +\item tMoE (t Mixtures-of-Experts) provides a flexible and robust +modeling framework for heterogenous data with possibly heavy-tailed +distributions and corrupted by atypical observations; +\item StMoE (Skew t Mixtures-of-Experts) provides a flexible and robust +modeling framework for heterogenous data with possibly skewed, +heavy-tailed distributions and corrupted by atypical observations. } For the advantages/differences of each of them, the user is referred to our diff --git a/meteorits_0.1.0.pdf b/meteorits_0.1.0.pdf index 2bad9632da5a5fd22c464f9281c4c52fccd21dcf..89e19437a05fc54a76f183b7a536d7f7db45def1 100644 GIT binary patch delta 22348 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 k_TSvs|9uvN+2aTbiiwHv " + std::to_string(iter) + ")\n"; + Rcout << "IRLS : did not converge (increase the number of iterations > " + std::to_string(max_iter) + ")\n"; } double reg_irls = 0;