I need to be able to reproduce some SAS results in R, as far as this is possible (note: I'm very familiar with R and barely used SAS). The original SAS code is as follows:
PROC FACTOR CORR DATA=<data> OUT=FactorScore SIMPLE CORR RES METHOD=PRINCIPAL PRIORS=SMC NFACT=10 MAXITER=100 HEYWOOD SCREE ROTATE=PROMAX ROUND FLAG=.38; RUN;
As far as I'm able to understand, this runs FA with these properties
- PCA-based decomposition (
- Computing prior communality estimates using squared multiple correlation (
- 10 factors (
- Setting any communality $>1$ to be 1 (
- Promax rotation (
- As no
POWERis noted, Promax will use default power $k=3$
- While printing the results it drops out loadings smaller than 0.38 (
The rest of the parameters aren't interesting me (as a matter of fact
FLAG doesn't either), at least as far as I can understand.
Using R and the same
<data> file, I want to reproduce the exact same results. Using the
psych library I've tried
principal(r = data, nfactors = 10, rotate = "promax") but it's no match, as it has no option equivalent for SAS's
HEYWOOD, MAXITER params; Another shot was
fa(r = data, nfactors = 10, rotate = "promax", SMC = T, max.iter = 100, fm = "pa")
which uses the principal decomposition but I still can't specify the
HEYWOOD correction; In addition, I can't see where I set the power parameter for the promax.
Any help would be appreciated.