Factor analysis

Parallel Analysis

Compares the eigenvalues from your data with eigenvalues generated from random datasets of the same size to show how many factors are worth retaining.

Method summary

Parallel analysis produces no factor solution of its own. It settles a single number, how many factors to keep. The reasoning behind it runs as follows: even in a dataset of pure random numbers the eigenvalues do not come out equal, because sampling fluctuation pushes the leading ones above one. For an eigenvalue in real data to count as meaningful, then, it has to clear not a fixed cut-off but the level expected from random data with the same number of rows and columns. The panel sets up that comparison by computing the observed eigenvalues from the correlation structure of your columns, generating many random datasets of the same size, taking the eigenvalues of each, and using your chosen percentile of the simulated distribution at every rank as the threshold. The result puts two figures side by side for each factor, the observed eigenvalue and the threshold. The decision is made at the first rank where the observed value falls below the threshold, and the factors ahead of that rank are the ones retained.

Which research questions does it answer?

  • The eigenvalue-above-one rule says five factors. Is it really five?
  • The elbow in my scree plot is ambiguous, so can I put a number behind the retention decision instead?
  • Does the claim that this scale is unidimensional survive a comparison against random data?
  • Before I settle on a number of components, which factors actually separate from sampling fluctuation?

When should you use it?

  • Before fitting an exploratory solution, while the number of factors is still being decided.
  • When the eigenvalue-above-one rule and the scree plot point in different directions and a third criterion is needed.
  • When the dimensionality of a scale is contested and the write-up has to justify the decision.
  • When at least three columns are available and there are more observations than columns; the engine refuses the run below either condition.
  • Before moving to a confirmatory model, to check that the number of factors you intend to test is consistent with the data.

Required variable types

  • Every column must be numeric: scale items or numeric ratings. Setting the measurement level to 'scale' on the Variable tab makes them eligible in the method picker.
  • There is no explained and explaining side. The columns are treated together as one pool of items.
  • Three columns is the hard minimum. Since the output is a decision about a factor count, six items or more is where the method becomes informative in practice.
  • There must be more observations than columns. When the two are equal, or observations are fewer, the correlation structure is singular and the run stops.
  • One row per respondent. A row with a missing value on any selected column is dropped, and the simulated datasets are then built with that reduced number of rows.

Key assumptions

Simulated data shaped like the real data
For the comparison to mean anything, the random datasets must share the number of rows and columns with the real one. The threshold states how large an eigenvalue to expect from data of exactly that size and shape.
Both sets of eigenvalues computed the same way
Observed and simulated eigenvalues have to come through the same computation, otherwise the two numbers are not on comparable footing.
Numeric columns with linear associations
Since the comparison rests on the correlation structure, associations are assumed linear and columns are assumed to be measured close to interval level. With binary items the eigenvalues can understate the associations and the decision drifts downwards.
Enough observations
As the number of cases falls, the observed eigenvalues fluctuate more and the decision becomes unsteady for borderline factors. The simulated thresholds are built from the same small number of cases and therefore rise too, but that does not remove the instability on the observed side.
Enough iterations for a steady threshold
The threshold is a percentile of the simulated distribution, and with few iterations that percentile is itself unsteady. More iterations settle it down.

How YouReply checks these assumptions

  • Simulated data shaped like the real data: The engine always generates the simulated datasets with the observation and column counts that entered the analysis, and there is no field for changing that, so the condition holds by construction.
  • Both sets of eigenvalues computed the same way: Both sides go through the same eigenvalue routine for symmetric matrices, which puts the two columns of the table on one scale.
  • Numeric columns with linear associations: The panel looks at neither the distributions of the columns nor the shape of their associations, and raises no warning about curvature or categorical measurement.
  • Enough observations: The only enforced condition is that observations outnumber columns. Beyond that the panel applies no adequacy threshold and issues no warning about sample size.
  • Enough iterations for a steady threshold: The iteration count is freely adjustable between 10 and 1000, with 100 as the default. The engine passes no judgement on whether a given count is sufficient; to see how steady the threshold is, raise the count and run again.

How the analysis is run

  1. 1Drag the file holding your item columns (CSV or XLSX) onto the upload area, arranged with one respondent per row.
  2. 2On the Data tab, confirm that the columns are read as numbers and that reverse-worded items have already been recoded.
  3. 3On the Variable tab declare the missing value codes and set the items to the 'scale' level. Codes left undeclared distort the correlation structure and shift the eigenvalues in the wrong direction.
  4. 4On the Analysis tab open the factor analysis category or search for the method name. With the 'Only ones that fit my data' switch on, methods that do not fit are dimmed rather than removed and carry their reason, and the data requirements box lets you confirm that observations outnumber columns.
  5. 5Tick the items in the parameter form. You can leave the iteration count and percentile at their defaults of 100 and the 95th, or change them within 10 to 1000 and 50 to 99 respectively.
  6. 6Start the run. No chart is drawn for this method; the result consists of collapsible sections holding the suggested factor count and the comparison table.
  7. 7Download the table as Excel and carry the retention decision into your write-up, then run exploratory factor analysis with that number entered by hand. The computation credits card names the library call and its version, and the free plan allows 50 runs per month.

Statistics and tables produced

Suggested number of factors
The figure the comparison yields. The scan halts at the first rank where the observed eigenvalue is equal to or smaller than the simulated threshold, and the factors ahead of that rank are counted.
Number the eigenvalue-above-one rule gives
The count of eigenvalues greater than one, reported in the same result for comparison. Placing the two numbers side by side shows immediately where the two criteria part company.
Comparison table
Three pieces of information per factor rank: the observed eigenvalue, the simulated eigenvalue, and whether that factor is retained. Ranks sitting just above or just below the threshold reveal where the decision is delicate.
Flag for an overestimating eigenvalue rule
The one flag in the output, raised when the eigenvalue-above-one rule suggests more factors than the comparison does. When it is up, a solution built on that rule is carrying surplus factors.
Run settings
The iteration count and percentile used, together with the number of observations and columns analysed. These belong in the write-up, because the threshold depends on them directly.

Effect size and confidence intervals

Gap between the observed eigenvalue and the simulated threshold
This gap is the quantity that says how far a factor separates from sampling fluctuation. A wide gap makes retention a safe decision; two figures close together make the decision sensitive to the iteration count and the percentile, and that sensitivity belongs in the write-up.
Size of the eigenvalue per factor
On the standardised scale an eigenvalue says how many columns' worth of variance a factor gathers. Divided by the number of columns it gives that factor's share of variance, although this method returns no percentages; those are read from exploratory factor analysis or component analysis output.
Difference between the two criteria
The gap between the count from the eigenvalue rule and the count from the comparison measures how strong the tendency to overestimate is in this particular dataset. A difference of one or two factors is unremarkable with survey data.

No confidence interval comes out of this method. The percentile setting is not a confidence level: it decides where the distribution of simulated eigenvalues is cut, which is to say how conservative the threshold will be. Nor does the suggested factor count carry a margin of uncertainty; the output is a single whole number. To judge how firm the decision is, read the pairs of observed and simulated values in the table, and if need be raise the iteration count or change the percentile and run again. Because the random number generator is seeded with a fixed value, repeated runs on the same data with the same settings return identical simulated values; something in the settings has to change before the numbers do.

Example research question and example result

The numbers below are a representative example, not data from a real study or a real user.

Research question
How many factors should be retained in a 20-item service quality battery? (Illustrative example, not real data.)
Variables
20 items on a five-point rating format, all numeric and at scale level · 350 respondents with complete answers · 100 iterations, 95th percentile (the defaults)
Example result
The observed eigenvalues at the first five ranks were 6.10, 2.42, 1.35, 1.12 and 1.04, against simulated thresholds of 1.46, 1.36, 1.29, 1.23 and 1.18 at the same ranks. The observed value stayed above the threshold for the first three factors and fell below it at the fourth (1.12 against 1.23), where the scan halted. The suggested number of factors was 3, while the eigenvalue-above-one rule gave 5, and the flag for an overestimating eigenvalue rule came back raised.
Interpretation
The comparison supports retaining three factors. The fourth and fifth eigenvalues do sit above 1, but they fall short of what random data of this size would produce, so they do not separate from sampling fluctuation, and that is exactly where the difference of two factors comes from. At the third rank the gap is narrow, 1.35 against 1.29, which puts that factor on the boundary: nudge the percentile up and the decision can move to two factors. Once the three-factor solution is fitted, then, it is worth checking how many items form the third factor, how large their loadings are, and whether the factor can be named in content terms. The count is decided here; the structure itself comes out of exploratory factor analysis.

Real output on a sample dataset

The results below were produced by the analysis engine from this data file. Changing the variable changes the research question as well; every run was computed in advance, so the page sends no request to the engine.

Variable examined

Scale development data (synthetic)

A twenty item five point Likert scale answered by three hundred people. The items come from two latent constructs: the first ten measure one construct, the last ten the other, and the two are moderately correlated. The factor and reliability methods run on this file.

Rows
300
Columns
respondent_id, item_1, item_2, item_3, item_4, item_5, item_6, item_7, item_8, item_9, item_10, item_11, item_12, item_13, item_14, item_15, item_16, item_17, item_18, item_19, item_20
Download the dataset as CSV

The data is synthetic: it comes from a fixed random seed, not from a real study. The values below were produced by the analysis engine from this file, so uploading the same file to the panel gives the same results.

Research question: Compared with random data, how many factors genuinely deserve to be retained, and is that fewer than the eigenvalue greater than one rule suggests?

Analyzed variables
item_1,item_2,item_3,item_4,item_5,item_6,item_7,item_8,item_9,item_10,item_11,item_12,item_13,item_14,item_15,item_16,item_17,item_18,item_19,item_20
Number of random datasets
200
Percentile of the random eigenvalues
95
Suggested number of factors
2
Number of factors by the Kaiser criterion
2
n_iterations
200
percentile
95
Valid observations
300
The Kaiser criterion overestimates
No

Eigenvalue comparison

Eigenvalue comparison
RowReal data eigenvalueRandom data eigenvalueFactor retainedExceeds the random eigenvalue
Faktör 15.701.59YesYes
Faktör 23.791.45YesYes
Faktör 30.8631.38NoNo
Faktör 40.8291.32NoNo
Faktör 50.7791.25NoNo
Faktör 60.7421.20NoNo
Faktör 70.7251.16NoNo
Faktör 80.6391.12NoNo
Faktör 90.6181.07NoNo
Faktör 100.6041.03NoNo
Faktör 110.5800.992NoNo
Faktör 120.5660.953NoNo
Faktör 130.5410.924NoNo
Faktör 140.5190.883NoNo
Faktör 150.4740.837NoNo
Faktör 160.4600.808NoNo
Faktör 170.4410.770NoNo
Faktör 180.4330.731NoNo
Faktör 190.3610.694NoNo
Faktör 200.3350.642NoNo

Computation credits: scipy 1.18.0 · statsmodels 0.14.6 · scikit-learn 1.9.0 · numpy 2.5.1 · pandas 3.0.5 · semopy 2.3.11 · 89fc29a · Data seed: 20260915

How to report the result

The number of factors was determined by Horn's parallel analysis (n = 350, 20 items, 100 iterations, 95th percentile): the first three observed eigenvalues (6.10, 2.42 and 1.35) exceeded their simulated counterparts (1.46, 1.36 and 1.29) while the fourth did not (1.12 against 1.23), so three factors were retained, against the five suggested by the eigenvalue-greater-than-one rule.

An example sentence close to APA style; the numbers are representative.

When you should not use it

  • The method decides a count and nothing else. No loading matrix, communalities, explained variance percentages or rotation appear in this output; the solution itself calls for a separate exploratory factor analysis run.
  • The scan is cut at the first rank where the observed eigenvalue falls below the threshold. A factor that clears its threshold after an earlier rank has already failed is not retained, so where the eigenvalue curves cross again the rule behaves cautiously and may leave a candidate factor out.
  • For borderline factors the answer depends on the percentile and iteration count. Choosing the 99th percentile instead of the 95th on the same data can reduce the number retained, which is why the settings used have to be reported.
  • Because the random number generator is seeded with a fixed value, runs on the same data with the same settings return identical simulated values. That is the behaviour you want for reproducibility, but it also hides the variability of the simulation itself.
  • The suggested count is a statistical decision, not a theoretical one. If the items cannot be sensibly named under three factors, the number alone is not sufficient grounds.
  • No confidence interval or margin of uncertainty is returned; the output is one whole number plus a comparison table.

What to use when the assumptions are not met

  • Exploratory Factor Analysis (EFA)Why: To fit the solution itself once the number of factors is settled; loadings, communalities and explained variance are produced there.
  • Principal Component Analysis (PCA)Why: When the aim is not to establish a number of latent dimensions but to track, as a percentage, how much spread survives a reduction in columns.
  • Confirmatory Factor Analysis (CFA)Why: When both the factor count and the item-to-factor assignments come from theory; the question is then tested through fit indices rather than derived from the data.

Frequently asked questions

Why does parallel analysis disagree with the eigenvalue-above-one rule?
Because the two criteria take different things as their threshold. The eigenvalue rule uses a fixed number, the variance one item carries on the standardised scale. But in a dataset of random numbers the leading eigenvalues climb above 1 purely through sampling fluctuation, and the more items there are the larger that inflation grows. Parallel analysis rebuilds the threshold from data of your own size and so absorbs the inflation, which is why it usually suggests fewer factors. The literature has long shown the eigenvalue rule to overstate the number of factors, and where the two answers diverge, taking the one based on comparison is common practice.
How many iterations and which percentile should I use?
The defaults are 100 iterations and the 95th percentile, which is the combination most often used in practice. The iteration count governs how steady the threshold is: a percentile computed from 10 iterations wobbles, so if a decision sits on the boundary it is worth raising the count to 500 or 1000 and running again. The percentile governs how conservative the threshold is: the 99th lifts it and fewer factors survive, while values near the middle such as 50 lower it and the rule turns generous. Whichever settings you use belong in the write-up, because the count only means something alongside them.
Why might a factor that clears its threshold still not be retained?
The rule is not to count every factor above its threshold but to stop at the first rank where the observed eigenvalue is equal to or below the simulated one. Suppose the fourth factor falls short and the fifth rises back above: the scan is cut at the fourth and the fifth is not retained. The reason is that once the sequence has broken, later excesses are no longer reliably distinguishable from simulation noise. Since the comparison table shows the raw figures, you can see such a case for yourself.
Can I use this method to show that my scale is unidimensional?
If the suggested count comes out as 1, that is evidence of a single dimension separating from random data, but it is not a test of unidimensionality. Where a reliability coefficient rests on the assumption of one dimension, the decision should be backed by fitting a one-factor model in confirmatory factor analysis and examining its fit. It also pays to see how close the second eigenvalue came to its threshold: a value like 1.27 against a threshold of 1.29 leaves the unidimensionality claim weak.

References

Try it with your own data

The free plan includes 50 analysis runs a month and needs no card.