Factor analysis

Principal Component Analysis (PCA)

Turns many numeric columns into a handful of components that between them carry as much of the total spread in the data as possible.

Method summary

Principal component analysis rewrites your numeric columns onto new axes that sit at right angles to one another. The first component holds the widest spread any weighted sum of the columns can hold; the second takes the widest spread left over while staying at right angles to the first, and so on down the list. The panel rescales every column to a mean of zero and a standard deviation of one, then decomposes that matrix into its singular values, from which the eigenvalues follow. The logic differs from the common factor model in one decisive way: nothing latent is posited here. Components are exact weighted sums of the observed columns, and the computation absorbs the variance peculiar to each column along with the variance it shares. Shared and error variance are therefore never separated, and a component is not read as the indicator of a measurement model. The question this method answers is narrower and more practical: with how many dimensions do I keep how much of the spread in my data?

Which research questions does it answer?

  • My survey has 14 numeric columns; can I carry them forward as three or four components instead?
  • How many components do I need to retain 80% of the spread in the dataset?
  • Can I convert a set of heavily overlapping predictors into uncorrelated components before fitting a model?
  • Which columns weigh most on the first component, that is, which columns move together along the widest axis in the data?

When should you use it?

  • When the goal is to cut the number of columns and to know in figures how much spread that costs.
  • When the components are not expected to stand for anything theoretical; they often serve as a technical intermediate product.
  • When overlapping columns need to be turned into mutually uncorrelated ones so that redundancy does not trouble a later model.
  • When at least two numeric columns and at least 10 observations are available; the engine declines to run below either floor.
  • When the columns are measured in different units. Standardisation is applied on every run, so a column with a large unit cannot dominate the solution on its own.

Required variable types

  • Only numeric columns enter the analysis: scale items, scores, amounts, durations or percentages. Marking them as 'scale' on the Variable tab is what makes the method picker treat them as eligible.
  • No outcome column is chosen. Every column enters on equal footing and none of them is treated as the side being explained.
  • Two columns is the technical minimum, but a two-column solution is not really a reduction; in practice the method earns its keep from about five columns upwards.
  • Categorical columns cannot be used as they are. To bring one into the solution, build 0/1 derived columns for it on the Variable tab.
  • A constant column, identical for every respondent, adds nothing. The engine will not raise a division error on it, but neither will it tell you the column carries no information.

Key assumptions

Overlapping information across columns
Reduction is only possible because columns repeat part of one another's information. Where columns are mutually unrelated, each component corresponds to a single column and the eigenvalues come out close together, which makes dropping components expensive.
Linearity of the associations
Because components are weighted sums, only linear patterns are captured. Where the link between two columns bends, most of that link never reaches the components and the loss simply shows up as a lower explained variance percentage.
Scale effects kept under control
On raw data a column with a large variance decides the first component by itself, which is why rescaling is obligatory when units differ.
Sufficient observations
Component weights obtained from few cases swing noticeably between samples. As the number of columns approaches the number of cases, the solution fits the sample too closely and the explained variance percentages turn optimistic.
No single case steering the spread
Since the method works by gathering as much variance as it can, one extreme row can pull the direction of the first component. The further such a row sits from the rest, the more weight it earns in the solution.

How YouReply checks these assumptions

  • Overlapping information across columns: This method returns no measure of whether the correlation matrix is worth factoring: neither a sampling adequacy index nor a test of sphericity is computed, since both belong to the exploratory factor analysis method. To see the overlap, run a correlation method over the same columns.
  • Linearity of the associations: The panel does not inspect the shape of any pair of columns and issues no warning about curvature. That judgement rests on the data grid and on descriptive output you run separately.
  • Scale effects kept under control: The engine standardises every column before the decomposition, so the solution rests on the correlation structure rather than on raw covariances. There is no option to work on raw data, which means this condition is met by construction.
  • Sufficient observations: The enforced floor is 10 observations and a run below it is refused. That floor says nothing about adequacy; it marks the smallest dataset on which the computation goes through, and any ratio guideline is yours to apply.
  • No single case steering the spread: The panel does not check this assumption automatically; the researcher evaluates it.

How the analysis is run

  1. 1Drop the CSV or XLSX file holding your numeric columns onto the upload area, with column names in the first row.
  2. 2On the Data tab, check that columns meant to be numbers are not being read as text. Columns with a comma as the decimal separator are the usual culprit here.
  3. 3On the Variable tab declare missing value codes, give the columns readable labels and set the measurement level to 'scale'. If a categorical column is to join the solution, recode it as 0/1 derived columns.
  4. 4On the Analysis tab type the method name into the search box or open the factor analysis category. With the 'Only ones that fit my data' switch on, methods that do not fit stay in the list but appear dimmed with a plain-language reason beside them, and the data requirements box reports how many numeric columns you have.
  5. 5Tick the columns in the parameter form. Enter a component count and exactly that many components are extracted while the variance threshold field is ignored; leave the count empty and the threshold takes effect, and with both fields empty as many components as columns are computed.
  6. 6Start the run. The scree plot comes first, followed by collapsible sections for the loading table, the eigenvalues, the per-component and cumulative variance percentages, the component score preview and the details of the solution.
  7. 7Download the tables as Excel and the charts as PNG. The computation credits card names the library call and its version, and the run is kept on the History tab. The free plan allows 50 runs per month.

Statistics and tables produced

Component loadings
The weight of every column on every component, scaled from the direction vectors that the decomposition produces. They show which columns moving together a given component stands for.
Eigenvalues
The amount of variance each component gathers on the standardised scale. They sum to the number of columns, and the scree plot is drawn from this list.
Explained variance per component
Each component's share of the total spread. The order always descends, so the first component's share is the largest on every run.
Cumulative variance percentage
The proportion of spread retained once the first k components are kept. The decision on how many components to keep usually rests on this column.
Component score preview
Scores for the first 5 observations on the first 3 components. This is a preview only: the full transformed dataset is neither returned nor downloadable, so component scores cannot be fed into another analysis from this output.
Count of eigenvalues above one
A single figure given for information. It does not set the number of components: with the parameter left empty the engine extracts as many components as there are columns, not as many as this count.
Details of the solution
The number of components extracted, the number of columns analysed and the number of observations used. The observation count is what remains once rows with missing values on the selected columns are dropped.
Scree plot and loading radar
A chart of how the eigenvalues fall away across the component order is drawn on every run. With at most 15 columns and at most 5 components, a radar chart of the loadings is added.

Effect size and confidence intervals

Variance explained by a component
A component's share of the spread in the dataset. With survey ratings, a first component between 30% and 50% is unremarkable, while a single component above 70% suggests the columns largely measure one and the same thing.
Cumulative explained variance
The figure that states the price of the reduction directly. A cumulative share of 70% to 80% is a common working target, but since the percentage rises on its own as components are added, report how many components were needed to reach it.
Eigenvalue compared with one
On standardised data a single column carries one unit of variance, so a component with an eigenvalue below 1 summarises less information than one column does. The comparison appears in the output for information, and this criterion is known to suggest more components than warranted.

This method returns no confidence interval for anything it produces. Loadings, eigenvalues, variance percentages and component scores arrive as point values with no standard errors beside them. Nothing in the output tests whether a loading differs from zero or whether two components differ in the share they explain. To gauge how stable a solution is, you can split the data in half, run the same columns twice and compare the loading patterns; the panel will not make that comparison for you.

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 far can 12 numeric store experience ratings be condensed for use in later models? (Illustrative example, not real data.)
Variables
12 columns of store experience ratings, all numeric and flagged as scale level · 260 respondents with complete answers · Component count left empty, variance threshold left empty
Example result
All 12 components were computed. The first four eigenvalues were 4.12, 2.05, 1.31 and 0.88, corresponding to variance shares of 34.3%, 17.1%, 10.9% and 7.3%, and cumulative shares of 34.3%, 51.4%, 62.3% and 69.6%. The count of eigenvalues above one was reported as 3. On the first component, staff attentiveness, speed of problem resolution and friendliness loaded between 0.74 and 0.81; on the second, price and promotion perception stood out at 0.69 and 0.72. The score preview showed the first 5 respondents on the first 3 components.
Interpretation
Three components carry roughly two thirds of the spread across the 12 columns. The fourth adds 7 points to the cumulative share, but with an eigenvalue under 1 it summarises less than a single column does. Continuing with three components means accepting that the remaining 38% of the spread is set aside, and that acceptance belongs in the write-up. The content of the loadings helps to name the components, but those names stay descriptive: because no latent construct has been modelled, nothing here licenses the claim that these three dimensions are subscales of an instrument. A claim of that kind has to rest on a common factor model and a test of fit. Note also that the preview withholds the full scores, so these components cannot be carried into a regression from this output.

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: How much of the variance in the twenty items can be summarised by how many components?

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 components
20
Number of variables
20
Valid observations
300
Components by the Kaiser criterion
2

Loading matrix

Loading matrix
RowComponent 1Component 2Component 3Component 4Component 5Component 6Component 7Component 8Component 9Component 10Component 11Component 12Component 13Component 14Component 15Component 16Component 17Component 18Component 19Component 20
item_1-0.5960.416-0.0700.215-0.0170.0420.053-0.060-0.3850.018-0.1520.239-0.0880.188-0.0460.114-0.038-0.2250.257-0.079
item_2-0.5680.378-0.042-0.287-0.3130.125-0.1630.0230.3010.0340.013< 0.0010.2760.040-0.0150.231-0.157-0.2100.0540.123
item_3-0.5950.3600.0510.2120.1100.136-0.168-0.3070.054-0.192-0.130-0.363-0.042-0.069-0.138-0.0760.239-0.165-0.0490.096
item_4-0.6080.3860.2000.1760.034-0.097-0.0350.2500.148-0.1580.025-0.0820.1620.256-0.157-0.275-0.1320.2130.155-0.045
item_5-0.6300.347-0.072-0.004-0.164-0.365-0.060-0.2900.085-0.056-0.1030.146-0.026-0.224-0.1170.027-0.1290.119-0.144-0.268
item_6-0.6040.346-0.1180.006-0.1960.2030.304-0.1920.1460.1120.0830.095-0.3130.2500.035-0.0360.0060.193-0.1270.161
item_7-0.5640.364-0.074-0.386-0.033-0.134-0.3070.2180.0060.049-0.1060.121-0.198-0.0560.189-0.1860.2920.0200.0860.014
item_8-0.5460.405-0.2720.1630.1440.087-0.0170.072-0.0260.2830.451-0.1260.007-0.1770.097-0.148-0.101-0.134-0.006-0.110
item_9-0.6100.3500.305-0.1770.174-0.1140.1050.156-0.292-0.1550.0890.020-0.093-0.216-0.0740.065-0.191< 0.001-0.1310.258
item_10-0.5990.4140.0070.0150.0910.0570.3130.143-0.1020.019-0.144-0.1250.3140.0210.2400.1990.2100.135-0.134-0.125
item_11-0.421-0.434-0.5030.228-0.0630.230-0.0190.3330.039-0.150-0.1620.089-0.034-0.222-0.1840.053< 0.0010.103-0.0240.066
item_12-0.358-0.533-0.219-0.222-0.050-0.3250.465-0.0090.0200.088-0.155-0.1780.055-0.002-0.080-0.212-0.014-0.1990.0730.060
item_13-0.416-0.545-0.295-0.1740.044-0.103-0.303-0.035-0.281-0.0850.118-0.1000.0780.365-0.0440.022-0.0370.014-0.233-0.019
item_14-0.427-0.5100.197-0.135-0.4180.2010.010-0.134-0.2800.0760.193-0.0620.131-0.157-0.139-0.0540.1440.1850.152-0.027
item_15-0.495-0.4620.2250.252-0.055-0.3290.0080.1990.1720.1240.2190.034-0.1320.074-0.1490.2570.246-0.099-0.033-0.003
item_16-0.546-0.3960.105-0.0530.3180.068-0.171-0.0600.0380.466-0.267-0.148-0.072-0.012-0.0580.117-0.1500.1710.0830.019
item_17-0.521-0.4110.115-0.1230.3840.2120.068-0.1400.137-0.0140.0600.4330.213-0.001-0.108-0.1460.113-0.092-0.074-0.019
item_18-0.492-0.518-0.0260.358-0.053-0.226-0.117-0.1850.008-0.0600.0040.1080.155-0.0650.386-0.047-0.0560.0670.0790.228
item_19-0.450-0.5340.3450.105-0.2560.233-0.0260.1690.004-0.002-0.176-0.033-0.1350.0100.177-0.159-0.147-0.203-0.200-0.155
item_20-0.522-0.490-0.023-0.2190.1970.0970.102-0.0670.142-0.3720.154-0.130-0.214-0.0090.1610.174-0.0750.0340.210-0.157

Eigenvalues

Component 1
5.70
Component 2
3.79
Component 3
0.863
Component 4
0.829
Component 5
0.779
Component 6
0.742
Component 7
0.725
Component 8
0.639
Component 9
0.618
Component 10
0.604
Component 11
0.580
Component 12
0.566
Component 13
0.541
Component 14
0.519
Component 15
0.474
Component 16
0.460
Component 17
0.441
Component 18
0.433
Component 19
0.361
Component 20
0.335

Variance explained (percent)

Component 1
28.52
Component 2
18.93
Component 3
4.31
Component 4
4.15
Component 5
3.89
Component 6
3.71
Component 7
3.63
Component 8
3.19
Component 9
3.09
Component 10
3.02
Component 11
2.90
Component 12
2.83
Component 13
2.70
Component 14
2.60
Component 15
2.37
Component 16
2.30
Component 17
2.21
Component 18
2.17
Component 19
1.81
Component 20
1.68

Cumulative variance explained

Component 1
28.52
Component 2
47.45
Component 3
51.76
Component 4
55.91
Component 5
59.80
Component 6
63.52
Component 7
67.14
Component 8
70.33
Component 9
73.43
Component 10
76.45
Component 11
79.35
Component 12
82.18
Component 13
84.88
Component 14
87.47
Component 15
89.84
Component 16
92.14
Component 17
94.35
Component 18
96.52
Component 19
98.32
Component 20
100.00

Sample component scores (first five cases)

Sample component scores (first five cases)
RowComponent 1Component 2Component 3
obs_03.801.43-0.314
obs_11.395.03-0.219
obs_2-4.89-2.84-0.470
obs_3-2.27-2.30-0.182
obs_41.71-2.19-0.074

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 twelve rating columns were submitted to principal component analysis on standardised data (n = 260). The first three components carried 62.3% of the total spread (eigenvalues 4.12, 2.05 and 1.31; individual shares 34.3%, 17.1% and 10.9%), with loadings on the first component ranging from 0.74 to 0.81.

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

When you should not use it

  • Components are not modelled as indicators of anything latent. Where the shared variance of items has to be separated out and a measurement model built, a common factor approach is required instead; a component solution is not evidence of subscales.
  • Component scores come back only as a preview of the first 5 observations on the first 3 components. Since the transformed dataset cannot be downloaded, the reduced columns cannot serve as input to a later analysis.
  • No rotation is applied. The components stay arranged so that each in turn gathers the widest remaining spread, so loadings may not resolve onto single columns the way they do in rotated factor solutions, and interpretation can be harder.
  • The variance threshold field works only when the component count is left empty. Fill both and the threshold is silently ignored in favour of the count you typed.
  • No standard errors or intervals accompany any output, so whether two loadings or two explained shares differ is a matter of eyeballing.
  • A row missing a value on any selected column drops out entirely. Where missingness has accumulated, the solution describes a self-selected subset of the dataset.

What to use when the assumptions are not met

  • Exploratory Factor Analysis (EFA)Why: When the shared variance of items has to be separated from what is specific to each and latent dimensions are to be interpreted; the common factor model keeps shared and error variance apart.
  • Parallel AnalysisWhy: When how many components or factors to keep is the question itself; it puts a figure behind the decision by comparing against eigenvalues from random data.
  • K-Means Cluster AnalysisWhy: When what needs condensing is rows rather than columns, that is, when similar respondents are to be sorted into groups.
  • Pearson CorrelationWhy: When there are only a few columns and the question is simply which ones move together; pairwise coefficients read more directly than a component solution.

Frequently asked questions

Should I use component analysis or common factor analysis?
It depends on what you want out of it. Component analysis repackages the observed columns and takes the whole of each column's variance into the solution, including the part specific to that column; what it delivers is a technical reduction, the ability to proceed with fewer columns. Common factor analysis tries instead to separate what items share from what is error, and what it delivers is a proposed measurement model. If you are developing a scale, naming subscales or arguing about a construct, the common factor route is the right address. If you want to summarise many overlapping columns, thin out repeated information or produce uncorrelated new variables, component analysis is enough.
How many components should I keep?
Leave the parameter empty and the engine extracts as many components as there are columns, which is no reduction at all; the decision stays with you. You can read the cumulative variance column and see which component reaches the share you are aiming for, take the point where the scree plot flattens as your criterion, or leave the component count empty and type a variance threshold so the engine finds the smallest number of components that meets it. The reported count of eigenvalues above one is information only, and that criterion is known to suggest more components than warranted; the parallel analysis method supports the same decision with a comparison against random data.
Can I use the component scores in another analysis?
Not from this output. The score table is a preview limited to the first 5 observations and the first 3 components; the full transformed dataset is neither displayed nor available for download. To carry components into a regression as predictors you would have to compute the weighted sums yourself, or build the columns as derived columns on the Variable tab.
Why is there no sampling adequacy measure or sphericity test in the results?
Both are computed by the exploratory factor analysis method, not by this one. If you want to see whether the correlation matrix is worth factoring, run exploratory factor analysis over the same columns separately. A component solution can always be produced mathematically, so the engine sets no eligibility gate here: eigenvalues come back even when the columns are unrelated to one another, and all that changes is how much a reduction costs.

References

Try it with your own data

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