Contact information

PromptCloud Inc, 16192 Coastal Highway, Lewes De 19958, Delaware USA 19958

We are available 24/ 7. Call Now.
Exploratory Factor Analysis
Jimna Jayan

Exploratory Factor Analysis (EFA) is a powerful statistical method used in data analysis for uncovering the underlying structure of a relatively large set of variables. It is particularly valuable in situations where the relationships between variables are not entirely known or when data analysts seek to identify underlying latent factors that explain observed patterns in data.

At its core, EFA helps in simplifying complex data sets by reducing a large number of variables into a smaller set of underlying factors, without significant loss of information. This technique is instrumental in various fields, including psychology, marketing, finance, and social sciences, where it aids in identifying patterns and relationships that are not immediately apparent.

The importance of EFA lies in its ability to provide insights into the underlying mechanisms or constructs that influence data. For example, in psychology, EFA can be used to identify underlying personality traits from a set of observed behaviors. In customer satisfaction surveys, it helps in pinpointing key factors that drive consumer perceptions and decisions.

Moreover, EFA is crucial for enhancing the validity and reliability of research findings. By identifying the underlying factor structure, it ensures that subsequent analyses, like regression or hypothesis testing, are based on relevant and concise data constructs. This not only streamlines the data analysis process but also contributes to more accurate and interpretable results.

In summary, Exploratory Factor Analysis is an essential tool in the data analyst’s arsenal, offering a pathway to decipher complex data sets and revealing the hidden structures that inform and guide practical decision-making. Its role in simplifying data and uncovering latent variables makes it a cornerstone technique in the realm of data analysis and interpretation.

What is exploratory factor analysis in R?

Exploratory Factor Analysis (EFA) or roughly known as factor analysis in R is a statistical technique that is used to identify the latent relational structure among a set of variables and narrow it down to a smaller number of variables. This essentially means that the variance of a large number of variables can be described by a few summary variables, i.e., factors. 

Basic Concept and Mathematical Foundation:

  • The fundamental idea behind EFA is that there are latent factors that cannot be directly measured but are represented by the observed variables.
  • Mathematically, EFA models the observed variables as linear combinations of potential factors plus error terms. This model is represented as: X = LF + E, where X is the matrix of observed variables, L is the matrix of loadings (which shows the relationship between variables and factors), F is the matrix of factors, and E is the error term.
  • Factor loadings, which are part of the output of EFA, indicate the degree to which each variable is associated with each factor. High loadings suggest that the variable has a strong association with the factor.
  • The process involves extracting factors from the data and then rotating them to achieve a more interpretable structure. Common rotation methods include Varimax and Oblimin.

Differences from Confirmatory Factor Analysis (CFA):

  • EFA differs from Confirmatory Factor Analysis (CFA) in its purpose and application. While EFA is exploratory in nature, used when the structure of the data is unknown, CFA is confirmatory, used to test hypotheses or theories about the structure of the data.
  • In EFA, the number and nature of the factors are not predefined; the analysis reveals them. In contrast, CFA requires a predefined hypothesis about the number of factors and the pattern of loadings based on theory or previous studies.
  • EFA is more flexible and is often used in the initial stages of research to explore the possible underlying structures. CFA, on the other hand, is used for model testing and validation, where a specific model or theory about the data structure is being tested against the observed data.

Exploratory Factor Analysis is a powerful tool for identifying the underlying dimensions in a set of data, particularly when the relationships between variables are not well understood. It serves as a foundational step in many statistical analyses, paving the way for more detailed and hypothesis-driven techniques like Confirmatory Factor Analysis.

Here is an overview of efa in R.

Exploratory Factor Analysis

As the name suggests, EFA is exploratory in nature – we don’t really know the latent variables, and the steps are repeated until we arrive at a lower number of factors. In this tutorial, we’ll look at EFA using R. Now, let’s first get the basic idea of the dataset.

1. The Data

This dataset contains 90 responses for 14 different variables that customers consider while purchasing a car. The survey questions were framed using a 5-point Likert scale with 1 being very low and 5 being very high. The variables were the following:

  • Price
  • Safety
  • Exterior looks
  • Space and comfort
  • Technology
  • After-sales service
  • Resale value
  • Fuel type
  • Fuel efficiency
  • Color
  • Maintenance
  • Test drive
  • Product reviews
  • Testimonials

Download the coded dataset now.

2. Importing WebData

Now we’ll read the dataset present in CSV format into R and store it as a variable.

[code language=”r”] data <- read.csv(file.choose(),header=TRUE) [/code]

It’ll open a window to choose the CSV file and the `header` option will make sure that the first row of the file is considered as the header. Enter the following to see the first several rows of the data frame and confirm that the data has been stored correctly.

[code language=”r”] head(data) [/code]

3. Package Installation

Now we’ll install the required packages to carry out further analysis. These packages are `psych` and `GPArotation`. In the code given below, we are calling `install.packages()` for installation.

[code language=”r”] install.packages(‘psych’) install.packages(‘GPArotation’) [/code]

4. Number of Factors

Next, we’ll find out the number of factors that we’ll be selecting for factor analysis statistics. This is evaluated via methods such as `Parallel Analysis` and `eigenvalue`, etc.

Parallel Analysis

We’ll be using the `Psych` package’s `fa.parallel` function to execute the parallel analysis. Here we specify the data frame and factor method (`minres` in our case). Run the following to find an acceptable number of factors and generate the `scree plot`:

[code language=”r”] parallel <- fa.parallel(data, fm = ‘minres’, fa = ‘fa’) [/code]

The console would show the maximum number of factors we can consider. Here is how it’d look.

“Parallel analysis suggests that the number of factors = 5 and the number of components = NA“

Given below in the `scree plot` generated from the above code:

Parallel Analysis Scree Plot

The blue line shows eigenvalues of actual data and the two red lines (placed on top of each other) show simulated and resampled data. Here we look at the large drops in the actual data and spot the point where it levels off to the right. Also, we locate the point of inflection – the point where the gap between simulated data and actual data tends to be minimum.

Looking at this plot and parallel analysis, anywhere between 2 to 5 factors would be a good choice.

Factor Analysis

Now that we’ve arrived at a probable number of factors, let’s start off with 3 as the number of factors. In order to perform factor analysis, we’ll use the `psych` packages`fa()function. Given below are the arguments we’ll supply:

  • r – Raw data or correlation or covariance matrix
  • nfactors – Number of factors to extract
  • rotate – Although there are various types of rotations, `Varimax` and `Oblimin` are the most popular
  • fm – One of the factor extraction techniques like `Minimum Residual (OLS)`, `Maximum Liklihood`, `Principal Axis` etc.

In this case, we will select oblique rotation (rotate = “oblimin”) as we believe that there is a correlation in the factors. Note that Varimax rotation is used under the assumption that the factors are completely uncorrelated. We will use `Ordinary Least Squared/Minres` factoring (fm = “minres”), as it is known to provide results similar to `Maximum Likelihood` without assuming a multivariate normal distribution and derives solutions through iterative eigendecomposition like a principal axis.

Run the following to start the analysis.

[code language=”r”] threefactor <- fa(data,nfactors = 3,rotate = “oblimin”,fm=”minres”) print(threefactor) [/code]

Here is the output showing factors and loadings:


Now we need to consider the loadings of more than 0.3 and not loading on more than one factor. Note that negative values are acceptable here. So let’s first establish the cut-off to improve visibility.

[code language=”r”] print(threefactor$loadings,cutoff = 0.3) [/code]


As you can see two variables have become insignificant and two others have double-loading. Next, we’ll consider the ‘4’ factors.

[code language=”r”] fourfactor <- fa(data,nfactors = 4,rotate = “oblimin”,fm=”minres”) print(fourfactor$loadings,cutoff = 0.3) [/code]


We can see that it results in only single-loading. This is known as the simple structure.

Hit the following to look at the factor mapping.

[code language=”r”] fa.diagram(fourfactor) [/code]

Adequacy Test

Now that we’ve achieved a simple structure it’s time for us to validate our model. Let’s look at the factor analysis output to proceed.

Factor Analysis Model Adequacy

The root means the square of residuals (RMSR) is 0.05. This is acceptable as this value should be closer to 0. Next, we should check the RMSEA (root mean square error of approximation) index. Its value, 0.001 shows a good model fit as it is below 0.05. Finally, the Tucker-Lewis Index (TLI) is 0.93 – an acceptable value considering it’s over 0.9.

Naming the Factors

Naming the factors

After establishing the adequacy of the factors, it’s time for us to name the factors. This is the theoretical side of the analysis where we form the factors depending on the variable loadings. In this case, here is how the factors can be created.

The Importance of EFA in Data Analysis

Exploratory Factor Analysis (EFA) is a critical tool in data analysis, highly valued for its ability to simplify complex datasets, reduce dimensions, and reveal latent variables. The significance of EFA in various industries and research fields is multifaceted:

efa in data analysis

Simplifying Data

  • EFA helps in making large sets of variables more manageable. By identifying clusters or groups of variables that are closely related, EFA reduces the complexity of data. This simplification is crucial in making the data more understandable and in facilitating clearer, more concise interpretations.

Reducing Dimensions

  • In datasets with numerous variables, EFA serves as an efficient method for dimensionality reduction. It consolidates information into a smaller number of factors, making it easier to analyze without a significant loss of original information. This reduction is particularly useful in fields like machine learning and statistics, where handling large numbers of variables can be computationally intensive and challenging.

Uncovering Latent Variables

  • One of the most significant advantages of EFA is its ability to identify latent variables. These are underlying factors that are not directly observed but inferred from the relationships between observed variables. In psychology, for example, EFA can reveal underlying personality traits from observed behaviors. In marketing research, it can identify consumer preferences and attitudes that are not directly expressed.

Role in Various Industries and Research Fields

  • Market Research: In market research, EFA is used to understand consumer behavior, segment markets, and identify key factors that influence purchase decisions.
  • Psychology and Social Sciences: EFA is extensively used in psychological testing to identify underlying constructs in personality, intelligence, and attitude measurement.
  • Healthcare: In the healthcare sector, EFA helps in understanding the factors that affect patient outcomes and in developing scales for assessing patient experiences or symptoms.
  • Finance: EFA assists in risk assessment, portfolio management, and identifying underlying factors that influence market trends.
  • Education: In educational research, EFA is utilized to develop and validate testing instruments and to understand educational outcomes.

In each of these fields, EFA not only aids in data reduction and simplification but also provides critical insights that might not be apparent from the raw data alone. By revealing hidden patterns and relationships, EFA plays a pivotal role in informing decision-making processes, developing strategic initiatives, and advancing scientific understanding. The versatility and applicability of EFA across different domains underscore its importance as a fundamental tool in data analysis.


In this tutorial for analysis in r, we discussed the basic idea of EFA in R (exploratory factor analysis in R), covered parallel analysis, and scree plot interpretation. Then we moved to factor analysis in R to achieve a simple structure and validate the same to ensure the model’s adequacy. Finally arrived at the names of factors from the variables. Now go ahead, try it out, and post your findings in the comment section.

If you’re intrigued by the possibilities of EFA and other data analysis techniques, we invite you to delve deeper into the world of advanced data solutions with PromptCloud. At PromptCloud, we understand the power of data and the importance of extracting meaningful insights from it. Our suite of data analysis tools and services is designed to cater to diverse needs, from web scraping and data extraction to advanced analytics.

Whether you’re looking to harness the potential of big data for your business, seeking to understand complex data sets, or aiming to transform raw data into strategic insights, PromptCloud has the expertise and tools to help you achieve your goals. Our commitment to delivering top-notch data solutions ensures that you can make data-driven decisions with confidence and precision.

Explore our offerings, learn more about how we can assist you in navigating the ever-evolving data landscape, and take the first step towards unlocking the full potential of your data with PromptCloud. Visit our website, reach out to our team of experts, and join us on this journey of data exploration and innovation.

Frequently Asked Questions (FAQs)

What is the factor analysis function in R?

Factor analysis in R is a statistical method used to describe variability among observed, correlated variables in terms of potentially lower unobserved variables, called factors. Essentially, it helps in understanding the underlying structure of a data set.

What is PCA factor analysis in R?

Principal Component Analysis (PCA) in R is a technique used for dimensionality reduction, simplifying the complexity in high-dimensional data while retaining trends and patterns. PCA transforms the original variables into a new set of variables, the principal components, which are orthogonal (as uncorrelated as possible), and which account for as much of the variability in the data as possible.

What is the difference between EFA and CFA?

The main difference between Exploratory Factor Analysis (EFA) and Confirmatory Factor Analysis (CFA) lies in their objectives and methods:

  • Exploratory Factor Analysis (EFA) is used when the relationships among variables are not known. EFA explores the data to find patterns and identify underlying factors. It’s a ‘discovery’ tool used to understand data structure without predefined notions.

  • Confirmatory Factor Analysis (CFA), on the other hand, is used to test hypotheses or theories about the relationships among variables. In CFA, the researcher has a specific idea about how many factors there are and which variables are linked to which factors. It’s a ‘testing’ tool used to confirm or reject preconceived notions about data structure.

EFA is about exploring and discovering patterns in data, while CFA is about testing specific hypotheses regarding these patterns

How do you interpret exploratory factor analysis results?

Interpreting the results of Exploratory Factor Analysis (EFA) involves several steps to understand the underlying structure of your data:

  1. Factor Loadings: Examine the factor loadings, which are the correlations between the variables and the factors. Loadings close to 1 or -1 indicate a strong relationship between a variable and a factor. Generally, a loading of 0.3 or higher is considered significant.

  2. Factor Extraction: Look at how many factors were extracted and their eigenvalues. An eigenvalue represents the total variance explained by each factor. A common rule of thumb is to consider factors with eigenvalues greater than 1.

  3. Cumulative Variance: Assess the cumulative variance explained by the factors. This indicates how much of the total variation in the data is accounted for by the factors extracted. A higher cumulative variance (e.g., 60% or more) suggests that the factors provide a good summary of the data.

  4. Scree Plot: Review the scree plot, which plots the eigenvalues against the factors. The point where the slope of the curve becomes less steep (the ‘elbow’) typically suggests the optimal number of factors to retain.

  5. Factor Rotation: If rotation was used (like Varimax), interpret the rotated factor solution. Rotation can make the interpretation easier by making the factor loadings more distinct.

  6. Naming Factors: Based on the variables that load highly on each factor, assign a descriptive name to each factor that reflects the common theme or construct they represent.

  7. Cross-Loadings and Uniqueness: Note any cross-loadings (where a variable loads significantly on more than one factor) and uniqueness (the variance in a variable not explained by the factors), as these can provide additional insights or indicate complex relationships.

  8. Confirm with Additional Analysis: EFA results should be interpreted in the context of additional analysis and theory. Sometimes, running a Confirmatory Factor Analysis (CFA) or other analyses can further validate the structure found in EFA.

Interpreting EFA results involves examining factor loadings, the number of factors, the explained variance, and the relationships between variables and factors. It’s a process that combines statistical criteria with subjective judgment, guided by the researcher’s knowledge of the domain.

Is exploratory factor analysis necessary?

Whether Exploratory Factor Analysis (EFA) is necessary depends on the specific goals and context of your research or data analysis project. Here are some considerations to determine if EFA is necessary:

  1. Understanding Data Structure: If you have a large set of variables and want to understand the underlying structure or dimensions within your data, EFA is an invaluable tool. It helps in identifying latent constructs that might not be immediately apparent.

  2. Data Reduction: In cases where data reduction is needed to simplify complex datasets without losing significant information, EFA is beneficial. It consolidates many variables into fewer, more manageable factors.

  3. Pre-Model Building: Before building predictive models, EFA can be used to identify which variables cluster together. This can inform more efficient model construction and reduce multicollinearity issues.

  4. New Areas of Research: When exploring new areas of research where theories or prior research are limited, EFA can help in discovering and defining key concepts and variables.

  5. Instrument Development: In fields like psychology or education, EFA is crucial for developing and validating measurement instruments, like questionnaires or tests.

  6. Pre-Confirmatory Analysis: If you plan to conduct Confirmatory Factor Analysis (CFA) later, EFA is often a necessary preliminary step to explore potential factor structures.

However, EFA is not necessary if:

  • The structure of the data is already known and established through prior research.
  • The dataset is small, and relationships among variables are clear.
  • The goal is to test a specific hypothesis about the data structure, in which case CFA or other methods might be more appropriate.

In conclusion, the necessity of EFA depends on your research objectives, the nature of your data, and the extent of existing knowledge about the data structure. It’s a powerful exploratory tool, particularly useful in the early stages of research for understanding and preparing data for further analysis.

What is the difference between principal factor analysis and exploratory factor analysis?

The difference between Principal Factor Analysis (PFA) and Exploratory Factor Analysis (EFA) lies primarily in the method and purpose of factor extraction:

  1. Principal Factor Analysis (PFA):

    • PFA, often called Principal Axis Factoring, is a specific method of factor extraction used within the broader framework of EFA.
    • It focuses on explaining the common variance (covariance) in the data – that is, the variance shared among the variables, excluding unique variance (variance specific to individual variables).
    • PFA attempts to identify the underlying latent factors that account for the common variance among variables. It does not consider the total variance (which includes unique and error variances).
  2. Exploratory Factor Analysis (EFA):

    • EFA is a broader category of factor analysis aimed at exploring the underlying structure of a dataset without any predefined hypotheses.
    • EFA encompasses various methods of factor extraction, including Principal Factor Analysis and Principal Component Analysis (PCA).
    • The choice of extraction method (such as PFA) in EFA depends on the specific goals of the analysis and the nature of the data.

In summary, Principal Factor Analysis is a technique within the scope of Exploratory Factor Analysis. EFA refers to the entire process of exploring data for underlying structures, while PFA is a specific method used for extracting factors based on shared variance in the data. The choice between PFA and other methods like PCA within EFA typically depends on the researcher’s specific objectives and the characteristics of the dataset.

How does one interpret the rotated factor loadings in practical terms?

Interpreting rotated factor loadings involves understanding the relationship between the variables and the underlying factors they are associated with. A higher loading of a variable on a specific factor indicates a stronger relationship with that factor. In practical terms, researchers should look for variables that load significantly on the same factor and group them together to represent a latent construct or dimension of the data being analyzed. This process involves qualitative judgment to name and interpret these factors based on the variables that load highly on them, considering the theoretical framework and the context of the study.

What are the best practices for handling missing data when performing EFA?

Handling missing data in exploratory factor analysis requires careful consideration to avoid biasing the results. One common approach is to use listwise or pairwise deletion, where observations with missing values are excluded from the analysis. However, this can lead to a significant reduction in sample size and potential loss of valuable information. A more sophisticated method is to impute missing values using techniques such as mean imputation, regression imputation, or multiple imputation. These methods fill in missing values based on the information available in the dataset, allowing for a more complete and accurate factor analysis. The choice of method depends on the nature of the missing data and the assumptions underlying each imputation technique.

How can one validate the results obtained from EFA? 

Validating the results obtained from exploratory factor analysis involves several strategies to ensure the stability and generalizability of the factor structure. One common approach is to split the sample into two halves and perform EFA separately on each half to see if similar factor structures emerge. Another method is to conduct a confirmatory factor analysis (CFA) on a new sample to test whether the factor structure identified through EFA holds. Additionally, researchers might use goodness-of-fit indices in CFA to assess how well the model fits the data. These validation techniques help confirm the reliability of the factor solution and its applicability across different samples or contexts.

Sharing is caring!

Are you looking for a custom data extraction service?

Contact Us