Function to compute and draw ROC-curves.
Computes sensitivity, specificity and positive and negative predictive
values for a test based on dichotomizing along the variable
test
, for prediction of stat
. Plots curves of these and a ROC-curve.
ROC( test = NULL, stat = NULL, form = NULL, plot = c("sp", "ROC"), PS = is.null(test), PV = TRUE, MX = TRUE, MI = TRUE, AUC = TRUE, grid = seq(0,100,10), col.grid = gray( 0.9 ), cuts = NULL, lwd = 2, data = parent.frame(), ... )
test |
Numerical variable used for prediction. |
stat |
Logical variable of true status. |
form |
Formula used in a logistic regression. If this is given,
|
plot |
Character variable. If "sp", the a plot of sensitivity, specificity and predictive values against test is produced, if "ROC" a ROC-curve is plotted. Both may be given. |
PS |
logical, if TRUE the x-axis in the
plot "ps"-plot is the the predicted probability for
|
PV |
Should sensitivity, specificity and predictive values at the optimal cutpoint be given on the ROC plot? |
MX |
Should the “optimal cutpoint” (i.e. where sens+spec is maximal) be indicated on the ROC curve? |
MI |
Should model summary from the logistic regression model be printed in the plot? |
AUC |
Should the area under the curve (AUC) be printed in the ROC plot? |
grid |
Numeric or logical. If FALSE no background grid is
drawn. Otherwise a grid is drawn on both axes at |
col.grid |
Colour of the grid lines drawn. |
cuts |
Points on the test-scale to be annotated on the ROC-curve. |
lwd |
Thickness of the curves |
data |
Data frame in which to interpret the variables. |
... |
Additional arguments for the plotting of the
ROC-curve. Passed on to |
As an alternative to a test
and a status
variable, a
model formula may given, in which case the the linear predictor is the
test variable and the response is taken as the true status variable.
The test used to derive sensitivity, specificity, PV+ and PV- as a
function of x is test
>=x as a predictor of
stat
=TRUE.
A list with two components:
res |
dataframe with variables |
lr |
glm object with the logistic regression result used for construction of the ROC curve |
0, 1 or 2 plots are produced according to the setting of plot
.
Bendix Carstensen, Steno Diabetes Center \& University of Copenhagen, http://bendixcarstensen.com
x <- rnorm( 100 ) z <- rnorm( 100 ) w <- rnorm( 100 ) tigol <- function( x ) 1 - ( 1 + exp( x ) )^(-1) y <- rbinom( 100, 1, tigol( 0.3 + 3*x + 5*z + 7*w ) ) ROC( form = y ~ x + z, plot="ROC" )
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.