Learn R Programming

meteorits (version 0.1.1)

emStMoE: emStMoE implements the ECM algorithm to fit a Skew-t Mixture of Experts (StMoE).

Description

emStMoE implements the maximum-likelihood parameter estimation of a Skew-t Mixture of Experts (StMoE) model by the Expectation Conditional Maximization (ECM) algorithm.

Usage

emStMoE(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 \(x_{1},\dots,x_{n}\).

Y

Numeric vector of length n representing the observed response/output \(y_{1},\dots,y_{n}\).

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.

Value

ECM returns an object of class ModelStMoE.

Details

emStMoE function implements the ECM algorithm for the StMoE model. This function starts with an initialization of the parameters done by the method initParam of the class ParamStMoE, then it alternates between the E-Step (method of the class StatStMoE) and the M-Step (method of the class ParamStMoE) until convergence (until the relative variation of log-likelihood between two steps of the ECM algorithm is less than the threshold parameter).

See Also

ModelStMoE, ParamStMoE, StatStMoE

Examples

Run this code
# NOT RUN {
data(tempanomalies)
x <- tempanomalies$Year
y <- tempanomalies$AnnualAnomaly

stmoe <- emStMoE(X = x, Y = y, K = 2, p = 1, threshold = 1e-4, verbose = TRUE)

stmoe$summary()

stmoe$plot()
# }

Run the code above in your browser using DataLab