This package computes the solution path of penalized maximum likelihood estimates via MC+ penalties.
fanc(x, factors, n.obs, rho, gamma, cor.factor=FALSE, normalize=TRUE,
normalize.penalty=FALSE, covmat, type="MC", model="FA", control=list())
factor loadings
unique variances
factor correlation
rho
AIC
BIC
CAIC
degrees of freedom (number of non-zero parameters for the lasso estimation)
values of AIC, BIC and CAIC
values of GFI and AGFI
a value of gamma
If the number of observation is larger than the number of variables, 1, otherwise 0.
the number of factors
An indicator of the factor correlation
data matrix
indicator of convergence of EM algorithm, coordinate descent and BFGS. If all of these variables are 0, the algorithm has been converged
A data matrix.
The number of factors.
An indicator of the factor correlation. If "TRUE"
, the factor correlation is considered. Default is "FALSE"
.
If "TRUE"
, each variable is normalized, otherwise it is left alone.
If "TRUE"
, the penalty term for each variable has a weight so that the loading matrix is normalized.
The values of rho. It can be a scalar or a matrix.
The values of gamma. It must be a vector.
A covariance matrix, which is needed if the data matrix "x"
is not available.
The number of observations, which is needed to calculate the model selection criteria and goodness-of-fit indices when the data matrix "x"
is not available.
Type of penalty. If "MC"
, the MC penalty is used. If "prenet"
, the prenet penalty is used. If "enet"
, the elastic penalty is used. Default is "MC"
.
Type of model. "FA"
, the factor analysis model is used. If "PPCA"
, the probabilistic principal component analysis is conducted. In the PPCA, the unique variances have the same value. Default is "FA"
.
A list of control parameters. See ‘Details’.
Kei Hirose
mail@keihirose.com
The control
argument is a list that can supply any of the following components:
length.rho
Candidates of tuning parameters which is used for grid search of reparametrization of MC+.
length.gamma
A length of tuning parameter which controls sparsenesses. For each rho
, gamma=Inf
yields soft threshold operator (i.e., lasso penalty) and gamma=+1
produces hard threshold operator.
Maximum value of rho.
max.gamma
A maximum value of gamma (excludes Inf
.).
min.gamma
A minimum value of gamma.
eta
A tuning parameter used for preventing the occurrence of improper solutions. eta
must be non-negative.
ncand.initial
The number of candidates of initial values of factor loadings.
ncand.initial.prenet
The number of candidates of initial values for prenet penalty. Because the prenet penalty is unstable when rho
is large, ncand.initial.prenet
must be large. Default is 1000.
maxit.em
A maximum number of iterations for EM algortihm.
maxit.cd
A maximum number of iterations for coordinate descent algortihm.
maxit.bfgs
A maximum number of iterations for BFGS algorithm used in the update of factor correlation.
maxit.initial
A maximum number of iterations for choosing the initial values.
start
Type of start. If "cold"
, the initial value of factor loadings is randomly chosen for each tuning parameter, which can be slow.
Delta
A proportion of maximum value of rho to minimum value of rho, i.e., rho.min
=Delta*rho.max
.
min.uniquevar
A minimum value of unique variances.
tol.em
A positive scalar giving the tolerance at which the parameter in EM is considered close enough to zero to terminate the algorithm.
tol.cd
A positive scalar giving the tolerance at which the factor loadings in coordinate descent is considered close enough to zero to terminate the algorithm.
tol.bfgs
A positive scalar giving the tolerance at which the factor correlation in BFGS algorithm is considered close enough to zero to terminate the algorithm.
min.rhozero
If "TRUE"
, the minimum value of "rho"
is zero.
zita
A value of hyper-parameter of factor correlation.
progress
If "TRUE"
, the progress for each tuning parameter is displayed.
openmp
If "TRUE"
, the parallel computation via OpenMP is excecuted.
num.threads
The number of threads of the openmp. Only used when openmp
is "TRUE"
,
gamma.ebic
The value of gamma used in the extended BIC
Hirose, K. and Yamamoto, M. (2014).
Sparse estimation via nonconcave penalized likelihood in a factor analysis model,
Statistics and Computing, in press
out
and plot.fanc
objects.
#generate data
set.seed(0)
loadings0 <- matrix(c(rep(0.8,5),rep(0,5),rep(0,5),rep(0.8,5)),10,2)
common.factors0 <- matrix(rnorm(50*2),50,2)
unique.factors0 <- matrix(rnorm(50*10,sd=sqrt(0.36)),50,10)
x <- common.factors0 %*% t(loadings0) + unique.factors0
#fit data
fit <- fanc(x,2)
fit2 <- fanc(x,2,cor.factor=TRUE) #factor correlation is estimated
#print candidates of gamma and rho
print(fit)
#output for fixed tuning parameters
out(fit, rho=0.1, gamma=Inf)
#select a model via model selection criterion
select(fit, criterion="BIC", gamma=Inf)
# \donttest{
#plot solution path
plot(fit)
# }
Run the code above in your browser using DataLab