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.
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.
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 X1
–X6
as evar1
–evar6
, 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.
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 |
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.