Hi folks,
Apologies in advance if this belongs in a different forum, but it's posted here because I'm doing all this in Enterprise Guide.
I have problem whereby a proc hpsplit program running on my local machine (SAS 9.4, local server) does not display expected ODS output - it only shows 'PerformanceInfo' and 'DataAccessInfo tables.
The procedure is running without an issue and happily produces other output including dataset, rules file and code file, but the SAS report output stubbornly refuses to show all the other extremely useful tables like Model Information, Confusion Matrices etc.
Doubly confusing because testing the same proc hpsplit on a different machine (SAS server installation using EG 5.1 x64), all expected ODS results do appear.
I've tried changing various options in the hpsplit procedure itself to no avail.
I have almost zero working knowledge of ODS but got as far as locating the reference below:
SAS Documentation - HPSPLIT Procedure - ODS Table Names
I tried running an ODS TRACE ON on the offending machine to see what was being produced, and only these two tables appeared in the logs:
Output Added: ------------- Name: PerformanceInfo Label: Performance Information Template: HPA.Common.PerfInfo Path: HPSplit.PerformanceInfo ------------- Output Added: ------------- Name: DataAccessInfo Label: Data Access Information Template: HPA.Common.DataAccessInfo Path: HPSplit.DataAccessInfo -------------
I then tried running an ODS TRACE ON on the SAS server-based installation, and all the expected tables appeared.
Output Added: ------------- Name: PerformanceInfo Label: Performance Information Template: HPA.Common.PerfInfo Path: HPSplit.PerformanceInfo ------------- Output Added: ------------- Name: DataAccessInfo Label: Data Access Information Template: HPA.Common.DataAccessInfo Path: HPSplit.DataAccessInfo ------------- NOTE: PROC HPSPLIT is modeling the event TARGET_THING=1 for sensitivity, specificity, AUC, and ROC curve calculations. Output Added: ------------- Name: ModelInfo 2 The SAS System 10:54 Tuesday, April 18, 2017 Label: Model Information Template: HPStat.HPSplit.ModelInfo Path: HPSplit.ModelInfo ------------- Output Added: ------------- Name: NObs Label: Observation Information Template: HPStat.HPSplit.NObs Path: HPSplit.NObs ------------- Output Added: ------------- Name: ConfusionMatrix Label: Confusion Matrices Template: HPStat.HPSplit.ConfusionMatrix Path: HPSplit.ModelAssessment.ConfusionMatrix ------------- Output Added: ------------- Name: TreePerformance Label: Fit Statistics Template: HPStat.HPSplit.TreePerformance Path: HPSplit.ModelAssessment.TreePerformance ------------- Output Added: ------------- Name: VarImportance Label: Variable Importance Template: HPStat.HPSplit.VarImportance Path: HPSplit.ModelAssessment.VarImportance
I also checked installed modules on both local and remote server environments using proc setinit, and they both appear the same (ie both have among other things SAS/STAT and High Performance Suite installed)
Any suggestions would be greatly appreciated.
Can you verify the version of SAS that you have locally? PROC HPSPLIT was greatly expanded in the releases of SAS/STAT 12.1 through 14.2. Check the opening log output from your local SAS. If using EG, you can find your the relevant parts of your SAS log with this technique.
I moved this thread to the Stat Procs board, since this is where the experts for HPSPLIT will be.
Since you're running in EG, you might want to make sure that you include:
ods graphics on;
At the start of your program -- that will influence how the PROC generates the graphics.
Also, make sure the data you're using is the same between the environments you tested. Maybe grab one of the HPSPLIT code examples from the SAS doc and run it in each environment.
Thanks for the suggestions Chris,
Unfortunately there was no change at all on the local server machine after adding ODS GRAPHICS ON above procedure (although this did add extra output to the SAS server machine's report - see attached GoodOutput.png), or
Comparing identical code on both installations (pasted below) still yields exactly the same results - the two Performance and Data access tables only on the local server machine, but a wealth of useful tables and charts on the remote SAS server machine.
I try all combinations of ods select / graphics / trace on and off, and apart from being able to turn off the same two tables the program still wont produce any other table or graph in the report (see attached BadOutput.png).
Would you have any other ideas for what may be inhibiting ODS output?
FYI - Test code used on both machines:
/*tried with various combinations of ods statements below*/
ods trace on; ods graphics on;
ods select all; proc hpsplit data=sashelp.cars; target origin / level=nominal; input msrp cylinders length wheelbase mpg_city mpg_highway invoice weight horsepower / level=interval; input enginesize / level=ordinal; input drivetrain type / level=nominal; output nodestats=nstat; run;
Can you verify the version of SAS that you have locally? PROC HPSPLIT was greatly expanded in the releases of SAS/STAT 12.1 through 14.2. Check the opening log output from your local SAS. If using EG, you can find your the relevant parts of your SAS log with this technique.
Thanks for the tip Chris, I think you may have the explanation.
For the 'problem' machine the, log says
NOTE: Updated analytical products: SAS/STAT 13.2
For the 'good' machine the log says
NOTE: Updated analytical products: SAS/STAT 14.1
Lo and behold, in the "What’s New in SAS/STAT14.1" guide...
"HPSPLIT Procedure The HPSPLIT procedure supports the MODEL and CLASS statements, making its syntax comparable to that of other SAS/STAT modeling procedures. Cost-complexity pruning is supported, with k-fold cross validation as the default method of selecting the penalty parameter. ODS tables provide confusion matrices for training and validation data; fit statistics for the selected tree; and information about cross validation, nodes, and variable importance. You can generate tree plots, cross validation plots, and ROC curves. You can save observationwise results, including node and leaf assignments, predicted levels, posterior probabilities for classification trees, and predicted response values for regression trees in an output data set"
So I'll mark this one as answered. Hopefully I can get that SAS/STAT module updated on my local machine.
Thanks again,
Trent
I've been trying for a couple of hours to get this to work on Unix batch program. After searching the internet and not finding anything to help, this answered my problem. We are running SAS/STAT 13.1......time to upgrade!
The simplest test is to put
ODS SELECT ALL;
before your call to the procedure and see if that changes anything. Perhaps there is an ODS SELECT or ODS EXCLUDE statement that you are not aware of.
Thanks Rick,
This didn't have any effect either (see above reply to Chris) - the local machine still stubbornly displays only the two basic tables with zero model information, even with ODS SELECT ALL or ODS GRAPHICS ON.
This makes me wonder about differences in the two SAS environments. They both have SAS/STAT and High Performance Suite intalled, and both outputs say executionp mode was 'Single-Machine', but perhaps there is some hidden difference?
I am running into the same issue...PROC HPSPLIT results are not displaying. I confirmed HPSPLIT is, in fact, building a classificaiton tree by outputting node statitistics (output nodestats=nstat). HPSPLIT is generating all sorts of output, but none appears in the Results window.
I realize I'm a few weeks late to the discussion, but any new insights.
Much appreciated.
Hey @JTho - can you confirm the version of SAS that you're running? Run:
proc product_status; run;
Sample output:
For Base SAS Software ... Custom version information: 9.4_M4 Image version information: 9.04.01M4P110916 For SAS/STAT ... Custom version information: 14.2 For SAS/GRAPH ... Custom version information: 9.4_M4 For SAS/ETS ... Custom version information: 14.2
Looks like tree plots and some other output were added in SAS/STAT 14.1:
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.