Shrink regression coefficients using a Crossvalidationderived shrinkage factor.
1 
dataset 
a dataset for regression analysis. Data should be in the form
of a matrix, with the outcome variable as the final column. Application of the

model 
type of regression model. Either "linear" or "logistic". 
k 
the number of crossvalidation folds. This number must be within the range 1 < k <= 0.5 * number of observations 
nreps 
the number of times to replicate the crossvalidation process. 
sdm 
a shrinkage design matrix. For examples, see 
int 
logical. If TRUE the model will include a regression intercept. 
int.adj 
logical. If TRUE the regression intercept will be reestimated after shrinkage of the regression coefficients. 
This function applies kfold crossvalidation to a dataset in order to derive a shrinkage factor and apply it to the regression coefficients. Data is randomly partitioned into k equally sized sets. One set is used as a validation set, while the remaining data is used as a training set. Regression coefficients are estimated in the training set, and then a shrinkage factor is estimated using the validation set. This process is repeated so that each partitioned set is used as the validation set once, resulting in k folds. The mean of k shrinkage factors is then applied to the original regression coeffients, and the regression intercept may be reestimated. This process is repeated nreps times and the mean of the regression coefficients is returned.
This process can currently be applied to linear or logistic regression models.
kcrossval
returns a list containing the following:
raw.coeff 
the raw regression model coefficients, preshrinkage. 
shrunk.coeff 
the shrunken regression model coefficients. 
lambda 
the mean shrinkage factor over nreps crossvalidation replicates. 
nFolds 
the number of crossvalidation folds. 
nreps 
the number of crossvalidation replicates. 
sdm 
the shrinkage design matrix used to apply the shrinkage factor(s) to the regression coefficients. 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  ## Example 1: Linear regression using the iris dataset
## 2fold Crossvalidationderived shrinkage with 50 reps
data(iris)
iris.data < as.matrix(iris[, 1:4])
iris.data < cbind(1, iris.data)
sdm1 < matrix(c(0, 1, 1, 1), nrow = 1)
kcrossval(dataset = iris.data, model = "linear", k = 2,
nreps = 50, sdm = sdm1, int = TRUE, int.adj = TRUE)
## Example 2: logistic regression using a subset of the mtcars data
## 10fold CVderived shrinkage (uniform shrinkage and intercept reestimation)
data(mtcars)
mtc.data < cbind(1,datashape(mtcars, y = 8, x = c(1, 6, 9)))
head(mtc.data)
set.seed(321)
kcrossval(dataset = mtc.data, model = "logistic",
k = 10, nreps = 10)

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
All documentation is copyright its authors; we didn't write any of that.