layover layover - 27 days ago 6
R Question

What does coercing the "direction" argument input in roc function (package pROC in R) do exactly?

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

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.