The CALIS Procedure

Compatibility with the TCALIS Procedure in SAS/STAT 9.2

Prior to the extensive changes and feature enhancements of the CALIS procedure in SAS/STAT 9.22, an experimental version of the CALIS procedure, called PROC TCALIS, was made available in SAS/STAT 9.2. In fact, the CALIS procedure in SAS/STAT 9.22 or later builds on the foundations of the TCALIS procedure. Although the experimental TCALIS procedure and the current CALIS procedure have some similar features, they also have some major differences. This section describes these major differences so that users who have experience in using the TCALIS procedure can adapt better to the current version of the CALIS procedure. In this section, whenever the CALIS procedure is mentioned without version reference, it is assumed to be the PROC CALIS version in SAS/STAT 9.22 or later.

Naming Parameters Is Optional in PROC CALIS

In essence, the CALIS procedure does not require the use of parameter names in specifications, whereas the TCALIS procedure (like the PROC CALIS versions prior to SAS/STAT 9.22) does require the use of parameter names. For example, in the TCALIS procedure you might specify the following LINEQS model:

proc tcalis;
  lineqs
     X1 = 1.      * F1 + E1,
     X2 = l2      * F1 + E2,
     X3 = l3 (.2) * F1 + E3;
  cov
     E1 E2 = cv12;
run;

Two parameters for factor loadings are used in the specification: l1 and l2. The initial value of l2 is set to 0.2. The covariance between the error terms E1 and E2 is named cv12. These parameters are not constrained, and therefore names for these parameters are not required in PROC CALIS, as shown in the following specifications:

proc calis;
  lineqs
     X1 = 1.    * F1 + E1,
     X2 =       * F1 + E2,
     X3 = (0.2) * F1 + E3;
  cov
     E1 E2;
run;

Parameter names for the two loadings in the second and the third equations are automatically generated by PROC CALIS. So is the error covariance parameter between E1 and E2. Except for the names of these parameters, the preceding PROC TCALIS and PROC CALIS specifications generate the same model.

Names for parameters are only optional in PROC CALIS, but they are not prohibited. PROC CALIS enables you to specify models efficiently without the burden of having to create parameter names unnecessarily. But you can still use parameter names and the corresponding syntax in PROC CALIS wherever you want to, much as you do in PROC TCALIS.

Another example is the following PATH model specification in PROC TCALIS:

proc tcalis;
   path
     X1 <--- F1    1. ,
     X2 <--- F1    l2 ,
     X3 <--- F1    l3 (0.2);
  pcov
     X1 X2 = cv12;
run;

Again, naming the unconstrained parameters l1, l2, and cv12 is not required with the CALIS procedure, as shown in the following specification:

proc calis;
   path
     X1 <--- F1    = 1. ,      /* path entry 1 */
     X2 <--- F1         ,      /* path entry 2 */
     X3 <--- F1    = (0.2);    /* path entry 3 */
  pcov
     X1 X2;
run;

Without any parameter specification (that is, neither a name nor a value), the second path entry specifies a free parameter for the path effect (or coefficient) of F1 on X2. The corresponding parameter name for the effect is generated by PROC CALIS internally. In the third path entry, only an initial value is specified. Again, a parameter name is not necessary there. Similarly, PROC CALIS treats this as a free path effect parameter with a generated parameter name. Lastly, the error covariance between X1 and X2 is also a free parameter with a generated parameter name.

Although in PROC CALIS naming unconstrained free parameters in the PATH model is optional, PROC CALIS requires the use of equal signs before the specifications of parameters, fixed values, or initial values. The TCALIS procedure does not enforce this rule. Essentially, this stricter syntax rule in PROC CALIS makes the parameter specifications distinguishable from path specifications in path entries and therefore is necessary for the development of the multiple-path syntax, which is explained in the next section.

Changes in the PATH Statement Syntax

The PATH statement syntax was first available in the TCALIS procedure and was also a major addition to the CALIS procedure in SAS/STAT 9.22. This statement is essential to the PATH modeling language for specifying general structural equation models. Table 29.3 summarizes the major differences between the two versions.

Table 29.3: Changes in the PATH Statement Syntax

Syntax

PROC CALIS

PROC TCALIS

Naming unconstrained free parameters

Optional

Required

Equal signs before parameter specifications

Required

Not used

Treatment of unspecified path parameters

Free parameters

Fixed constants at 1

Multiple-path syntax

Supported

Not supported

Extended path syntax

Supported

Not supported


The following example shows how to specify a PATH model in PROC TCALIS:

proc tcalis;
   path
      F1 ---> X1           ,
      F1 ---> X2    a2 (.3),
      F1 ---> X3    a3     ,
      F2 ---> X4    1.     ,
      F2 ---> X5    a5     ,
      F2 ---> X6    a6     ;
   pvar
      F1 F2   = fvar1 fvar2,
      X1-X6   = evar1-evar6;
   pcov
      F1 F2   = covF1F2;

run;

The following statements show to specify the preceding PATH model in PROC CALIS equivalently:

proc calis;
   path
      F1 ---> X1    = 1.         ,     /* path entry 1 */
      F1 ---> X2    = (.3)       ,     /* path entry 2 */
      F1 ---> X3                 ,     /* path entry 3 */
      F2 ---> X4-X6 = 1. a5 a6   ,     /* path entry 4 */
      F1 <--> F1                 ,     /* path entry 5 */
      F2 <--> F2                 ,     /* path entry 6 */
      F1 <--> F2    = covF1F2    ,     /* path entry 7 */
      <--> X1-X6    = evar1-evar6;     /* path entry 8 */
run;

The differences in specifications between the two versions are as follows:

  • In PROC CALIS, naming unconstrained free parameters in the PATH statement is optional.For example, in the PROC TCALIS specification, the parameter names a2 and a3 have been used for path entries 2 and 3, respectively. They can be omitted with the PROC CALIS specification.

  • In PROC CALIS, you must use equal signs before parameter specifications in all path entries. For example, equal signs are necessary in path entries 1, 2, 4, 7, and 8 to separate the parameter specifications from the path specifications. However, because equal signs are not part of the syntax in PROC TCALIS, the TCALIS procedure cannot distinguish parameter specifications from path specifications in path entries. Consequently, PROC TCALIS is incapable of handling multiple-path syntax such as path entry 4 and extended path syntax such as path entry 8.

  • In PROC CALIS, unspecified parameters are treated as free parameters. For example, path entries 3, 5, and 6 are free parameters for the path effect of F1 on X3, the variance of F1, and the variance of F2, respectively. In contrast, these unspecified parameters are treated as fixed constants 1 in PROC TCALIS. That is also why path entry 1 must specify a fixed value of 1 explicitly with the PROC CALIS specification. Otherwise, PROC CALIS treats it as a free parameter for the path effect.

  • In PROC CALIS, you can use the multiple-path syntax. For example, path entry 4 specifies three different paths from F2 in a single entry. The parameter specifications after the equal sign are distributed to the multiple paths specified in order (that is, to X4, X5, and X6, respectively). However, in PROC TCALIS you must specify these paths separately in three path entries.

  • In PROC CALIS, you can use the extended path syntax to specify all kinds of parameters in the PATH statement.For example, path entries 5 and 6 specify the variance parameters for F1 and F2, respectively. Because these variances are unconstrained free parameters, you do not need to use parameter names (but you can use them if you want). In PROC TCALIS, however, you must specify these variance parameters in the PVAR statement. Path entries 7 and 8 in the PROC CALIS specification provide other examples of the extended path syntax available only in PROC CALIS. Path entry 7 specifies the covariance parameter between F1 and F2 as CovF1F2 (although the name for this free parameter could have been omitted). You must specify this covariance parameter in the PCOV statement if you use PROC TCALIS. Path entry 8 specifies the error variances for X1X6 as evar1evar6, respectively. You must specify these error variance parameters in the PVAR statement if you use PROC TCALIS. Essentially, in PROC CALIS you can specify all types of parameters in the PATH model as path entries in the PATH statement. See the PATH statement for details about the extended path syntax.

Changes in the Automatic Free Parameters in Functional Models

The CALIS and the TCALIS procedures differ in their treatment of automatic free parameters in functional models. Functional models refer to those models that can (but do not necessarily have to) analyze predictor-outcome or exogenous-endogenous relationships. In general, models that use the following statements are functional models: FACTOR, LINEQS, LISMOD, PATH, and RAM. Automatic free parameters in these functional models are those parameters that are free to estimate by default even if you do not specify them explicitly in the syntax. Table 29.4 indicates which types of parameters are automatic free parameters in PROC CALIS and PROC TCALIS.

Table 29.4: Automatic Free Parameters in PROC CALIS and PROC TCALIS

Automatic Free Parameters

PROC CALIS

PROC TCALIS

Variances

Exogenous observed variables

Yes

Yes

Exogenous latent factors

Yes

Yes

Error variables

Yes

Yes

Covariances

Between exogenous observed variables

Yes

Yes

Between exogenous latent factors

Yes$^1$

No

Between exogenous observed variables and exogenous latent factors

Yes

No

Between error variables

No

No

Means

Exogenous observed variables

Yes

Yes

Exogenous latent factors

No

No

Intercepts

Endogenous observed variables

Yes

No

Endogenous latent factors

No

No


1. This does not apply to exploratory FACTOR models, where covariances between latent factors in the unrotated factor solution are fixed zeros.

Regarding the treatment of automatic free parameters, this table shows that unlike the CALIS procedure, PROC TCALIS does not set default free parameters in (1) the covariances between exogenous latent factors themselves and between any pairs of exogenous latent factors and observed variables, and (2) the intercepts for the endogenous observed variables.

You can compare these two schemes of setting automatic free parameters in the following three scenarios.

First, when no functional relationships are specified in the model (and hence no latent factors and no intercept parameters), the treatment of automatic free parameters by either PROC CALIS or PROC TCALIS leads to just-identified or saturated covariance and mean structures, which is certainly a reasonable "baseline" parameterization that saturates the relationships among observed variables.

Second, when there are functional relationships between observed variables in the model and no latent factors are involved, the treatment by PROC CALIS is more reasonable because it leads to a parameterization similar to that of linear regression models. That is, PROC CALIS sets the intercepts to free parameters. However, the treatment by PROC TCALIS would lead to restrictive linear regression models with zero intercepts.

Finally, when latent factors are involved, the treatment by PROC CALIS is more "natural" in the sense that the covariances among all exogenous variables are saturated in the model, rather than being restricted to zeros for the parts pertaining to latent factors, as in PROC TCALIS. Saturating the covariances between latent factors is seen to be more natural because all variables in empirical research are usually believed to be correlated, no matter how small the correlation.

Therefore, in general the PROC CALIS treatment of automatic free parameters is recommended. The treatment by PROC TCALIS might be more compatible to models that assume independent or uncorrelated latent factors such as the unrotated exploratory factor model. In this situation, to use PROC CALIS you must use the PATH , PVAR , RAM , VARIANCE , or specific MATRIX statements to set the covariances between factors to fixed zeros.