Learn R Programming

gbm (version 1.3-5)

calibrate.plot: Calibration plot

Description

An experimental diagnostic tool that plots the fitted values versus the actual average values. Currently developed for only distribution="bernoulli".

Usage

calibrate.plot(y,p,
               distribution="bernoulli",
               replace=TRUE,
               line.par=list(col="black"),
               shade.col="lightyellow",
               shade.density=NULL,
               rug.par=list(side=1),
               xlab="Predicted value",
               ylab="Observed average",
               xlim=NULL,ylim=NULL,
               ...)

Arguments

y
the outcome 0-1 variable
p
the predictions estimating E(y|x)
distribution
the loss function used in creating p. bernoulli and poisson are currently the only special options. All others default to squared error assuming
replace
determines whether this plot will replace or overlay the current plot. replace=FALSE is useful for comparing the calibration of several methods
line.par
graphics parameters for the line
shade.col
color for shading the 2 SE region. shade.col=NA implies no 2 SE region
shade.density
the density parameter for polygon
rug.par
graphics parameters passed to rug
xlab
x-axis label corresponding to the predicted values
ylab
y-axis label corresponding to the observed average
xlim,ylim
x and y-axis limits. If not specified te function will select limits
...
other graphics parameters passed on to the plot function

Value

  • calibrate.plot returns no values.

Details

Uses gam to estimate E(y|p). Well-calibrated predictions imply that E(y|p) = p. The plot also includes a pointwise 95band.

References

J.F. Yates (1982). "External correspondence: decomposition of the mean probability score," Organisational Behaviour and Human Performance 30:132-156.

D.J. Spiegelhalter (1986). "Probabilistic Prediction in Patient Management and Clinical Trials," Statistics in Medicine 5:421-433.

Examples

Run this code
library(rpart)
data(kyphosis)
y <- as.numeric(kyphosis$Kyphosis)-1
x <- kyphosis$Age
glm1 <- glm(y~poly(x,2),family=binomial)
p <- predict(glm1,type="response")
calibrate.plot(y, p, xlim=c(0,0.6), ylim=c(0,0.6))

Run the code above in your browser using DataLab