R: Plot cross-validation results

plot.cv {cvTools} | R Documentation

## Plot cross-validation results

### Description

Plot results from (repeated) K-fold cross-validation.

### Usage

      ## S3 method for class 'cv'
     plot(x,
        method = c("bwplot", "densityplot", "xyplot", "dotplot"),
        ...)

      ## S3 method for class 'cvSelect'
     plot(x,
        method = c("bwplot", "densityplot", "xyplot", "dotplot"),
        ...)

### Arguments

`x` | an object inheriting from class `"cv"` or `"cvSelect"` that contains cross-validation results.
`method` | a character string specifying the type of plot. For the `"cv"` method, possible values are `"bwplot"` to create a box-and-whisker plot via `bwplot` (the default), or `"densityplot"` to create a kernel density plot via `densityplot`. Note that those plots are only meaningful for results from repeated cross-validation. For the `"cvSelect"` method, there are two additional possibilities: `"xyplot"` to plot the (average) results for each model via `xyplot`, or `"dotplot"` to create a similar dot plot via `dotplot`. The default is to use `"bwplot"` for results from repeated cross-validation and `"xyplot"` otherwise. In any case, partial string matching allows supply abbreviations of the accepted values.
`...` | additional arguments to be passed down.

### Details

For objects with multiple columns of cross-validation results, conditional plots are produced.

### Value

An object of class `"trellis"` is returned invisibly. The `update` method can be used to update components of the object and the `print` method (usually called by default) will plot it on an appropriate plotting device.

### Author(s)

Andreas Alfons

### See Also

`cvFit`, `cvSelect`, `cvTuning`, `bwplot`, `densityplot`, `xyplot`, `dotplot`

### 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 = 50)

    ## compare LS, MM and LTS regression

    # perform cross-validation for an LS regression model
    fitLm <- lm(Y ~ ., data = coleman)
    cvFitLm <- cvLm(fitLm, cost = rtmspe,
        folds = folds, trim = 0.1)

    # perform cross-validation for an MM regression model
    fitLmrob <- lmrob(Y ~ ., data = coleman, k.max = 500)
    cvFitLmrob <- cvLmrob(fitLmrob, cost = rtmspe,
        folds = folds, trim = 0.1)

    # perform cross-validation for an LTS regression model
    fitLts <- ltsReg(Y ~ ., data = coleman)
    cvFitLts <- cvLts(fitLts, cost = rtmspe,
        folds = folds,  trim = 0.1)

    # combine results into one object
    cvFits <- cvSelect(LS = cvFitLm, MM = cvFitLmrob, LTS = cvFitLts)
    cvFits

    # plot results for the MM regression model
    plot(cvFitLmrob, method = "bw")
    plot(cvFitLmrob, method = "density")

    # plot combined results
    plot(cvFits, method = "bw")
    plot(cvFits, method = "density")
    plot(cvFits, method = "xy")
    plot(cvFits, method = "dot")

    ## 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

    # plot combined results
    plot(cvFitsLts, method = "bw")
    plot(cvFitsLts, method = "density")
    plot(cvFitsLts, method = "xy")
    plot(cvFitsLts, method = "dot")

[Package cvTools version 0.3.2 Index]