# NOT RUN {
# parameters
n <- 100
g <- 3 # number of features
K <- 3 # number of clusters (mixture components)
pi <- rep(1/K,K) # cluster membership probability
z <- sample(1:K, size = n, replace = TRUE, prob = pi) # cluster indicators
z <- remap_canonical2(z)
t_true <- truncnorm::rtruncnorm(n,0,Inf,0,1)
t <- t_true
# Cluster Specific Parameters
# cluster specific means
Mu <- list(
Mu1 = rnorm(g,-5,1),
Mu2 = rnorm(g,0,1),
Mu3 = rnorm(g,5,1)
)
# Cluster speficic skewness
Xi <- list(
Xi1 = rep(2,g),
Xi2 = rep(0,g),
Xi3 = rep(-3,g)
)
# cluster specific variance-covariance
S <- matrix(1,nrow = g,ncol = g) # covariance matrix
diag(S) <- 1.5
Sig <- list(
Sig1 = S,
Sig2 = S,
Sig3 = S
)
Y <- matrix(0, nrow = n, ncol = g)
for(i in 1:n)
{
Y[i,] <- mvtnorm::rmvnorm(1,mean = Mu[[z[i]]] + t[i]*Xi[[z[i]]],sigma = Sig[[z[i]]])
}
# fit model
fit1 <- fit_msn(Y,3,10,0)
# }
Run the code above in your browser using DataLab