R: Aggregate cross-validation results

aggregate.cv {cvTools} | R Documentation

## Aggregate cross-validation results

### Description

Compute summary statistics of results from repeated K-fold cross-validation.

### Usage

      ## S3 method for class 'cv'
     aggregate(x, FUN = mean, select = NULL,
        ...)

      ## S3 method for class 'cvSelect'
     aggregate(x, FUN = mean,
        select = NULL, ...)

      ## S3 method for class 'cvTuning'
     aggregate(x, ...)

### Arguments

`x` | an object inheriting from class `"cv"` or `"cvSelect"` that contains cross-validation results (note that the latter includes objects of class `"cvTuning"`).
`FUN` | a function to compute the summary statistics.
`select` | a character, integer or logical vector indicating the columns of cross-validation results for which to compute the summary statistics.
`...` | for the `"cvTuning"` method, additional arguments to be passed to the `"cvSelect"` method. Otherwise additional arguments to be passed to `FUN`.

### Value

The `"cv"` method returns a vector or matrix of aggregated cross-validation results, depending on whether `FUN` returns a single value or a vector.

For the other methods, a data frame containing the aggregated cross-validation results for each model is returned. In the case of the `"cvTuning"` method, the data frame contains the combinations of tuning parameters rather than a column describing the models.

### Author(s)

Andreas Alfons

### See Also

`cvFit`, `cvSelect`, `cvTuning`, `aggregate`

### Examples

    library("robustbase")
    data("coleman")
    set.seed(1234)  # set seed for reproducibility

    ## set up folds for cross-validation
    folds <- cvFolds(nrow(coleman), K = 5, R = 10)

    ## compare raw and reweighted LTS estimators for
    ## 50% and 75% subsets

    # 50% subsets
    fitLts50 <- ltsReg(Y ~ ., data = coleman, alpha = 0.5)
    cvFitLts50 <- cvLts(fitLts50, cost = rtmspe, folds = folds,
        fit = "both", trim = 0.1)

    # 75% subsets
    fitLts75 <- ltsReg(Y ~ ., data = coleman, alpha = 0.75)
    cvFitLts75 <- cvLts(fitLts75, cost = rtmspe, folds = folds,
        fit = "both", trim = 0.1)

    # combine results into one object
    cvFitsLts <- cvSelect("0.5" = cvFitLts50, "0.75" = cvFitLts75)
    cvFitsLts

    # summary of the results with the 50% subsets
    aggregate(cvFitLts50, summary)
    # summary of the combined results
    aggregate(cvFitsLts, summary)

    ## evaluate MM regression models tuned for
    ## 80%, 85%, 90% and 95% efficiency
    tuning <- list(tuning.psi=c(3.14, 3.44, 3.88, 4.68))

    # set up function call
    call <- call("lmrob", formula = Y ~ .)
    # perform cross-validation
    cvFitsLmrob <- cvTuning(call, data = coleman,
        y = coleman$Y, tuning = tuning, cost = rtmspe,
        folds = folds, costArgs = list(trim = 0.1))
    cvFitsLmrob

    # summary of results
    aggregate(cvFitsLmrob, summary)

[Package cvTools version 0.3.2 Index]