tune.rrmix {rrMixture} | R Documentation |
Reduced-rank mixture models with optimal tuning parameter(s)
Description
Reduced-rank mixture models with optimal tuning parameter(s)
Usage
tune.rrmix(K = NULL, K.max = NULL, X, Y, est = c("FR", "RP", "ANNP"),
lambda = NULL, n.lambda = 20, gamma = 2,
ind0 = NULL, para0 = NULL, seed = NULL, kmscale = FALSE, km.nstart = 20,
n.init = 100, commonvar = FALSE, maxiter = 1000, maxiter.int = 100,
thres = 1e-05, thres.int = 1e-05,
para.true = NULL, ind.true = NULL)
Arguments
K |
number of mixture components. Required when K.max is ‘NULL’. |
K.max |
maximum of mixture components. Default is ‘NULL’. When provided, the argument K is ignored. |
X |
n by p design matrix where n is the number of observations and p is the number of predictors. |
Y |
n by q response matrix where n is the number of observations and q is the number of responses. |
est |
character, specifying the estimation method. ‘FR’, ‘RP’, and ‘ANNP’ refers to as the full-ranked, rank-penalized, and adaptive nuclear norm penalized method, respectively. |
lambda |
vector consisting of lambda candidates. Only used in the estimation method of ‘RP’ and ‘ANNP’. If 0, all estimation methods (‘FR’, ‘RP’, and ‘ANNP’) provide the same estimation results. Default is 'NULL'. If 'NULL', data-adaptive range of lambda will be provided internally. |
n.lambda |
number of lambda candidates to explore. Only used when 'lambda' is 'NULL'. Default is 20. |
gamma |
numerical value, specifying additional tuning parameter, only used in the estimation method of ‘ANNP’. It must be nonnegative. |
ind0 |
vector of length n, specifying the initial assignment of the mixture membership of n observations when there is prior information on the membership. If ‘NULL’, K-means clustering technique is used to assign the membership for n observations. Default is ‘NULL’. |
para0 |
array of length K. It consists of K lists, each of which contains initial values of membership probability, coefficient matrix, and variance- covariance matrix. |
seed |
seed number for the reproducibility of results. Default of ‘NULL’. |
kmscale |
logical value, indicating whether Y is scaled prior to K-means clustering for initialization. Default is ‘FALSE’. |
km.nstart |
number of random sets considered to perform K-means clustering for initialization. Default is 20. |
n.init |
number of initializations to try. Two methods for initial clustering are used: K-means and random clustering. |
commonvar |
logical value, indicating the homogeneity assumption of variance-covariance matrices across K mixture components. Default is ‘FALSE’. |
maxiter |
maximum number of iterations for external iterative algorithm, used in all estimation methods. |
maxiter.int |
maximum number of iterations for internal iterative algorithm, only used in the estimation method of ‘ANNP’. |
thres |
threshold value for external EM algorithm, used in all estimation methods. It controls the termination of the EM algorithm. |
thres.int |
threshold value for internal iterative algorithm, only used in the estimation method of ‘ANNP’. It controls the termination of the internal algorithm. |
para.true |
array of length K. It consists of K lists, each of which contains a coefficient matrix and its true rank. Only used when true models are known, e.g., in a simulation study. |
ind.true |
vector of length n, specifying the true mixture membership for n observations. Only used when true models are known, e.g., in a simulation study. |
Value
lambda.cand |
lambda values used as input. |
penloglik |
penalized log-likelihood values corresponding to the set of lambda values. |
bic |
BIC values corresponding to the set of lambda values. |
est.rank |
estimated ranks corresponding to the set of lambda values. |
Author(s)
Suyeon Kang, University of California, Riverside, skang062@ucr.edu; Weixin Yao, University of California, Riverside, weixin.yao@ucr.edu; Kun Chen, University of Connecticut, kun.chen@uconn.edu.
References
Kang, S., Chen, K., and Yao, W. (2022+). "Reduced rank estimation in mixtures of multivariate linear regression".
See Also
Examples
#-----------------------------------------------------------#
# Real Data Example: Tuna Data
#-----------------------------------------------------------#
require(bayesm)
data(tuna)
tunaY <- log(tuna[, c("MOVE1", "MOVE2", "MOVE3", "MOVE4",
"MOVE5", "MOVE6", "MOVE7")])
tunaX <- tuna[, c("NSALE1", "NSALE2", "NSALE3", "NSALE4",
"NSALE5", "NSALE6", "NSALE7",
"LPRICE1", "LPRICE2", "LPRICE3", "LPRICE4",
"LPRICE5", "LPRICE6", "LPRICE7")]
tunaX <- cbind(intercept = 1, tunaX)
tuna.tune <- tune.rrmix(K.max = 3, X = tunaX, Y = tunaY, est = "RP",
lambda = exp(seq(0, log(100), length = 20)),
seed = 100, n.init = 100)
summary(tuna.tune)
plot(tuna.tune, transform.y = log, ylab = "log(lambda)")