If I understand it correctly, the Horn Test comprises a single sample Monte Carlo simulation of the variance “explained” by bogus factors extracted from a random dataset (a random reshuffling of the cells in the data matrix?)

If so, the criterion that factors be extracted if they exceed the variance explained by these bogus factors (at that factor’s rank order) amounts, in conventional hypothesis testing terms, to a demonstration that p<.5, i.e. very lax.

I appreciate that significance testing is not necessarily the aim of every PCA, however it would be useful to demonstrate the degree of surety that existed for a factor’s claim to not be noise.

It seems to me that the solution would be run a more standard Monte Carlo simulation, that is, to generate multiple random data sets to generate a distribution of “variance explained” at each factor rank, against which the variance expalined by the observed factor could be compared, and then allocate a p value based on the number of bogus factors that explained more variance than it

Eg, significance testing of observed Factor 6: Run 1000 simulations, In three of these bogus factor 6 explains more variance than the observed factor 6, so p =.003

I don’t know how difficult this would be to implement. At the user end I have no problem with calculations that run overnight.

Tom