Chapter 15 Exploratory Factor Analysis
15.1 Intro
Exploratory Factor Analysis (EFA) is a data reduction method that can be useful to identify what in psychology are called latent constructs.
15.1.1 Example dataset
This example uses the Rosetta Stats example dataset “pp15” (see Chapter 1 for information about the datasets and Chapter 3 for an explanation of how to load datasets).
15.1.2 Variable(s)
From this dataset, this example uses variables highDose_AttBeliefs_long
, highDose_AttBeliefs_intensity
, highDose_AttBeliefs_intoxicated
, highDose_AttBeliefs_energy
, highDose_AttBeliefs_euphoria
, highDose_AttBeliefs_insight
, highDose_AttBeliefs_connection
, highDose_AttBeliefs_contact
& highDose_AttBeliefs_sex
.
15.2 Input: jamovi
In the “Analyses” tab, click the “Factor” button and from the menu that appears, select “Exploratory Factor Analysis” as shown in Figure 15.1.

Figure 15.1: Opening the exploratory factor analysis menu in jamovi
In the box at the left, select the items and move them to the box labelled “Variables” using the button labelled with the rightward-pointing arrow as shown in Figure 15.1.

Figure 15.2: Selecting the variables for the exploratory factor analysis in jamovi
The factor analysis is then immediately executed and shown in the right-hand Results panel with a number of default settings.
If you scroll down, you can specify your analysis and change these defaults. For example, we can indicate that we want to select factors with an eigenvalue over 1 and that we want to see the factor summary, the correlation between factors, the model fit measures, and the scree plot, as shown in Figure 15.3.

Figure 15.3: Selecting the variables for the exploratory factor analysis in jamovi
15.3 Input: R
15.3.1 R: rosetta
In R, using the rosetta
package, you can use the following command:
::factorAnalysis(
rosettadata = dat,
items = c(
'highDose_AttBeliefs_long',
'highDose_AttBeliefs_intensity',
'highDose_AttBeliefs_intoxicated',
'highDose_AttBeliefs_energy',
'highDose_AttBeliefs_euphoria',
'highDose_AttBeliefs_insight',
'highDose_AttBeliefs_connection',
'highDose_AttBeliefs_contact',
'highDose_AttBeliefs_sex'
),nfactors = "eigen"
);
Note that this function forces you to specify how many factor you want to extract with the nfactors
argument. You can also specify “eigen
” to use the Kaiser criterion, in which case you can specify the minimum eigen value with the kaiser
argument (set to 1
by default).
To order additional information, such as a factor summary, the correlations between the factors, a scree plot, and the residuals, and to specify pretty item labels, you can specify additional options:
::factorAnalysis(
rosettadata = dat,
items = c(
'highDose_AttBeliefs_long',
'highDose_AttBeliefs_intensity',
'highDose_AttBeliefs_intoxicated',
'highDose_AttBeliefs_energy',
'highDose_AttBeliefs_euphoria',
'highDose_AttBeliefs_insight',
'highDose_AttBeliefs_connection',
'highDose_AttBeliefs_contact',
'highDose_AttBeliefs_sex'
),itemLabels = c(
'Expectation that a high dose results in a longer trip',
'Expectation that a high dose results in a more intense trip',
'Expectation that a high dose makes you more intoxicated',
'Expectation that a high dose provides more energy',
'Expectation that a high dose produces more euphoria',
'Expectation that a high dose yields more insight',
'Expectation that a high dose strengthens your connection with others',
'Expectation that a high dose facilitates making contact with others',
'Expectation that a high dose improves sex'
),nfactors = "eigen",
summary = TRUE,
correlations = TRUE,
scree = TRUE,
residuals = TRUE
);
15.4 Input: SPSS
15.4.2 SPSS: Syntax
In SPSS, the FACTOR
command is used. Important arguments are /VARIABLES
to specify the items, /CRITERIA
to specify how many factors to extract (or how to decide that; e.g. MINEIGEN(1)
to select factor with an eigenvalue over 1, or FACTORS(2)
to extract 2 factors), /EXTRACTION
to specify the factor extraction method (e.g. ULS
for ordinary least squares, PAF
for prinicipal axis factoring, and ML
for maximum likelihood), and /ROTATION
to set the rotation (e.g. NOROTATE
for no rotation, VARIMAX
for an orthogonal rotation, and OBLIMIN
for an oblique oblimin rotation. Don’t forget the period at the end (.
), the command terminator.
FACTOR
/VARIABLES
highDose_AttBeliefs_long
highDose_AttBeliefs_intensity
highDose_AttBeliefs_intoxicated
highDose_AttBeliefs_energy
highDose_AttBeliefs_euphoria
highDose_AttBeliefs_insight
highDose_AttBeliefs_connection
highDose_AttBeliefs_contact
highDose_AttBeliefs_sex
/CRITERIA =
MINEIGEN(1)
/EXTRACTION =
ULS
/ROTATION =
OBLIMIN
.
To request specific results, the /PRINT
and /PLOT
arguments can be used, for example:
FACTOR
/VARIABLES
highDose_AttBeliefs_long
highDose_AttBeliefs_intensity
highDose_AttBeliefs_intoxicated
highDose_AttBeliefs_energy
highDose_AttBeliefs_euphoria
highDose_AttBeliefs_insight
highDose_AttBeliefs_connection
highDose_AttBeliefs_contact
highDose_AttBeliefs_sex
/CRITERIA =
FACTORS(1)
/PRINT =
INITIAL
EXTRACTION
UNIVARIATE
CORRELATION
REPR
/PLOT =
EIGEN
/EXTRACTION =
ULS
/ROTATION =
OBLIMIN
.
15.6 Output: R
15.6.1 R: rosetta
15.6.1.1 Exploratory Factor Analysis (EFA)
Extraction method: | Minimum Residuals |
Rotation: | Oblimin rotation |
Sample size: | 213 |
Factor 1 | Factor 2 | Uniqueness | |
---|---|---|---|
Expectation that a high dose results in a longer trip | 0.17 | 0.40 | 0.80 |
Expectation that a high dose results in a more intense trip | 0.08 | 0.77 | 0.39 |
Expectation that a high dose makes you more intoxicated | -0.07 | 0.89 | 0.22 |
Expectation that a high dose provides more energy | 0.37 | 0.14 | 0.83 |
Expectation that a high dose produces more euphoria | 0.71 | 0.17 | 0.44 |
Expectation that a high dose yields more insight | 0.69 | -0.07 | 0.53 |
Expectation that a high dose strengthens your connection with others | 0.86 | -0.01 | 0.26 |
Expectation that a high dose facilitates making contact with others | 0.84 | -0.05 | 0.30 |
Expectation that a high dose improves sex | 0.41 | -0.12 | 0.83 |
SS Loadings | % of Variance | Cumulative % | |
---|---|---|---|
Factor 1 | 2.77 | 31 | 31 |
Factor 2 | 1.62 | 18 | 49 |
Factor 1 | Factor 2 | |
---|---|---|
Factor 1 | 1.00 | 0.11 |
Factor 2 | 0.11 | 1.00 |

Figure 15.5: Scree plot of the eigen values
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
---|---|---|---|---|---|---|---|---|---|
1: Expectation that a high dose results in a longer trip | 0.80 | -0.01 | -0.01 | 0.05 | 0.02 | 0.05 | -0.01 | -0.06 | -0.03 |
2: Expectation that a high dose results in a more intense trip | -0.01 | 0.39 | 0.01 | -0.05 | 0.02 | -0.06 | 0.02 | 0.03 | 0.03 |
3: Expectation that a high dose makes you more intoxicated | -0.01 | 0.01 | 0.22 | 0.02 | -0.03 | 0.02 | -0.01 | 0.01 | -0.01 |
4: Expectation that a high dose provides more energy | 0.05 | -0.05 | 0.02 | 0.83 | 0.02 | 0.04 | -0.04 | 0.00 | -0.03 |
5: Expectation that a high dose produces more euphoria | 0.02 | 0.02 | -0.03 | 0.02 | 0.44 | 0.02 | -0.01 | -0.04 | 0.03 |
6: Expectation that a high dose yields more insight | 0.05 | -0.06 | 0.02 | 0.04 | 0.02 | 0.53 | -0.02 | -0.03 | 0.03 |
7: Expectation that a high dose strengthens your connection with others | -0.01 | 0.02 | -0.01 | -0.04 | -0.01 | -0.02 | 0.26 | 0.06 | -0.04 |
8: Expectation that a high dose facilitates making contact with others | -0.06 | 0.03 | 0.01 | 0.00 | -0.04 | -0.03 | 0.06 | 0.30 | 0.01 |
9: Expectation that a high dose improves sex | -0.03 | 0.03 | -0.01 | -0.03 | 0.03 | 0.03 | -0.04 | 0.01 | 0.83 |
15.7 Output: SPSS

Figure 15.6: The output of the factor analysis in SPSS part 1

Figure 15.7: The output of the factor analysis in SPSS part 2