The GENMODEL statement is used to fit statistical models from the class of generalized linear models and some related models.
specifies the variable to model. This variable is also referred to as the response variable.
specifies a list of variables to use for modeling the dependent variable.
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.
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. This option has no effect unless you specify the SCORE option.
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 |
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 |
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 | genmodel y (x1 x2) = x3-x7 / classformats=("YN.", "F8."); |
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.
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.
specifies to add comments to the code in addition to the header block. The header block is added by default.
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= |
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 | FMTW= |
Range | 4 to 32 |
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.
specifies to generate the IMSTAT programming statements only. No scoring code is produced.
specifies a group identifier for group processing. The identifier is an integer and is used to create array names and statement labels in the generated code.
specifies the line size for the generated code.
Alias | LS= |
Default | 72 |
Range | 64 to 256 |
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.
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.
specifies the distribution of the response variable. See the following list for the available values:
specifies the result tables that you want to exclude from being generated on the server and from being sent to the client. The GENMODEL 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.
|
ConvergenceStatus
|
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 generalized linear models
|
This table is shown
when it is requested with the SELECT= option.
|
OptIterHistory
|
IterHist
|
Iteration history
|
This table is shown
when the ITDETAILS option is used or when the table is requested with
the SELECT= option.
|
ParameterEstimates
|
ParmEstimates
Pest
|
The solutions for the
linear model coefficients
|
This table is shown
by default.
|
Tests3
|
Type III tests of model
effects
|
This table is shown
when the distribution is in the exponential family, the effects contain
classification variables, and the NOSTDERR option is not specified.
|
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.
Example | proc imstat data=lasr1.table1; statement / groupby=(a b) formats=("8.3", "$10"); quit; |
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 as f(Ψ)k. Then, the FCONV criterion is met if
Default | r=10-FDIGITS where FDIGITS is -log10(e) and e is the machine precision. |
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.
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
specifies a list of variable names, or a single variable name, to use as GROUPBY variables in the order of the grouping hierarchy. If you do not specify any GROUPBY variable names, then the calculation is performed across the entire table—possibly subject to a WHERE clause.
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.
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 |
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.
|
specifies the exclusive lower bound for the numeric scores of the distinct groupings to collect.
Alias | SGT= |
specifies the exclusive upper bound for the numeric scores of the distinct groupings to collect.
Alias | SLT= |
specifies the exclusive lower bound of the group-by variable’s formatted values for the distinct groupings to collect.
Alias | VGT= |
specifies the exclusive upper bound of the group-by variable’s formatted values for the distinct groupings to collect.
Alias | VLT= |
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.
proc imstat; table example.cars_program_all; groupby state city trade_in_model / temptable weight=new_vehicle_msrp agg =(max) order =weight; run;
table example.cars_program_all;
distinct sales_type / groupfilter=(
table =mylasr.&_TEMPLAST_
scoregt=40000
valuelt=("FL","Ft Myers","")
limit =20
descending);
run;
Interaction | If you specify the GROUPFILTER= option, then the GROUPBY= and FORMATS= options have no effect. |
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. |
requests to add details about the iterative model fitting process (an iteration history) to the ODS output tables.
Alias | ITDETAIL |
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.
specifies the link function to use for the model fitting process. If you do not specify a link function, the server selects the most appropriate function for the distribution of the data. See the following list for the available functions:
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= |
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 |
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.
suppresses the inclusion of an intercept in the model. By default, all models contain an intercept term.
prevents the procedure from preparsing and pregenerating code for temporary expressions, scoring programs, and other user-written SAS statements.
Alias | NOPREP |
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 |
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. In generalized linear models, offsets arise frequently when the data represents a value relative to some measure of size. For example, if you model the number of stops (Y) for each trip and the trips are of different length (t), then you are really interested in the random variable Y/t. The generalized linear model becomes as follows:
specifies to fit the model separately for each value of the partition key. In other words, the partition variables function as automatic group-by variables for the request.
Alias | PART= |
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.
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 |
specifies the significance level used in determining whether effects should stay in the model during variable selection.
Default | 0.1 |
Range | 0 to 1 |
specifies the optimization technique for the iterative model-fitting process. The valid values are as follows:
Default | NRRIDG |
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= |
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= |
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.
specifies the proportion f in the validation data set.
Alias | VALPROP= |
Range | 0 to 1 |
Interaction | If you specify both the ROLEVAR= option and the VALIDATE= option, then the ROLEVAR= setting supersedes the VALIDATE= option. |
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 |
specifies the numeric variable to use as a weighing variable in solving the linear model.