Learn R Programming

caret (version 6.0-73)

plotObsVsPred: Plot Observed versus Predicted Results in Regression and Classification Models

Description

This function takes an object (preferably from the function extractPrediction) and creates a lattice plot. For numeric outcomes, the observed and predicted data are plotted with a 45 degree reference line and a smoothed fit. For factor outcomes, a dotplot plot is produced with the accuracies for the different models.

Usage

plotObsVsPred(object, equalRanges = TRUE, ...)

Arguments

object
an object (preferably from the function extractPrediction. There should be columns named obs, pred, model (e.g. "rpart", "nnet" etc.) and dataType (e.g. "Training", "Test" etc)
equalRanges
a logical; should the x- and y-axis ranges be the same?
...
parameters to pass to xyplot or dotplot, such as auto.key

Value

A lattice object. Note that the plot has to be printed to be displayed (especially in a loop).

Details

If the call to extractPrediction included test data, these data are shown, but if unknowns were also included, they are not plotted

Examples

Run this code

## Not run: 
# # regression example
# data(BostonHousing)
# rpartFit <- train(BostonHousing[1:100, -c(4, 14)], 
#                   BostonHousing$medv[1:100], 
#                   "rpart", tuneLength = 9)
# plsFit <- train(BostonHousing[1:100, -c(4, 14)], 
#                 BostonHousing$medv[1:100], 
#                 "pls")
# 
# predVals <- extractPrediction(list(rpartFit, plsFit), 
#                               testX = BostonHousing[101:200, -c(4, 14)], 
#                               testY = BostonHousing$medv[101:200], 
#                               unkX = BostonHousing[201:300, -c(4, 14)])
# 
# plotObsVsPred(predVals)
# 
# 
# #classification example
# data(Satellite)
# numSamples <- dim(Satellite)[1]
# set.seed(716)
# 
# varIndex <- 1:numSamples
# 
# trainSamples <- sample(varIndex, 150)
# 
# varIndex <- (1:numSamples)[-trainSamples]
# testSamples <- sample(varIndex, 100)
# 
# varIndex <- (1:numSamples)[-c(testSamples, trainSamples)]
# unkSamples <- sample(varIndex, 50)
# 
# trainX <- Satellite[trainSamples, -37]
# trainY <- Satellite[trainSamples, 37]
# 
# testX <- Satellite[testSamples, -37]
# testY <- Satellite[testSamples, 37]
# 
# unkX <- Satellite[unkSamples, -37]
# 
# knnFit  <- train(trainX, trainY, "knn")
# rpartFit <- train(trainX, trainY, "rpart")
# 
# predTargets <- extractPrediction(list(knnFit, rpartFit), 
#                                  testX = testX, 
#                                  testY = testY, 
#                                  unkX = unkX)
# 
# plotObsVsPred(predTargets)
# ## End(Not run)

Run the code above in your browser using DataLab