Learn R Programming

meteorits (version 0.1.1)

sampleUnivStMoE: Draw a sample from a univariate skew-t mixture.

Description

Draw a sample from a univariate skew-t mixture.

Usage

sampleUnivStMoE(alphak, betak, sigmak, lambdak, nuk, x)

Arguments

alphak

The parameters of the gating network. alphak is a matrix of size (q + 1, K - 1), with K - 1, the number of regressors (experts) and q the order of the logistic regression

betak

Matrix of size (p + 1, K) representing the regression coefficients of the experts network.

sigmak

Vector of length K giving the standard deviations of the experts network.

lambdak

Vector of length K giving the skewness parameter of each experts.

nuk

Vector of length K giving the degrees of freedom of the experts network t densities.

x

A vector og length n representing the inputs (predictors).

Value

A list with the output variable y and statistics.

  • y Vector of length n giving the output variable.

  • zi A vector of size n giving the hidden label of the expert component generating the i-th observation. Its elements are \(zi[i] = k\), if the i-th observation has been generated by the k-th expert.

  • z A matrix of size (n, K) giving the values of the binary latent component indicators \(Z_{ik}\) such that \(Z_{ik} = 1\) iff \(Z_{i} = k\).

  • stats A list whose elements are:

    • Ey_k Matrix of size (n, K) giving the conditional expectation of Yi the output variable given the value of the hidden label of the expert component generating the ith observation zi = k, and the value of predictor X = xi.

    • Ey Vector of length n giving the conditional expectation of Yi given the value of predictor X = xi.

    • Vary_k Vector of length k representing the conditional variance of Yi given zi = k, and X = xi.

    • Vary Vector of length n giving the conditional expectation of Yi given X = xi.

Examples

Run this code
# NOT RUN {
n <- 500 # Size of the sample
alphak <- matrix(c(0, 8), ncol = 1) # Parameters of the gating network
betak <- matrix(c(0, -2.5, 0, 2.5), ncol = 2) # Regression coefficients of the experts
sigmak <- c(0.5, 0.5) # Standard deviations of the experts
lambdak <- c(3, 5) # Skewness parameters of the experts
nuk <- c(5, 7) # Degrees of freedom of the experts network t densities
x <- seq.int(from = -1, to = 1, length.out = n) # Inputs (predictors)

# Generate sample of size n
sample <- sampleUnivStMoE(alphak = alphak, betak = betak, sigmak = sigmak,
                          lambdak = lambdak, nuk = nuk, x = x)

# Plot points and estimated means
plot(x, sample$y, pch = 4)
lines(x, sample$stats$Ey_k[, 1], col = "blue", lty = "dotted", lwd = 1.5)
lines(x, sample$stats$Ey_k[, 2], col = "blue", lty = "dotted", lwd = 1.5)
lines(x, sample$stats$Ey, col = "red", lwd = 1.5)
# }

Run the code above in your browser using DataLab