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