Skip to contents

The following arguments can be used to adjust the GLMNET optimization. See Friedman, J., Hastie, T., & Tibshirani, R. (2010). Regularization Paths for Generalized Linear Models via Coordinate Descent. Journal of Statistical Software, 33(1), 1–20. https://doi.org/10.18637/jss.v033.i01 Yuan, G.-X., Ho, C.-H., & Lin, C.-J. (2012). An improved GLMNET for l1-regularized logistic regression. The Journal of Machine Learning Research, 13, 1999–2030. https://doi.org/10.1145/2020408.2020421

Usage

controlGLMNET(
  tryCpptsem = TRUE,
  forceCpptsem = FALSE,
  stepSize = 1,
  lineSearch = "GLMNET",
  c1 = 1e-04,
  c2 = 0.9,
  sig = 10^(-5),
  gam = 0,
  initialHessianApproximation = "OpenMx",
  maxIter_out = 100,
  maxIter_in = 1000,
  maxIter_line = 500,
  eps_out = 1e-06,
  eps_in = 1e-06,
  eps_WW = 1e-04,
  approxFirst = TRUE,
  numStart = 0,
  nMultistart = 5,
  controlApproxOptimizer = controlRsolnp(nudgeVariancesLambda = 0.2, nudgeVariancesTarget
    = log(0.4), control = list(outer.iter = 50, trace = 0))
)

Arguments

tryCpptsem

should regCtsem try to translate the model to cpptsem? This can speed up the computation considerably but might fail for some models

forceCpptsem

should cpptsem be enforced even if results differ from ctsem? Sometimes differences between cpptsem and ctsem can result from problems with numerical precision which will lead to the m,atrix exponential of RcppArmadillo differing from the OpenMx matrix exponential. If you want to ensure the faster optimization, set to TRUE. See vignette("MatrixExponential", package = "regCtsem") for more details

stepSize

initial step size of the outer iteration

lineSearch

String indicating which linesearch should be used. Defaults to the one described in Yuan, G.-X., Ho, C.-H., & Lin, C.-J. (2012). An improved GLMNET for l1-regularized logistic regression. The Journal of Machine Learning Research, 13, 1999–2030. https://doi.org/10.1145/2020408.2020421. Alternatively (not recommended) Wolfe conditions (lineSearch = "Wolfe") can be used in the outer iteration. Setting to "none" is also not recommended!.

c1

c1 constant for lineSearch. This constant controls the Armijo condition in lineSearch if lineSearch = "Wolfe"

c2

c2 constant for lineSearch. This constant controls the Curvature condition in lineSearch if lineSearch = "Wolfe"

sig

for lineSearch = 'GLMNET': Controls the sigma parameter in Yuan, G.-X., Ho, C.-H., & Lin, C.-J. (2012). An improved GLMNET for l1-regularized logistic regression. The Journal of Machine Learning Research, 13, 1999–2030. https://doi.org/10.1145/2020408.2020421, Equation 20. Defaults to 0. Has to be in 0 < sigma < 1

gam

for lineSearch = 'GLMNET': Controls the gamma parameter in Yuan, G.-X., Ho, C.-H., & Lin, C.-J. (2012). An improved GLMNET for l1-regularized logistic regression. The Journal of Machine Learning Research, 13, 1999–2030. https://doi.org/10.1145/2020408.2020421, Equation 20. Defaults to 0. Has to be in 0 <= gamma < 1

initialHessianApproximation

Which initial hessian approximation should be used? Possible are: 'ident' for an identity matrix and 'OpenMx' (here the hessian approxmiation from the mxObject is used). If the Hessian from 'OpenMx' is not positive definite, the negative Eigenvalues will be 'flipped' to positive Eigenvalues. This works sometimes, but not always. Alternatively, a matrix can be provided which will be used as initial Hessian

maxIter_out

Maximal number of outer iterations

maxIter_in

Maximal number of inner iterations

maxIter_line

Maximal number of iterations for the lineSearch procedure

eps_out

Stopping criterion for outer iterations

eps_in

Stopping criterion for inner iterations

eps_WW

Stopping criterion for weak Wolfe line search. If the upper - lower bound of the interval is < epsWW, line search will be stopped and stepSize will be returned

approxFirst

Should approximate optimization be used first to obtain start values for exact optimization?

numStart

Used if approxFirst = 3. regCtsem will try numStart+2 starting values (+2 because it will always try the current best and the parameters provided in sparseParameters)

nMultistart

controls how many different starting values are tried when estimating lambda_max´

controlApproxOptimizer

settings passed to the optimizer in approximate optimization. Currently, Rsolnp and optimx are supported. See ?controlOptimx and ?controlSolnp for details on the lists passed to controlApprox