# ROC: Function to compute and draw ROC-curves. In Epi: A Package for Statistical Analysis in Epidemiology

## Description

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.

## Usage

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 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(), ... )

## Arguments

 test Numerical variable used for prediction. stat Logical variable of true status. form Formula used in a logistic regression. If this is given, test and stat are ignored. If not given then both test and stat must be supplied. 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 stat==TRUE, otherwise it is the scale of test if this is given otherwise the scale of the linear predictor from the logistic regression. 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 grid percent. 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 plot

## Details

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.

## Value

A list with two components:

 res dataframe with variables sens, spec, pvp, pvn and name of the test variable. The latter is the unique values of test or linear predictor from the logistic regression in ascending order with -Inf prepended. Since the sensitivity is defined as P(test>x)|status=TRUE, the first row has sens equal to 1 and spec equal to 0, corresponding to drawing the ROC curve from the upper right to the lower left corner. 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.

## Author(s)

Bendix Carstensen, Steno Diabetes Center \& University of Copenhagen, http://BendixCarstensen.com

## Examples

 1 2 3 4 5 6 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" )

### Example output

Attaching package: 'Epi'

The following object is masked from 'package:base':

merge.data.frame

Epi documentation built on May 15, 2018, 5:05 p.m.