cv.edgenet {netReg} | R Documentation

## Find the optimal shrinkage parameters for edgenet

### Description

Finds the optimal shrinkage parameters using cross-validation for edgenet. We use the BOBYQA algorithm to find the optimial regularization parameters and coordinate descent in order to minimize the objective function of the linear model.

### Usage

    cv.edgenet(X, Y, G.X = NULL, G.Y = NULL, lambda = NULL, psigx = NULL,
      psigy = NULL, thresh = 1e-05, maxit = 1e+05, family = c("gaussian"),
      optim.epsilon = 0.001, optim.maxit = 10000, nfolds = 10)

### Arguments

`X` | input matrix, of dimension (`n` x `p`) where `n` is the number of observations and `p` is the number of covariables. Each row is an observation vector.
`Y` | output matrix, of dimension (`n` x `q`) where `n` is the number of observations and `q` is the number of response variables Each row is an observation vector.
`G.X` | non-negativ affinity matrix for `n`, of dimensions (`p` x `p`) where `p` is the number of covariables `X`. Providing a graph `G.X` will optimize the regularization parameter `psi.gx`. If this is not desired just set `G.X` to `NULL`.
`G.Y` | non-negativ affinity matrix for `n`, of dimensions (`q` x `q`) where `q` is the number of responses `Y`. Providing a graph `G.Y` will optimize the regularization parameter `psi.gy`. If this is not desired just set `G.Y` to `NULL`.
`lambda` | `numerical` shrinkage parameter for LASSO. Per default this parameter is set to `NULL` which means that `lambda` is going to be estimated using cross-validation. If any `numerical` value for `lambda` is set, estimation of the optimal parameter will not be conducted.
`psigx` | `numerical` shrinkage parameter for graph-regularization of `G.X`. Per default this parameter is set to `NULL` which means that `psigx` is going to be estimated in the cross-validation. If any `numerical` value for `psigx` is set, estimation of the optimal parameter will not be conducted.
`psigy` | `numerical` shrinkage parameter for graph-regularization of `G.Y`. Per default this parameter is set to `NULL` which means that `psigy` is going to be estimated in the cross-validation. If any `numerical` value for `psigy` is set, estimation of the optimal parameter will not be conducted.
`thresh` | `numerical` threshold for coordinate descent
`maxit` | maximum number of iterations for the coordinate descent (`integer`)
`family` | family of response, e.g. gaussian
`optim.epsilon` | `numerical` threshold criterion for the optimization to stop. Usually 1e-3 is a good choice.
`optim.maxit` | the maximum number of iterations for the optimization (`integer`). Usually 1e4 is a good choice.
`nfolds` | the number of folds to be used - default is 10 (minimum 3, maximum `nrow(X)`).

### Value

An object of class `cv.edgenet`

`call` | the call that produced the object
`lambda` | the estimated (`p` x `q`)-dimensional coefficient matrix B.hat
`psigx` | the estimated (`q` x `1`)-dimensional vector of intercepts
`psigy` | the estimated (`q` x `1`)-dimensional vector of intercepts

### References

Dirmeier, Simon and Fuchs, Christiane and Mueller, Nikola S and Theis, Fabian J (2018), netReg: Network-regularized linear models for biological association studies.
Friedman J., Hastie T., Hoefling H. and Tibshirani R. (2007), Pathwise coordinate optimization.
The Annals of Applied Statistics
Friedman J., Hastie T. and Tibshirani R. (2010), Regularization Paths for Generalized Linear Models via Coordinate Descent.
Journal of Statistical Software
Fu W. J. (1998), Penalized Regression: The Bridge Versus the Lasso.
Journal of Computational and Graphical Statistics
Cheng W. and Wang W. (2014), Graph-regularized dual Lasso for robust eQTL mapping.
Bioinformatics
Powell M.J.D. (2009), The BOBYQA algorithm for bound constrained optimization without derivatives.
http://www.damtp.cam.ac.uk/user/na/NA_papers/NA2009_06.pdf

### Examples

    X <- matrix(rnorm(100*10), 100, 10)
    b <- rnorm(10)
    G.X <- matrix(rpois(10*10,1),10)
    G.X <- t(G.X) + G.X
    diag(G.X) <- 0

    # fit a Gaussian model
    Y <- X%*%b + rnorm(100)
    cv.edge <- cv.edgenet(X=X, Y=Y, G.X=G.X, family="gaussian")

[Package netReg version 1.4.0 Index]