Compute the penalty function for nonconvex penalties.
penalty_function( theta = seq(-5, 5, length.out = 1e+05), penalty = "atan", lambda = 1, gamma = c(0.01, 0.05) )
theta | Numeric vector. Values for which the derivative is computed. |
---|---|
penalty | Character string. Which penalty should be
used (defaults to |
lambda | Numeric. Regularization parameter (defaults to |
gamma | Numeric vector. Hyperparameter(s) for the penalty function |
A list of class penalty_function
, including the following:
deriv
: Data frame including the penalty function,
theta, gamma, and the chosen penalty.
Some care is required for specifying gamma
. For example,
the default value for scad
is 3.7 and it must be some
value greater than 2 (Fan and Li 2001)
. The
default values in GGMncv are set to recommended values in the
respective papers.
Fan J, Li R (2001). “Variable selection via nonconcave penalized likelihood and its oracle properties.” Journal of the American statistical Association, 96(456), 1348--1360.
func <- penalty_function(theta = seq(-5,5,length.out = 10000), lambda = 1, gamma = c(0.01, 0.05, 0.1)) head(func$pen) #> pen thetas gamma penalty #> 1 1.014415 -5.000000 0.01 atan #> 2 1.014414 -4.999000 0.01 atan #> 3 1.014414 -4.998000 0.01 atan #> 4 1.014414 -4.997000 0.01 atan #> 5 1.014414 -4.996000 0.01 atan #> 6 1.014413 -4.994999 0.01 atan