I am facing a similar issue and found the above helpful. I have a couple of follow up questions if you don't mind (for both Ashwini_uci and lvm): Is the cut point I now get model-based vs. observed? In other words, are we in essence back-calculating the cut point(s) as opposed to being able to match each observation in the OUTROC dataset back to the observed data that were tested to produced the sensitivity and specificity in the first place? Noticed log(e) was used to calculate the logit. Any reason for selecting that base vs log(10) instead? Also just to add a possible solution if not just looking for a single "best" cut point, I received this code from a SAS consultant who I was connected with when I contacted SAS Support directly: Hi David: If you have just a single X variable then you could solve for it. Something like this would work: data test; seed=2534565; do i=1 to 20; x1=ranuni(seed); logit=-2 + 2*x1; p=exp(-logit)/(1+exp(-logit)); if ranuni(seed)>p then y=1; else y=0; output; end; drop seed i p logit; run; proc logistic data=test outest=parms(keep=intercept x1); model y=x1/ outroc=out1; run; data cutpoints; set out1; if _n_=1 then set parms; x1_cut=(log(_prob_/(1-_prob_))-intercept)/x1; proc print data=cutpoints; var _sensit_ _1MSPEC_ _prob_ x1_cut; run; Sincerely, Rob Agnelli Principal Technical Support Statistician SAS Thanks, David
... View more