BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
AlexV
Calcite | Level 5

Good day,

I am recent SAS user and kind of overwhelmed by various options.

Please, suggest right approach for (probably) standard modelling task below.

1. In PROC LOGISTIC,  is there way to specify AUC (or c-statistics?) as

criteria for attribute removal/inclusion in forward/backward/step-wise

model optimization?

2. In PROC LOGISTIC, is there way to specify internal k-fold self-split

cross-validation in dataset

3. If these options are not available directly in PROC LOGISTIC,

are there frameworks / macros / code examples for

the following (e.g. backward) attribute selection process:

-*- for given dataset

-*-*- loop until no improvement to AUC

-*-*-*- loop all "current_attribute_set"

-*-*-*-*- remove attribute

-*-*-*-*- loop (e.g.) 10 times with stratified 10-fold train-test split

-*-*-*-*-*- run LOGISTIC(no_selection) in train set and Score test set

-*-*-*-*- combine all 10 test sets and get AUC (or c-statistics?)

-*-*-*- select best AUC and adjust "current_attribute_set" (IF there is an improvement!)

I found several relevant articles, but not a direct example:

SAS Programming for Data Mining: AUC calculation using Wilcoxon Rank Sum Test

41364 - ROC analysis for binary response models fit in the GLIMMIX, NLMIXED, GAM or other procedures

39724 - ROC analysis using validation data and crossvalidation

http://www2.sas.com/proceedings/sugi27/p248-27.pdf

Thanks in advance,

Alex.

1 ACCEPTED SOLUTION

Accepted Solutions
StatDave
SAS Super FREQ

PROC LOGISTIC does not offer effect selection based on AUC, nor k-fold crossvalidation.  However, LOGISTIC uses a 'leave one out' crossvalidation approximation when the CTABLE option is specified.  See the "Details: Classification Table" section of the LOGISTIC documentation.  Predicted probabilities based on this approximation are available using the PREDPROBS=X option in the OUTPUT statement.  Note that k-fold crossvalidation is available in GLIMMIX and ADAPTIVEREG as mentioned in this note:

   22220 - Procedures with bootstrapping, crossvalidation, or jackknifing capabilities

Note that ADAPTIVEREG can also fit a logistic model (using multivariate adaptive regression splines) and offers effect selection and k-fold crossvalidation.  See its documentation for details and examples.

View solution in original post

3 REPLIES 3
StatDave
SAS Super FREQ

PROC LOGISTIC does not offer effect selection based on AUC, nor k-fold crossvalidation.  However, LOGISTIC uses a 'leave one out' crossvalidation approximation when the CTABLE option is specified.  See the "Details: Classification Table" section of the LOGISTIC documentation.  Predicted probabilities based on this approximation are available using the PREDPROBS=X option in the OUTPUT statement.  Note that k-fold crossvalidation is available in GLIMMIX and ADAPTIVEREG as mentioned in this note:

   22220 - Procedures with bootstrapping, crossvalidation, or jackknifing capabilities

Note that ADAPTIVEREG can also fit a logistic model (using multivariate adaptive regression splines) and offers effect selection and k-fold crossvalidation.  See its documentation for details and examples.

AlexV
Calcite | Level 5

Thanks a lot , StatDev.

Your links will definitely help me

to use solid existing code and not to invent bicycle 🙂

With best regards,

Alex.

PieterS
Calcite | Level 5

Dear,

 

I am using SAS 9.4.

Using Proc Logistic, predprobs=crossvalidate, is it possible to output or estimate a single prediction error?

 

How could I generate such output?

 

Kind regards,

 

 

 

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 3 replies
  • 15125 views
  • 4 likes
  • 3 in conversation