12.8 - Example: Places Rated Data

Example 12-2: Places Rated Section

This method of factor analysis is being carried out using the program shown below:

Download the SAS Program here: places3.sas

Here we have specified the Maximum Likelihood Method by setting method=ml. Again, we need to specify the number of factors.

You will notice that this program produces errors and does not complete the factor analysis. We will start out without the Heywood or priors options discussed below to see the error that occurs and how to remedy it.

For m = 3 factors, maximum likelihood estimation fails to converge.  An examination of the records of each iteration reveals that the commonality of the first variable (climate) exceeds one during the first iteration.  Because the communality must lie between 0 and 1, this is the cause for failure.

SAS provides a number of different fixes for this kind of error.  Most fixes adjust the initial guess, or starting value, for the commonalities.



  1. Attempt adding a priors option to the procedure to set an initial guess for the commonalities. Available priors include:
    • priors=smc: Sets the prior commonality of each variable proportional to the R2 of that variable with all other variables as an initial guess.
    • priors=asmc: As above with an adjustment so that the sum of the commonalities is equal to the maximum of the absolute correlations.
    • priors=max: Sets the prior commonality of each variable to the maximum absolute correlation within any other variable.
    • priors=random: Sets the prior commonality of each variable to a random number between 0 and 1.

    This option is added within the proc factor line of code (proc factor method=ml nfactors=3 priors=smc;).  If we begin with better-starting values, then we might have better luck at convergence. Unfortunately, in trying each of these options, (including running the random option multiple times), we find that these options are ineffective for our Places Rated Data. The second option needs to be considered.

  2. Attempt adding the Heywood option to the procedure (proc factor method=ml nfactors=3 heywood;). This sets communalities greater than one back to one, allowing iterations to proceed. In other words, if the commonality value falls out of bounds, then it will be replaced by a value of one. This will always yield a solution, but frequently the solution will not adequately fit the data.

We start with the same values for the commonalities and then at each iteration, we obtain new values for the commonalities. The criterion is a value that we are trying to minimize in order to obtain our estimates. We can see that the convergence criterion decreases with each iteration of the algorithm.

Iteration Criterion Ridge Change Communalities
1 0.3291161 0.0000 0.2734 0.47254 0.40913 0.73500 0.22107
        0.38516 0.26178 0.75125 0.46384
2 0.2946707 0.0000 0.5275 1.00000 0.37872 0.75101 0.20469
        0.36111 0.26155 0.75298 0.48979
3 0.2877116 0.0000 0.0577 1.00000 0.41243 0.80868 0.22168
        0.38551 0.26263 0.74546 0.53277
4 0.2876330 0.0000 0.0055 1.00000 0.41336 0.81414 0.21647
        0.38365 0.26471 0.74493 0.53724
5 0.2876314 0.0000 0.0007 1.00000 0.41392 0.81466 0.21595
        0.38346 0.26475 0.74458 0.53794

You can see in the second iteration that rather than report a commonality greater than one, SAS replaces it with the value one and then proceeds as usual through the iterations.

After five iterations the algorithm converges, as indicated by the statement on the second page of the output.  The algorithm converged to a setting where the commonality for Climate is equal to one.

Performing factor analysis (MLE extraction)

To perform factor analysis using maximum likelihood

  1. Open the ‘places_tf.csv’ data set in a new worksheet.
  2. Transform variables. This step is optional but used in the steps below.  
    1. Calc > Calculator
    2. Highlight and select ‘climate’ to move it to the Store result window.
    3. In the Expression window, enter LOGTEN( 'climate') to apply the (base 10) log transformation to the climate variable.
    4. Choose OK. The transformed values replace the originals in the worksheet under ‘climate’.
    5. Repeat sub-steps 1) through 4) above for all variables housing through econ.
  3. Stat > Multivariate > Factor Analysis
    1. Highlight and select climate through econ to move all 9 variables to the Variables window.
    2. Choose 3 for the number of factors to extract.
    3. Choose Maximum Likelihood for the Method of Extraction.
    4. Under Results, select All and MLE iterations, and choose OK.
  4. Choose OK again. The numeric results are shown in the results area.