| fanc {fanc} | R Documentation |
fanc (penalized maximum likelihood factor analysis via nonconvex penalties)
Description
This package computes the solution path of penalized maximum likelihood estimates via MC+ penalties.
Usage
fanc(x, factors, n.obs, rho, gamma, cor.factor=FALSE, normalize=TRUE,
normalize.penalty=FALSE, covmat, type="MC", model="FA", control=list())
Arguments
x |
A data matrix. |
factors |
The number of factors. |
cor.factor |
An indicator of the factor correlation. If |
normalize |
If |
normalize.penalty |
If |
rho |
The values of rho. It can be a scalar or a matrix. |
gamma |
The values of gamma. It must be a vector. |
covmat |
A covariance matrix, which is needed if the data matrix |
n.obs |
The number of observations, which is needed to calculate the model selection criteria and goodness-of-fit indices when the data matrix |
type |
Type of penalty. If |
model |
Type of model. |
control |
A list of control parameters. See ‘Details’. |
Details
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=Infyields soft threshold operator (i.e., lasso penalty) andgamma=+1produces hard threshold operator. - max.rho
-
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.
etamust 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
rhois large,ncand.initial.prenetmust 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
openmpis"TRUE", gamma.ebic-
The value of gamma used in the extended BIC
Value
loadings |
factor loadings |
uniquenesses |
unique variances |
Phi |
factor correlation |
rho |
rho |
AIC |
AIC |
BIC |
BIC |
CAIC |
CAIC |
df |
degrees of freedom (number of non-zero parameters for the lasso estimation) |
criteria |
values of AIC, BIC and CAIC |
goodness.of.fit |
values of GFI and AGFI |
gamma |
a value of gamma |
Npflag |
If the number of observation is larger than the number of variables, 1, otherwise 0. |
factors |
the number of factors |
cor.factor |
An indicator of the factor correlation |
x |
data matrix |
convergence |
indicator of convergence of EM algorithm, coordinate descent and BFGS. If all of these variables are 0, the algorithm has been converged |
Author(s)
Kei Hirose
mail@keihirose.com
References
Hirose, K. and Yamamoto, M. (2014).
Sparse estimation via nonconcave penalized likelihood in a factor analysis model,
Statistics and Computing, in press
See Also
out and plot.fanc objects.
Examples
#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)
#plot solution path
plot(fit)