How can I bootstrap my data before doing factor analysis?
The idea of bootstrapping for factor analysis is a bit weird, for a couple of reasons.
First, the purpose of bootstrapping is to estimate things like standard errors and statistical significance. Standard errors and/or statistical significance are not usually reported for factor analysis (although they can be).
The second (and way bigger reason) it's a bit weird is because when we bootstrap we combine a set of parameters from each bootstrap distribution. But each time you factor analyze a bootstrap sample, you get a different set of parameters. First, because you extract the factors - you might not extract the same number of factors each time. Second, because you rotate the solution. It's possible for a factor to 'flip' and all its loadings and correlations have their signs change from positive to negative.
Here's a rotated solution:
F1 F2 V1 0.6 0.3 V2 -0.7 -0.1 V3 0.1 0.9 V4 0.2 0.8
F1 F2 V1 0.3 -0.6 V2 -0.1 0.7 V3 0.9 -0.1 V4 0.8 -0.2
They are exactly the same. Your bootstrap needs to be able to recognize that - and that's very hard to do (especially when they can be similar).
If you want to bootstrap to get standard errors of your estimates, you do confirmatory factor analysis, not exploratory. (Although I've heard talk of people doing Procrustes rotation to a target matrix to do something like bootstrapping, but I've never seen it in practice).
One place that something like bootstrapping is used in factor analysis is in a parallel analysis to determine the number of factors to extract.