TSMODEL Procedure
Table Output
The TSMODEL procedure can create the OUT=, OUTARRAY=, OUTSCALAR=, OUTSUM=, OUTLOG=, and OUTOBJ= tables. These tables always contain the variables that are specified in the BY statement. If a BY-group analysis step fails, then the values of this step are not recorded or are set to missing in the related output tables. Appropriate error or warning messages (or both) are recorded in the OUTLOG= table, subject to the value of the LOGCONTROL= option.
It is important to note that output tables created by PROC TSMODEL are naturally partitioned by the BY variables because of the way the BY groups are input into CAS session processes to form the time series data frames. The entire time series data for each BY group is input completely in a particular CAS session process. Consequently, all the time series processing for a particular BY group occurs in the context of a single CAS session node. Subsequent use of PROC TSMODEL to process the output tables makes use of this table-level partitioning.
The BY group partitioning of the output tables should not be confused with BY-group sort order or time ID sort order when the output tables are read by the CAS libname engine back into the SAS DATA step code for subsequent processing. If BY-group order is needed, or if time ID sort order within the BY groups is needed, you must specify PROC SORT steps in your SAS code to order the data set. For example, consider the PROC TSMODEL step in the example Comparison of the TSMODEL and TIMEDATA Procedures. In order to process the OUTSUM=, OUTSCALAR=, and OUTARRAY= tables in a SAS DATA step that expects the BY-group rows to be contiguous, you must specify BY Product in the SORT procedure to sort the tables mylib.Pricexsum and mylib.Pricexos. The table mylib.Pricexoa is a time series table, and you must specify BY Product Date in the SORT procedure to sort the data so that they are suitable for normal SAS time series processing. Failure to sort output tables that are generated by PROC TSMODEL can lead to errors when the tables are used as input in other procedures or steps.
OUT= Table
The OUT= table contains the variables that are specified in the BY, ID, or VAR statements. The ID variable values are aligned and extended based on the ALIGN=, INTERVAL=, and LEAD= options. The values of the variables specified in the VAR statements are accumulated based on the ACCUMULATE= option, and missing values are interpreted based on the SETMISSING= option.
OUTARRAY= Table
The OUTARRAY= table contains the variables that are specified in the BY, ID or VAR statements. If the ID statement is specified, then the ID variable values are aligned and extended based on the ALIGN= and INTERVAL= options. The values of the variables specified in the VAR statements are accumulated based on the ACCUMULATE= option, and missing values are interpreted based on the SETMISSING= option. In addition, the OUTARRAY= table contains the variables that are specified in the OUTARRAYS statements and the following variables:
- _STATUS_
status flag that indicates whether the requested analyses were successful
- _TIMEID_
time ID values
- _SEASON_
season index values
- _CYCLE_
life-cycle index values
- Array-Variable-Names
variables that are specified in the OUTARRAYS statement
The OUTARRAY= table contains the arrays that are related to the (accumulated) time series.
OUTSCALAR= Table
The OUTSCALAR= table contains the variables that are specified in the BY statement. In addition, the table contains the variables that are specified in the OUTSCALARS statements and the following variables:
- _STATUS_
status flag that indicates whether the requested analyses were successful
- Scalar-Variable-Names
variables that are specified in the OUTSCALARS statement
The OUTSCALAR= table contains the scalars that are related to the (accumulated) time series.
OUTSUM= Table
The OUTSUM= table contains the variables that are specified in the BY statement and the variables in the following list. This table also records the descriptive statistics for each variable that is specified in a VAR statement. Variables that are related to descriptive statistics are based on the ACCUMULATE= and SETMISSING= options in the ID and VAR statements.
- _NAME_
variable name
- _STATUS_
status flag that indicates whether the requested analyses were successful
- START
the starting date of each series
- END
the ending date of each series
- STARTOBS
the beginning observation number of each series
- ENDOBS
the ending observation number of each series
- NOBS
number of observations
- N
number of nonmissing observations
- NMISS
number of missing observations
- MINIMUM
minimum value
- MAXIMUM
maximum value
- AVG
average value
- STDDEV
standard deviation
OUTLOG= Table
The OUTLOG= table contains the variables that are specified in the BY statement and the variables in the following list. The OUTLOG= table records textual messages that arise from the processing of the BY group’s time series data. Messages are filtered based on the value of the LOGCONTROL= option. In addition to the BY variables, the OUTLOG= table includes the following columns:
- _ERRNO_
a numeric variable that stores the _ERRNO_ variable for the BY group. The value of _ERRNO_ might be set by the user-defined program directly or might be set implicitly by calling a function or method that sets the _ERRNO_ value.
- _LOGLEN_
a numeric variable that stores the length of the _LOG_ variable text (byte count).
- _LOG_
a character variable that stores the messages that are logged from the execution of the user-defined program on the BY group’s time series data. All messages from the BY group are concatenated into the variable. End-of-line characters separate the individual messages. If PUTTOLOG=YES is specified in the PROC TSMODEL statement, the _LOG_ variable also contains messages from any PUT programming statements that are specified.
_STATUS_ Variable Values
The _STATUS_ variable that appears in the OUTARRAY=, OUTSCALAR= and OUTSUM= tables contains a value that specifies whether the analysis has been successful or not. The _STATUS_ variable can take the following values:
- 0
Analysis was successful.
- 3000
Accumulation failed.
- 4000
Missing value interpretation failed.
- 6000
Series is all missing.
- 9000
Descriptive statistics could not be computed.