> On Jun 26, 2017, at 11:40 AM, Brian Smith <bsmith030...@gmail.com> wrote: > > Hi, > > I was trying to draw some ROC curves (prediction of case/control status), > but seem to be getting a somewhat jagged plot. Can I do something that > would 'smooth' it somewhat? Most roc curves seem to have many incremental > changes (in x and y directions), but my plot only has 4 or 5 steps even > though there are 22 data points. Should I be doing something differently? > > How can I provide a URL/attachment for my plot? Not sure if I can provide > reproducible code, but here is some pseudocode, let me know if you'd like > more details: > > ##### > ## generate roc and auc values > ##### > library(pROC) > library(AUCRF) > > getROC <- function(d1train,d1test){ > my_model <- AUCRF(formula= status ~ ., data=d1train, > ranking='MDA',ntree=1000,pdel=0.05) > my_opt_model <- my_model$RFopt > > my_probs <- predict(my_opt_model, d1test, type = 'prob') > my_roc <- roc(d1test[,resp_col] ~ my_probs[,2]) > aucval <- round(as.numeric(my_roc$auc),4) > return(my_roc) > } > > > roc_1 <- getROC(dat1,dat1test) > plot.roc(roc_1,col="brown3") > > >> roc_1 > > Call: > roc.formula(formula = d1test[, resp_col] ~ ibd_probs[, 2]) > > Data: ibd_probs[, 2] in 3 controls (d1test[, resp_col] 0) < 19 cases > (d1test[, resp_col] 1). > Area under the curve: 0.8596 > > >> roc_1$sensitivities > [1] 1.00000000 0.94736842 0.94736842 0.94736842 0.89473684 0.84210526 > 0.78947368 0.73684211 0.68421053 0.68421053 > [11] 0.63157895 0.57894737 0.52631579 0.47368421 0.42105263 0.36842105 > 0.31578947 0.26315789 0.21052632 0.15789474 > [21] 0.10526316 0.05263158 0.00000000 > > >> roc_1$specificities > [1] 0.0000000 0.0000000 0.3333333 0.6666667 0.6666667 0.6666667 0.6666667 > 0.6666667 0.6666667 1.0000000 1.0000000 > [12] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 > 1.0000000 1.0000000 1.0000000 1.0000000 > [23] 1.0000000 > > > many thanks!
ROC curves are typically step functions of some nature, depending upon your thresholds, so the default behavior is not going to be smoothed. I am not sure how they (AUCRF and pROC) may interact, but look at the ?smooth function in the latter package to see if it might help. To your second point, if your plot is a png/jpg file, you could attach it to your post here, if that was your desire. Otherwise, you could post it to a cloud based repository, like Dropbox, and provide the URL for public sharing here. The R lists support limited binary attachment types and png/jpg/pdf/ps are supported. Regards, Marc Schwartz ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.