It has been many years since I thought carefully about this. However, I think the correct answers are:
1. Yes, you can use PROC SCORE to get the factor scores. It shouldn't matter whether you use CORR or COV as the starting point. The doc for PROC SCORE has an example.
2. Yes, if you have tens of millions of observations and intend to run PROC FACTOR many times (maybe trying to find good rotations), then starting with the COV or CORR matrix will be faster. However, computing these matrices are so fast that if you have a moderately sized data, you probably won't notice the speed difference.
3. I don't have Hatcher's book, but it sounds like his example uses a DATA step to set the TYPE= attribute of the data set. This is not necessary. If the data set was created by PROC CORR, for example, then it already has the TYPE=CORR attribute. It it came from some other source (eg, you imported an EXCEL file), you can just put the TYPE=CORR attribute on the DATA= option at run time. Study the following examples carefully. Both calls to PROC FACTOR are equivalent. Neither requires a DATA step.
/* create C, which is a TYPE=CORR data set */
proc corr data=sashelp.cars NOMISS outp=C;
run;
proc factor data=corr; /* the procedure knows this is TYPE=CORR */
run;
proc factor data=corr(type=corr); /* or you can specify it here */
run;
The previous code is also equivalent to reading the raw data directly, in which case PROC FACTOR will create the correlation matrix on the fly:
proc factor data=sashelp.cars;
run;
4. (second-to-last paragraph) Yes, if you are not worried about the time it takes to run, and you have raw data to input, the default behavior (as above) is to use the correlation matrix.
5. If you want certain variables to have more influence than others. use the COV option to specify the covariance matrix:
proc factor data=sashelp.cars cov;
run;
In the future, when you ask more than two questions in a single response, please number your questions so it is easier to associate answers to questions.
To learn more about the TYPE=CORR and TYPE=COV data sets, I highly recommend that you read the section "Special Data Sets" in the SAS/STAT documentation. Click on the two relevant links.
... View more