# CV for lb

### Description

Cross-validation method to tuning the parameter t for lb.

### Usage

1 2 3 |

### Arguments

`X` |
An n-by-p matrix of predictors |

`y` |
Response Variable |

`kappa` |
The damping factor of the Linearized Bregman Algorithm that is defined in the reference paper. See details. |

`alpha` |
Parameter in Linearized Bregman algorithm which controls the step-length of the discretized solver for the Bregman Inverse Scale Space. See details. |

`K` |
Folds number for CV. Default is 5. |

`tlist` |
Parameters t along the path. |

`nt` |
Number of t. Used only if tlist is missing. Default is 100. |

`trate` |
tmax/tmin. Used only if tlist is missing. Default is 100. |

`family` |
Response type |

`group` |
Whether to use a group penalty, Default is FALSE. |

`intercept` |
If TRUE, an intercept is included in the model (and not penalized), otherwise no intercept is included. Default is TRUE. |

`normalize` |
if TRUE, each variable is scaled to have L2 norm square-root n. Default is TRUE. |

`plot.it` |
Plot it? Default is TRUE |

`se` |
Include standard error bands? Default is TRUE |

`...` |
Additonal arguments passing to lb |

### Details

K-fold cross-validation method is used to tuning the parameter t for ISS. Mean square error is used for linear model. Miss-classification error is used for binomial and multinomial model.

### Value

A list is returned. The list contains a vector of parameter t, crossvalidation error cv.error, and the estimated standard deviation for it cv.sd

### Author(s)

Feng Ruan, Jiechao Xiong and Yuan Yao

### References

Ohser, Ruan, Xiong, Yao and Yin, Sparse Recovery via Differential Inclusions, http://arxiv.org/abs/1406.7728

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | ```
#Examples in the reference paper
library(MASS)
n = 200;p = 100;k = 30;sigma = 1
Sigma = 1/(3*p)*matrix(rep(1,p^2),p,p)
diag(Sigma) = 1
A = mvrnorm(n, rep(0, p), Sigma)
u_ref = rep(0,p)
supp_ref = 1:k
u_ref[supp_ref] = rnorm(k)
u_ref[supp_ref] = u_ref[supp_ref]+sign(u_ref[supp_ref])
b = as.vector(A%*%u_ref + sigma*rnorm(n))
cv.lb(A,b,10,1/20,intercept = FALSE,normalize = FALSE)
#Simulated data, binomial case
X <- matrix(rnorm(500*100), nrow=500, ncol=100)
alpha <- c(rep(1,30), rep(0,70))
y <- 2*as.numeric(runif(500)<1/(1+exp(-X %*% alpha)))-1
cv.lb(X,y,kappa=5,alpha=1,family="binomial",
intercept=FALSE,normalize = FALSE)
``` |