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=Inf
yields soft threshold operator (i.e., lasso penalty) andgamma=+1
produces 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.
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
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)