| sampleUnivSNMoE {meteorits} | R Documentation |
Draw a sample from a skew-normal mixture of linear experts model.
Description
Draw a sample from a skew-normal mixture of linear experts model.
Usage
sampleUnivSNMoE(alphak, betak, sigmak, lambdak, x)
Arguments
alphak |
The parameters of the gating network. |
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. |
x |
A vector og length n representing the inputs (predictors). |
Value
A list with the output variable y and statistics.
-
yVector of length n giving the output variable. -
ziA vector of size n giving the hidden label of the expert component generating the i-th observation. Its elements arezi[i] = k, if the i-th observation has been generated by the k-th expert. -
zA matrix of size (n, K) giving the values of the binary latent component indicatorsZ_{ik}such thatZ_{ik} = 1iffZ_{i} = k. -
statsA list whose elements are:-
Ey_kMatrix 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. -
EyVector of length n giving the conditional expectation of Yi given the value of predictor X = xi. -
Vary_kVector of length k representing the conditional variance of Yi given zi = k, and X = xi. -
VaryVector of length n giving the conditional expectation of Yi given X = xi.
-
Examples
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
lambdak <- c(3, 5) # Skewness parameters of the experts
sigmak <- c(1, 1) # Standard deviations of the experts
x <- seq.int(from = -1, to = 1, length.out = n) # Inputs (predictors)
# Generate sample of size n
sample <- sampleUnivSNMoE(alphak = alphak, betak = betak, sigmak = sigmak,
lambdak = lambdak, 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)