layover - 10 months ago 57

R Question

I want to create a roc object by using the function 'roc' of pROC package in R, and plot the roc object. However, I am uncertain what the 'direction' argument does. the median predictor values of my controls is smaller than the median predictor value of the cases. so I think the correct direction should be '<'. But if I plot it with direction argument '>'. it just flipped the ROC curve across the diagonal line as a mirror image. I am wondering in this situation that, data telling you 1 thing, and the argument is coercing a different direction, what is being compared to what, and how is the comparison made? I read through the pROC manual on this function for the argument 'direction', and the explanation is very brief and unclear.

Hope to hear some of your input!

Answer Source

What the `direction`

argument does is to determine how the negativity (or positivity) of an observation is determined.

To compute sensitivity and specificity at a threshold *t*, you must compare it with each of the observation *o_i*. With `direction="<"`

, *o_i* will be considered positive if *o_i* >= *t*, negative otherwise. With `direction=">"`

, *o_i* will be considered positive if *o_i* <= *t*, negative otherwise.

If you want to look at the source code, check out the `roc.utils.perfs.all.safe`

function.

So when you changed the *direction* of your ROC curve, you essentially reversed all the positive and negative predictions, which is equivalent to reversing the ROC curve.