IMSTAT Procedure (Analytics)

LOGISTIC Statement

The LOGISTIC statement can model binary data with logit, probit, log-log, and complementary log-log link functions. It can also model binomial data with the same set of link functions.

Syntax

LOGISTIC dependent-variable <(class-variables)> = model-effects </ options>
LOGISTIC event-variable / trial-variable <(class-variables)> = model-effects </ options>

Required Arguments

dependent-variable

specifies the variable to model. This variable is also referred to as the response variable.

Tip
The LOGISTIC statement produces a response profile table that shows the ordered values of the dependent variable. By default, the smaller ordered value is the event that is modeled. For example, if the dependent variable has values 0 and 1, the statement models the probability that the dependent variable takes on the value 0. You can change the ordering of the dependent variable values with the DESCENDING option.

event-variable

specifies the name of the variable that indicates the count of positive responses.

model-effects

specifies a list of variables to use for modeling the dependent variable.

trial-variable

specifies the name of the variable that indicates the total number of trials.

Optional Argument

class-variables

specifies a list of variables to use as classification variables. The variables in this list take the place of the CLASS statement in traditional SAS procedures.

LOGISTIC Statement Options

ALLIDVARS

requests that all variables in the input table are treated as ID variables when a scoring table is produced. In other words, if this option is specified, all variables from the input table, including computed columns, are transferred to the scoring table.

ALPHA=number

specifies a number between 0 and 1 from which to determine the confidence level for approximate confidence intervals of the parameter estimates. The default is α = 0.05, which leads to 100 x (1- α)% = 95% confidence limits for the parameter estimates.

Default 0.05

CI

specifies to add confidence intervals to the table of parameter estimates. The confidence level is 100*(1-α)% where α is determined by the ALPHA= option. The default value is α = 0.05. This value is equivalent to a 95% confidence limit.

Default 0.05

CLASSFORMATS=("format-name1"<, "format-name2" ...>)

specifies the formats for the classification variables in the model. If you do not specify the CLASSFORMATS= option, the default format is applied for the classification variable. That default format was determined when the table was originally loaded into the server. In the following example, the CLASSFORMAT= values apply to variables x1 and x2.

Alias CLASSFMT=
Example
logistic y (x1 x2) = x3-x7 / classformats=("YN.", "F8.");

CODE <(code-generation-options)>

requests that the server produce SAS scoring code based on the actions that it performed during the analysis. The server generates DATA step code. By default, the code is replayed as an ODS table by the procedure as part of the output of the statement. More frequently, you might want to write the scoring code to an external file by specifying options.

The scoring code computes the predicted value of the response variable on the data scale (the inverse link scale) and prefixes the name with "P_". For example, if the response variable is Y, the generated code stores the predicted value as P_Y. The name of the variable is truncated to fit within the SAS name length requirements.

COMMENT

specifies to add comments to the code in addition to the header block. The header block is added by default.

FILENAME='path'

specifies the name of the external file to which the scoring code is written. This suboption applies only to the scoring code itself. If you request that the server generate IMSTAT programming statements with the IMSTAT suboption, then these statements are saved as an ODS table.

Alias FILE=

FORMATWIDTH=k

specifies the width to use in formatting derived numbers such as parameter estimates in the scoring code. The server applies the BEST format, and the default format for code generation is BEST20.

Alias FMTWIDTH=
Range 4 to 32

IMSTAT

specifies to generate IMSTAT programming statements that reproduce the analysis in addition to the scoring code. For example, this option is helpful when you perform variable selection and you want to capture the modeling code that reflects only the selected variables.

IMSTATONLY

specifies to generate the IMSTAT programming statements only. No scoring code is produced.

LINESIZE=n

specifies the line size for the generated code.

Alias LS=
Default 72
Range 64 to 256

NOTRIM

requests that the comparison of the formatted values for class variables and group-by variables is based on the full format width with padding. By default, the leading and trailing blanks are removed from the formatted values.

REPLACE

specifies to overwrite the external file with the new contents if the file already exists. This option has no effect unless you specify the FILENAME= option.

EXCLUDE=(list-of-ODS-tables)

specifies the result tables that you want to exclude from being generated on the server and from being sent to the SAS session. The GLM statement can generate the following tables:

Table Name
Table Alias
Description
Condition
ModelInfo
Information about the model—constant across groups or partitions.
This table is shown by default.
ClassLevels
Class
Information about the classification variables, such as the number of levels and their values.
This table is shown when classification variables are present in the model.
ConvStatus
Convergence
Convergence status of optimization
This table is shown by default.
Dimensions
Dim
Model dimensions
This table is shown by default.
FitStatistics
Fit
Fit statistics customary for regression models
This table is shown when it is requested with the SELECT= option.
GlobalTest
Global
Test of the hypothesis that the model fits as well as a null model without explanatory variables
This table is shown my default.
IterHistory
IterHist
Iteration history
This table is shown when the ITDETAILS option is used or when the table is requested with the SELECT= option.
ParmEstimates
ParameterEstimates
Pest
The solutions for the linear model coefficients
This table is shown when there are no classification variables in the model.
ResponseProfile
Resp
Information about the values of the binary response variable such as the level order and frequency
This table is shown when modeling binary data. (When the events/trials syntax is not used.)
Tests3
Type III tests of model effects
This table is shown when the effects contain classification variables and the NOSTDERR option is not specified.
Whether a table is shown by default or not, you can request any table with the SELECT= option in the LOGISTIC statement. The Condition column in the table identifies when a table is produced by default. For example, if the response variable is binary, the server generates the ResponseProfile table.

FORMATS=("format-specification"<,...>)

specifies the formats for the GROUPBY variables. If you do not specify the FORMATS= option, or if you omit the entry for a GROUPBY variable, the default format is applied for that variable.

Enclose each format specification in quotation marks and separate each format specification with a comma.
Example
proc imstat data=lasr1.table1;
   statement / groupby=(a b) formats=("8.3", "$10");
quit;

FCONV=r

specifies a relative function convergence criterion. For all techniques except NMSIMP, termination requires a small relative change of the function value in successive iterations. Suppose that Ψ is the p × 1 vector of parameter estimates in the optimization and the objective function at the kth iteration is denoted, f(Ψ)k. Then, the FCONV criterion is met if

fconv
Default r=10-FDIGITS where FDIGITS is -log10(e) and e is the machine precision.

FREQ=variable-name

specifies the numeric variable that provides frequencies for the analysis. For example, if the FREQ= variable has the value 5, then it implies that the record represents five such observations with identical values for the modeling variables. If you specify a FREQ= variable, then only the observations with a value that is not missing and greater than zero for the variable are used in the analysis.

GCONV=r

specifies a relative gradient convergence criterion. For all optimization techniques except CONGRA and NMSIMP, termination requires that the normalized predicted function reduction is small. The default value is r = 1e-8. Suppose that Ψ is the p × 1 vector of parameter estimates in the optimization with ith element Ψi. . The objective function, its p × 1 gradient vector, and its p × p Hessian matrix are denoted, f(Ψ), g(Ψ), and H(Ψ ), respectively. Then, if superscripts denote the iteration count, the normalized predicted function reduction at iteration k is

gconv
The GCONV convergence criterion is assumed to be met if that value is less than or equal to r.
Note that it is possible that the relative gradient reduction is small, even if one or more gradients is still substantial in absolute value. If this situation occurs, you can disable the GCONV criterion by setting r=0. If the optimization would have stopped early due to meeting the GCONV criterion, the iterative process usually takes one more step until the gradients are small in absolute value.

GROUPBY=(variable-list)

specifies the names of the Group-by variables in the order of the grouping hierarchy. If no variable names are specified, the model is fit across the entire table—possibly subject to a WHERE clause.

If you work on a partitioned table, you can also use the PARTITION option to fit the model for a specific partition or separately for all partitions. Operations on partitions are much more efficient than a group-by analysis.
Because fitting logistic models requires an iterative method, the Group-by analysis for these models is a data-parallel technique where the model in each group is fit separately, assigning different rows of the group to different threads.

GROUPFILTER=(filter-options)

specifies a section of the group-by hierarchy to be included in the computation. With this option, you can request that the server performs the analysis for only a subset of all possible groupings. The subset is determined by applying the group filter to a temporary table that you generate with the GROUPBY statement.

You can specify the following suboptions in the GROUPFILTER option:

DESCENDING

specifies the top section or the bottom section of the groupings to be collected. If the DESCENDING option is specified, the top LIMIT=n (where n > 0) groupings are collected. Otherwise, the bottom LIMIT=n groupings are collected.

Alias DESC

LIMIT=n

specifies the maximum number of distinct groupings to be collected, where integer n >= 0. If n is zero, then all distinct groupings (up to 231–1) that satisfy the boundary constraints, such as LOWERSCORE=f, are collected.

CAUTION:
High Cardinality Data Sets
Setting n to zero with high-cardinality data sets can significantly delay the response of the server.

SCOREGT=f

specifies the exclusive lower bound for the numeric scores of the distinct groupings to collect.

Alias SGT=

SCORELT=f

specifies the exclusive upper bound for the numeric scores of the distinct groupings to collect.

Alias SLT=

VALUEGT=("format-name1" <, "format-name2" ...>)

specifies the exclusive lower bound of the group-by variable’s formatted values for the distinct groupings to collect.

Alias VGT=

VALUELT=("format-name1" <, "format-name2" ...>)

specifies the exclusive upper bound of the group-by variable’s formatted values for the distinct groupings to collect.

Alias VLT=

TABLE=table-with-groupby-results

specifies the in-memory table from which to load the group-by hierarchy. If the TABLE= option is not specified, then all other GROUPFILTER= options are ignored.

The following program request all the groupings of State, City, and then Trade_In_Model in the Cars_Program_All table. The groupings are ordered by the maximum value of New_Vehicle_Msrp for each grouping:
proc imstat;
    table example.cars_program_all;
    groupby state city trade_in_model / temptable 
                 weight=new_vehicle_msrp 
                 agg   =(max) 
                 order =weight;  
run;
The TEMPTABLE option in the GROUPBY statement directs the server to save all the groupings in a temporary in-memory table. The following DISTINCT statement requests the count of the distinct unformatted values of Sales_Type for each of the selected groupings of State, City, and Trade_In_Model.
    table example.cars_program_all;
    distinct sales_type / groupfilter=(
                 table  =mylasr.&_TEMPLAST_
                 scoregt=40000
                 valuelt=("FL","Ft Myers","")
                 limit  =20
                 descending);
run;
This example considers only groupings that have maximum values of the New_Vehicle_Msrp above 40,000 and with formatted values that are less than State="FL" and City="Ft Myers." The empty quotation marks result in no restriction on Trade_In_Model values. These groupings are ordered according to the maximum values of New_Vehicle_Msrp. Because of the DESCENDING option, this example collects the 20 top groupings within the specified group-by range for the DISTINCT analysis.
Interaction If you specify the GROUPFILTER= option, then the GROUPBY= and FORMATS= options have no effect.

IDVARS=(variable-list)

IDVARS=variable-name

specifies the variables from the active table to transfer to the temporary table that is created by scoring the input table. This option has no effect unless the SCORE option is also specified. (See the SCORE option for details about which variables are added to the temporary table by default.) The IDVARS= option should be used to transfer additional columns from the input table to the scoring table.

Alias ID=
Tip Instead of this option, you can specify the ALLIDVARS option to transfer all variables from the input table to the scoring table.

ITDETAILS

requests to add details about the iterative model fitting process (an iteration history) to the ODS output tables.

Alias ITDETAIL

KEYORDER

requests that the results for a partitioned analysis are displayed in the order of the partition keys. If this option is not specified, then results are displayed by using the partitions on the first worker node followed by the partitions on the second node, and so on. Without this option, the results are likely to have random ordering of the partitions. The KEYORDER option makes result collection less efficient but produces a natural, predictable order.

LINK=function

specifies the link function to use for the model fitting process. See the following list for the available functions:

  • LOGIT
  • PROBIT
  • LOGLOG
  • CLOGLOG
Default LOGIT

MAXFUNC=n

specifies the maximum number n of function calls in the iterative model fitting process. The default value depends on the optimization technique as follows:

Optimization Technique
Default Number of Function Calls
TRUREG, NRRIDG, and NEWRAP
125
QUANEW and DBLDOG
500
CONGRA
1000
NMSIMP
3000
Alias MAXFU=

MAXITER=i

specifies the maximum number of iterations in the iterative model fitting process. The default value depends on the optimization technique as follows:

Optimization Technique
Default Number of Iterations
TRUREG, NRRIDG, and NEWRAP
50
QUANEW and DBLDOG
200
CONGRA
400
NMSIMP
1000
Alias MAXIT=

MAXTESTLEV=n

specifies the maximum number of levels in an effect for which the server generates Type III tests. The idea behind the MAXTESTLEV= option is that testing effects for significance that have a large number of levels is typically not meaningful. The effects tend to be highly significant anyway, but determining the exact significance level is computationally intensive. The default value is 300 and implies that no test statistics are produced for any effect that has more than 300 levels.

Default 300

NAME=SAS-name

specifies the name to use for identifying the model in the server output and in the temporary table of results generated by the TEMPTABLE option. SAS name rules apply. For example, the following statements add the 'Model' entry to the ModelInformation table.

proc imstat;
   table hps.neuralgia;
   logistic pain = treatment sex duration / name = LogisModel
run;
Model Information with Name

NOCLPRINT <=n>

specifies the number of levels for each classification variables to show in the Class Level Information ODS table. If you do not specify the NOCLPRINT option, all unique values are shown in the order of the class variable levelization. If you specify NOCLPRINT=n, then the values are shown for those classification variables that have less than n levels only. The value for n must be at least 1.

If you specify the NOCLPRINT option without specifying a value for n, then n = 0 is assumed. This enables you to get a listing of the classification variables in the model. This might be useful if you did not identify classification variables explicitly—without listing their (possibly many) levels.
For example, the following Class Level Information table is displayed with NOCLPRINT=4. Because the number of levels for variable Smoking_Status exceeds 4, the values are not displayed.
Class Level Information ODS table

NOINT

suppresses the inclusion of an intercept in the model. By default, all models contain an intercept term.

NOPREPARSE

prevents the procedure from pre-parsing and pre-generating code for temporary expressions, scoring programs, and other user-written SAS statements.

When this option is specified, the user-written statements are sent to the server "as-is" and then the server attempts to generate code from it. If the server detects problems with the code, the error messages might not to be as detailed as the messages that are generated by SAS client. If you are debugging your user-written program, then you might want to pre-parse and pre-generate code in the procedure. However, if your SAS statements compile and run as you want them to, then you can specify this option to avoid the work of parsing and generating code on the SAS client.
When you specify this option in the PROC IMSTAT statement, the option applies to all statements that can generate code. You can also exclude specific statements from pre-parsing by using the NOPREPARSE option in statements that allow temporary columns or the SCORE statement.
Alias NOPREP

NOSTDERR

prevents the computation of the covariance matrix and the standard errors of the parameter estimates. When you specify this option, the Type III tests for the model effects are also not available.

Alias NOSTD

OFFSET=variable-name

specifies the offset variable for the analysis. An offset variable can be thought of as a regressor variable whose regression coefficient is known to be 1. Offsets are used to shift the linear predictors by a certain amount. For example, an offset can be used to accommodate constants in the underlying model. For example, a model for the probability of being seropositive is as follows:

Model for the probability of being seropositive
After applying the log function, the model on the linear scale is as follows:
The same model, with the log function applied
You can model this relationship with a complementary log-log link (LINK=CLOGLOG), and the offset variable log(X). The term log(β) is then estimated by the intercept of the model.

PARTITION <=partition-key>

When you specify this option and the table is partitioned, the results are calculated separately for each value of the partition key. In other words, the partition variables function as automatic GROUPBY variables. This mode of executing calculations by partition is more efficient than using the GROUPBY= option. With a partitioned table, the server takes advantage of knowing that observations for a partition cannot be located on more than one worker node.

If you do not specify a partition-key, the analysis is performed for all partitions. If you do specify a partition-key, the analysis is carried out for the specified key value only. You can use the PARTITIONINFO statement to retrieve the valid partition key values for a table.
You can specify a partition-key in two ways. You can supply a single quoted string that is passed to the server, or you can specify the elements of a composite key separated by commas. For example, if you partition a table by variables GENDER and AGE, with formats $1 and BEST12, respectively, then the composite partition key has a length of 13. You can specify the partition for the 11-year-old females as follows:
statement / partition="F          11"; /* passed directly to the server */
statement / partition="F","11";        /* composed by the procedure */
If you choose the second format, the procedure composes a key based on formatting information from the server.
Alias PART=

ROLEVAR=variable-name

specifies a variable in the in-memory table that defines whether an observation belongs to the training set, the validation set, or is to be excluded from the analysis. The role variable can have a numeric or character type, and it can be a temporary computed variable.

If the role variable data type is numeric, the values of variable-name are interpreted as follows:
  • value = 1: this observation is in the training set
  • value = 2: this observation is in the validation set
  • any other value: this observation is to be excluded from the analysis
If the role variable data type is character, the values of variable-name are interpreted as follows:
  • If the first non-blank character is 't' or 'T', then the observation is in the training set.
  • If the first non-blank character is 'v' or 'V', then he observation is in the validation set.
  • Any other value for the first non-blank character, including an all blank entry, leads to the exclusion of the observation from the analysis.
Alias ROLE=
Interactions You can divide the data at random into training and validation sets by providing the VALIDATE= and SEED= options.
If you specify both the ROLEVAR= option and the VALIDATE= options, then the ROLEVAR= setting supersedes the VALIDATE= option.

SCORE <(score-statistic1score-statistic2...)>

requests that the active table be scored after the model is fit and the results be stored in a temporary table. The server automatically adds all model variables to the temporary table with the score results. These results include the response variable, the class variables, all explanatory variables from which effects are formed, and the WEIGHT=, and FREQ= variables.

In addition, if the active table is partitioned or ordered, the partition variables and order-by variables are transferred from the input table to the temporary table. The temporary table is partitioned and ordered in the same way as the active table.
If the analysis uses the GROUPBY= option, the variables in the group-by list are also transferred to the scoring table. If you want to transfer additional variables, you can specify them with the IDVARS= option.
If you do not specify the list of score statistics, default statistics are computed. These statistics are identified with Yes in the Default column in the table below. You can request that the following statistics be computed for each observation:
Keyword and Aliases
Column Name
Description
Default
PRED, PREDICTED, LINP
_PRED_
Predicted linear predictor value
Yes
RESID, RESIDUAL, R
_RESID_
Raw residual (on a linear scale)
Yes
LEVERAGE, H
_LEVERAGE_
Measure of how extreme an observation is in the regressor space
Yes
ILINK, MEAN, PROB
_ILINK_
Inversely linked linear predictor, the predicted mean of the response
Yes
PEARSON, RESCHI
_PEARSON_
Pearson residual, also known as the Chi-square residual
Yes
DEVRESID, RESDEV
_DEVRESID_
Deviance residual
Yes
LIKEDIST, LD, RESLIKE
_LIKEDIST_
Likelihood displacement
Yes
STDRES, STDRESCHI
_STDRESCHI_
Standardized Pearson Chi-square residual
Yes
STDP
_STDP_
Standard error of the mean predicted value
No
LCLM, LOWERMEAN
_LCLM_
Lower confidence limit for the mean of the predicted value
No
UCLM, UPPERMEAN
_UCLM_
Upper confidence limit for the mean of the predicted value
No
LCL, LOWERPRED
_LCL_
Lower confidence limit for the predicted value
No
UCL, UPPERPRED
_UCL_
Upper confidence limit for the predicted value
No
DIFDEV
_DIFDEV_
Change in the deviance due to the deletion of the observation
No
DIFCHISQ
_DIFCHISQ_
Change in the Pearson statistic due to deletion of the observation
No
The calculation of these statistics agrees with the LOGISTIC procedure. You can consult the documentation for the procedure in the SAS/STAT User's Guide for details about the calculations. The output statistics of the LOGISTIC procedure referred to as PREDICTED, LOWER, and UPPER are equivalent to the _ILINK_, _LCLM_, and _UCLM_ statistics.
If you specify SCORE(_ALL_), then the server calculates and adds all the possible output statistics to the temporary table. The confidence levels for the LCLM, LCL, UCLM, and UCL confidence bounds are determined from the significance level specified in the ALPHA= option.
The interpretation of the LCL/UCL and LCLM/UCLM bounds is slightly different in the LOGISTIC statement as compared to the GLM statement. In a GLM model, the distinction between LCLM and LCL bounds is that the former apply to predictions of the mean (expected value) of an observation, whereas the latter apply to prediction of a new observation that has not been used in modeling the data. In the LOGISTIC statement all confidence bounds are bounds for predicting an expected value. The difference between LCLM/UCLM and LCL/UCL bounds here relates to whether the bound applies to the mean scale (the data scale), or the scale of the linear predictor. The LCLM and UCLM bounds apply to the mean (=data) scale—these are confidence bounds for the predicted probability. The LCL/UCL bounds apply to the linear scale—these are confidence bounds for the linear predictor η.

SELECT=(list-of-ODS-tables)

specifies the list of ODS tables that you want to display for the analysis. The specified list replaces the default tables that are generated by the server and displayed. See the EXCLUDE= option for the list of default tables and the table names that you can display.

SHOWSELECTED

requests that the server perform variable selection for the model. A backward selection method is used, where the significance level for an effect to remain in the model is determined by the SLSTAY= option. This option performs variable selection like the VARSEL option, but in contrast to the latter option, it displays output only for the selected effects.

Alias SHOWSEL

SLSTAY=α

specifies the significance level used in determining whether effects should stay in the model during variable selection.

Default 0.1
Range 0 to 1

TECHNIQUE=

specifies the optimization technique.

Valid values are as follows:
CONGRA (CG) performs a conjugate-gradient optimization.
DBLDOG (DD) performs a version of the double-dogleg optimization.
DUQUANEW (DQN) performs a (dual) quasi-Newton optimization.
NMSIMP (NS) performs a Nelder-Mead simplex optimization.
NONE specifies not to perform any optimization. This value can be used to perform a grid search without optimization.
NEWRAP (NRA) performs a (modified) Newton-Raphson optimization that combines a line-search algorithm with ridging.
NRRIDG (NRR) performs a (modified) Newton-Raphson optimization with ridging.
QUANEW (QN) performs a quasi-Newton optimization. If you specify this technique, but specify bounds for any parameter, the server automatically performs DUQUANEW.
TRUREG (TR) performs a trust-region optimization.
The factors that go into choosing a particular optimization technique for a particular problem are complex. Trial and error can be involved. For many optimization problems, computing the gradient takes more computer time than computing the function value. Computing the Hessian sometimes takes much more computer time and memory than computing the gradient, especially when there are many parameters. Unfortunately, first-order optimization techniques that do not use some type of Hessian or Hessian approximation usually require more iterations than second-order techniques that use a Hessian matrix. As a result, the total run time of first-order techniques can be longer. Techniques that do not use the Hessian also tend to be less reliable. For example, they can terminate more easily at stationary points than at global optima.
The TRUREG, NEWRAP, and NRRIDG algorithms are second-order algorithms.
The server computes first and second derivatives of the objective function with respect to the parameters in analytic form wherever possible. Finite-difference approximations for derivatives are used only when the derivatives of functions are not known. In most cases, finite-difference approximations are not necessary.
For more information about the algorithms, see SAS/STAT User's Guide.
Alias TECH=
Default NRRIDG

TEMPEXPRESS="SAS-expressions"

TEMPEXPRESS=file-reference

specifies either a quoted string that contains the SAS expression that defines the temporary variables or a file reference to an external file with the SAS statements.

Alias TE=

TEMPNAMES=variable-name

TEMPNAMES=(variable-list)

specifies the list of temporary variables for the request. Each temporary variable must be defined through SAS statements that you supply with the TEMPEXPRESS= option.

Alias TN=

TEMPTABLE

generates an in-memory temporary table from the result set. The IMSTAT procedure displays the name of the table and stores it in the &_TEMPLAST_ macro variable, provided that the statement executed successfully.

When the IMSTAT procedure exits, all temporary tables created during the IMSTAT session are removed. Temporary tables are not displayed on a TABLEINFO request, unless the temporary table is the active table for the request.

VALIDATE=f

specifies the proportion f in the validation data set.

Alias VALPROP=
Range 0 to 1
Interaction If you specify both the ROLEVAR= and the VALIDATE= options, then the ROLEVAR= setting supersedes the VALIDATE= option.

VARSELECTION

specifies that the server perform variable selection for the model. A backward selection method is used, where the significance level for an effect to remain in the model is determined by the SLSTAY= option. In contrast to the SHOWSEL option, all effects are reported in the IMSTAT output.

Alias VARSEL

WEIGHT=variable-name

specifies the numeric variable to use as a weighing variable in solving the linear model.

Details

ODS Table Names

The ODS tables that can be generated with the GLM statement are described in theEXCLUDE=(list-of-ODS-tables).
For information about using the ODS table with SAVE= option, see the Details section of the STORE statement.