emSNMoE {meteorits} | R Documentation |
emSNMoE implements the ECM algorithm to fit a Skew-Normal Mixture of Experts (SNMoE).
Description
emSNMoE implements the maximum-likelihood parameter estimation of a Skew-Normal Mixture of Experts (SNMoE) model by the Expectation Conditional Maximization (ECM) algorithm.
Usage
emSNMoE(X, Y, K, p = 3, q = 1, n_tries = 1, max_iter = 1500,
threshold = 1e-06, verbose = FALSE, verbose_IRLS = FALSE)
Arguments
X |
Numeric vector of length n representing the covariates/inputs
|
Y |
Numeric vector of length n representing the observed
response/output |
K |
The number of experts. |
p |
Optional. The order of the polynomial regression for the experts. |
q |
Optional. The order of the logistic regression for the gating network. |
n_tries |
Optional. Number of runs of the ECM algorithm. The solution providing the highest log-likelihood will be returned. |
max_iter |
Optional. The maximum number of iterations for the ECM algorithm. |
threshold |
Optional. A numeric value specifying the threshold for the relative difference of log-likelihood between two steps of the ECM as stopping criteria. |
verbose |
Optional. A logical value indicating whether or not values of the log-likelihood should be printed during ECM iterations. |
verbose_IRLS |
Optional. A logical value indicating whether or not values of the criterion optimized by IRLS should be printed at each step of the ECM algorithm. |
Details
emSNMoE function implements the ECM algorithm for the SNMoE model.
This function starts with an initialization of the parameters done by the
method initParam
of the class ParamSNMoE, then it
alternates between the E-Step (method of the class StatSNMoE)
and the M-Step (method of the class ParamSNMoE) until
convergence (until the relative variation of log-likelihood between two
steps of the ECM algorithm is less than the threshold
parameter).
Value
ECM returns an object of class ModelSNMoE.
See Also
ModelSNMoE, ParamSNMoE, StatSNMoE
Examples
data(tempanomalies)
x <- tempanomalies$Year
y <- tempanomalies$AnnualAnomaly
snmoe <- emSNMoE(X = x, Y = y, K = 2, p = 1, verbose = TRUE)
snmoe$summary()
snmoe$plot()