In addition to the general modeling languages such as PATH, RAM, LINEQS, and LISMOD, the CALIS procedure provides a specialized language for factor analysis. In the FACTOR modeling language, you can specify either exploratory or confirmatory factor models. For exploratory factor models, you can specify the number of factors, factor extraction method, and rotation algorithm, among many other options. For confirmatory factor models, you can specify the variable-factor relationships, factor variances and covariances, and the error variances.
For example, the following is an exploratory factor model fitted to the Wheaton et al. (1977) data by using PROC CALIS:
proc calis nobs=932 data=Wheaton; factor n=2 rotate=varimax; run;
In this model, you want to get the varimax-rotated solution with two factors. By default, the factor extraction method is maximum likelihood (METHOD=ML). Maximum likelihood exploratory factor analysis by PROC CALIS can also be done equivalently by the FACTOR procedure, as shown in the following statements for the Wheaton et al. (1977) data:
proc factor nobs=932 data=Wheaton n=2 rotate=varimax method=ml; run;
Note that METHOD=ML is necessary because maximum likelihood is not the default method in PROC FACTOR.
Whereas you can use either the CALIS or FACTOR procedure to fit certain exploratory factor models, you can only use the CALIS procedure to fit confirmatory factor models. In a confirmatory factor model, you are assumed to have some prior knowledge about the variable-factor relations. For example, in your substantive theory, some observed variables are not related to certain factors in the model. The following statements illustrate the specification of a confirmatory factor model for Wheaton et al. (1977) data:
proc calis nobs=932 data=Wheaton; factor Alien67 ===> Anomie67 Powerless67 = 1.0 load1, Alien71 ===> Anomie71 Powerless71 = 1.0 load2, SES ===> Education SEI = 1.0 load3; pvar Alien67 = phi11, Alien71 = phi22, SES = phi33, Anomie67 = theta1, Powerless67 = theta2, Anomie71 = theta3, Powerless71 = theta4, Education = theta5, SEI = theta6; cov Alien71 Alien67 = phi21, SES Alien67 = phi31, SES Alien71 = phi32; run;
Unlike the model fitted by the PATH, RAM, LINEQS, or LISMOD modeling language in previous sections, the confirmatory factor model considered here is purely a measurement model—that is, there are no functional relationships among factors in the model (beyond the covariances among factors) and hence it is a different model. In the FACTOR statement, you specify factors on the left-hand side of the entries, followed by arrows and the manifest variables that are related to the factors. On the right-hand side of the entries, you specify either parameter names or fixed parameter values for the corresponding factor loadings. In this example, there are three factors with three loadings to estimate. In the PVAR statement, you specify the parameters for factor variances and error variances of manifest variables. In the COV statement, you specify the factor covariances. As compared with the PATH, RAM, LINEQS, or LISMOD, the factor modeling language has more restrictions on parameters. These restrictions are listed as follows:
factor-factor paths and variable-to-factor paths are not allowed
error covariances and factor-error covariances are not allowed
For more information about exploratory and confirmatory factor models and the FACTOR modeling language, see the section The FACTOR Model or the FACTOR statement .