Factor Analysis Made Simple & How To Tutorial In Python

by | Nov 28, 2023 | Data Science

What is Factor Analysis?

Factor analysis is a potent statistical method for comprehending complex datasets’ underlying structure or patterns. Its primary objective is to condense many observed variables into a smaller set of unobserved variables called factors. These factors aim to capture the essential information from the original variables, simplifying the understanding and interpretation of data.

Why is it important?

Factor Analysis is pivotal in numerous fields, including psychology, sociology, economics, and market research. Its versatility allows researchers to explore relationships among variables, identify latent constructs or dimensions, and reduce the dimensionality of data without losing essential information. This reduction enables straightforward interpretation and aids in hypothesis testing, model building, or predictive analysis.

Where does it come from?

Factor analysis can be traced back to the work of Charles Spearman in the early 20th century. Spearman proposed the concept of general intelligence (g factor) and developed the factor analysis method to explore correlations between mental abilities. Since then, factor analysis has evolved significantly, with various techniques and methodologies adapted to address diverse research needs.

Core Principles

At its core, factor analysis operates on the premise that observed variables can be attributed to fewer underlying factors. These factors are not directly measurable but manifest in the patterns of correlations between the observed variables. Through statistical techniques, factor analysis aims to uncover these hidden factors and their relationships with the observed data.

Factor analysis example of what is a variable and what is a factor

Example of how variables can relate to a factor

Stay tuned as we delve deeper into the fundamental concepts, methodologies, and practical applications of Factor Analysis, providing you with a comprehensive understanding of this powerful analytical tool.

Key Concepts of Factor Analysis

Factor analysis hinges on several pivotal concepts underpinning its functionality and application across diverse domains. Understanding these core concepts is fundamental to grasping the essence of this statistical technique.

1. Variables, Factors, and Observed Data

  • Variables: These are the measurable quantities or items used in an analysis, such as survey responses, test scores, or economic indicators.
  • Factors: Unobservable latent variables representing underlying constructs or dimensions influencing the observed variables’ behaviour.
  • Observed Data: The data matrix containing measurements or responses across multiple variables for each observation or individual.

2. Types of Factor Analysis

  • Exploratory factor analysis (EFA) explores underlying relationships between observed variables and identifies potential factors without preconceived notions about the structure.
  • Confirmatory Factor Analysis (CFA): Validates pre-existing theories or hypotheses about the structure of relationships among variables by testing and confirming a specific factor structure.

3. Factor Extraction Methods

  • Principal component analysis (PCA) is a standard method for extracting factors. It transforms observed variables into linearly uncorrelated components.
  • Maximum Likelihood Estimation: Estimates parameters by maximizing the likelihood of observing the sample data under a specific model.

4. Statistical Assumptions

  • Factorability of Data: This assumption states that the observed variables are correlated and that fewer latent factors can explain these correlations.
  • Independence of Factors: This assumption states that factors are either uncorrelated (in orthogonal rotation) or partially correlated (in oblique rotation).

5. Factor Rotation

  • Orthogonal Rotation: Assumes that factors are uncorrelated, making interpretation more straightforward but potentially less realistic.
  • Oblique rotation allows factors to be correlated, providing a more realistic representation of relationships among elements. However, it can be more complex to interpret.

These foundational concepts form the basis for implementing and interpreting factor analysis. In the subsequent sections, we’ll delve deeper into the statistical underpinnings, methodologies, and real-world applications of factor analysis, shedding light on its significance across various disciplines.

Theoretical Explanation

Factor analysis operates based on several fundamental statistical principles and assumptions, which form the theoretical framework that guides its methodology and application.

1. Correlation Structure

Factor Analysis relies on the correlations among observed variables. It assumes that observed variables are interrelated, and these interrelations stem from fewer latent factors that explain the correlation patterns.

2. Latent Variables

  • Unobservable Constructs: Factors in factor analysis are latent variables that cannot be directly measured but are inferred from the patterns of observed variables.
  • Common Variance: Factors capture the shared variance among observed variables, providing a more parsimonious explanation for their covariation.

3. Factor Extraction and Replication

  • Factor extraction is identifying and extracting the underlying factors that best explain the observed variance in the dataset.
  • Replication of Results: Factor Analysis aims for consistency and reproducibility, seeking stable and consistent factors across different samples or datasets.

4. Assumptions and Model Fit

  • Assumptions: Factor Analysis assumes linearity, multivariate normality, and adequate sample size for reliable estimation of parameters.
  • Model Fit Evaluation: Various indices and criteria assess how well the derived factor model fits the observed data.

5. Variance Explanation and Eigenvalues

  • Eigenvalues quantify the amount of variance explained by each factor. In exploratory factor analysis, factors with eigenvalues greater than 1 are typically retained.
  • Variance Explained: Reflects the proportion of total variance in the observed variables accounted for by the identified factors.

Understanding these theoretical foundations is crucial to conducting factor analysis effectively. In subsequent sections, we’ll explore the practical steps involved in implementing factor analysis, including data preparation, factor extraction methods, interpretation of results, and assessing model fit, all of which stem from these theoretical underpinnings.

Step-by-step Guide on How to Implement Factor Analysis

Factor Analysis involves a systematic process that includes data preparation, factor extraction, rotation, interpretation of results, and model assessment. Here’s a breakdown of the essential steps:

1. Data Preparation

  • Data Cleaning: Handling missing value outliers and ensuring data consistency before analysis.
  • Scaling: Standardizing or normalizing variables to make them comparable and avoid dominance by larger-scale variables.

2. Factor Extraction

  • Choosing the Extraction Method: The researcher selects an appropriate technique (e.g., PCA, maximum likelihood) based on assumptions and research objectives.
  • Determining the Number of Factors: We can use eigenvalues, scree plots, or Kaiser’s criterion to decide the number of factors to retain.

3. Factor Rotation

  • Orthogonal or Oblique Rotation: This option allows the user to select methods that either assume factors are uncorrelated (orthogonal) or qualify for correlations among factors (oblique).
  • Interpreting Rotated Factors: Examining factor loadings after rotation to understand the relationships between variables and factors.

4. Interpreting Results

  • Factor Loadings: Assessing the strength and direction of the relationship between variables and factors. High loadings indicate a strong association.
  • Communalities: Representing the proportion of variance in each variable accounted for by the factors.

5. Assessing Model Fit

  • Goodness-of-Fit Indices: Various measures (e.g., chi-square, RMSEA, CFI) are used to evaluate how well the model fits the data.
  • Modification and Refinement: Making adjustments to improve model fit if necessary, such as adding or removing factors.

6. Reporting and Interpretation

  • Documenting Findings: Presenting factor structures, loadings, and interpretations clearly and coherently.
  • Interpreting Factor Solutions: Translating statistical results into meaningful insights related to the research context or theory.

7. Sensitivity Analysis

  • Testing Sensitivity: Evaluating the stability of factor solutions by conducting analyses with variations in methodology or data subsets.

Mastering these steps enables researchers to analyze datasets effectively, uncover latent structures, and derive meaningful interpretations from factor analysis. However, considering the context and research goals and interpreting the results judiciously are essential to drawing valid conclusions.

How to Implement Factor Analysis in Python

Various libraries can be used to perform factor analysis in Python. Still, one popular choice is to use the factor_analyzer library along with other fundamental libraries like pandasnumpy, and matplotlib for data manipulation, numerical operations, and visualization.

Firstly, ensure you have the necessary libraries installed. You can install them via pip:

pip install factor-analyzer pandas numpy matplotlib 

Once installed, here’s a simple example of how you can perform Factor Analysis using factor_analyzer:

import pandas as pd
import numpy as np
from factor_analyzer import FactorAnalyzer
import matplotlib.pyplot as plt

import numpy as np

# Creating a dummy dataset with 10 variables and 100 samples
variables = ['Var1', 'Var2', 'Var3', 'Var4', 'Var5', 'Var6', 'Var7', 'Var8', 'Var9', 'Var10']
data = pd.DataFrame(np.random.rand(100, 10), columns=variables)

# Adding some correlations between variables to simulate factors
data['Var2'] = data['Var1'] + np.random.normal(scale=0.1, size=100)
data['Var3'] = 0.5 * data['Var1'] + 0.5 * data['Var2'] + np.random.normal(scale=0.1, size=100)
data['Var6'] = 0.8 * data['Var4'] + np.random.normal(scale=0.1, size=100)
data['Var9'] = 0.6 * data['Var7'] + np.random.normal(scale=0.1, size=100)
data['Var10'] = 0.4 * data['Var8'] + np.random.normal(scale=0.1, size=100)

# Displaying the first few rows of the dummy dataset

# Clean and preprocess your data if needed

# Instantiate the FactorAnalyzer object
# Specify the number of factors you want to extract (let's say 3 for this example)
fa = FactorAnalyzer(n_factors=3, rotation=None)  # You can specify rotation method if needed (e.g., 'varimax')

# Fit the FactorAnalyzer to your data

# Obtain factor loadings
loadings = fa.loadings_

# Print factor loadings
print("Factor Loadings:\n", loadings)

# Visualize factor loadings using a heatmap
plt.figure(figsize=(8, 6))
plt.title('Factor Loadings Heatmap')
plt.imshow(loadings, cmap='viridis', aspect='auto')
factor analysis in python plot

This code creates a dummy dataset with 10 variables and 100 samples. We then introduce some correlations between certain variables to simulate underlying factors.

This code snippet provides a basic framework for performing factor analysis using Python’s factor_analyzer library. Adjustments and additional steps might be necessary based on your specific data, such as data preprocessing, choosing the number of factors, and applying factor rotation methods for better interpretation.

How to Choose the Number of Factors?

Determining the number of factors in Factor Analysis is a crucial step that can significantly impact the interpretation and validity of your results. Here are some common methods used to decide on the number of factors:

1. Kaiser’s Rule:

  • Retain factors with eigenvalues greater than 1. Eigenvalues represent the amount of variance explained by each factor.
  • This rule suggests keeping factors with an eigenvalue above 1, indicating that they explain more variance than a single original variable.

2. Scree Plot:

  • Plot the eigenvalues in descending order. The point at which the plot levels off (reaches an “elbow”) suggests the number of factors to retain.
  • Factors before the “elbow” are considered meaningful, while those after might represent noise or random variance.
scree plot showing how many factors to keep in factor analysis

3. Cumulative Variance Explained:

  • Examine the cumulative variance explained by adding factors one by one.
  • Decide based on how much variance you aim to retain; a threshold of 70-80% of the total variance explained is often considered acceptable.

4. Parallel Analysis:

  • Compare the actual eigenvalues with eigenvalues obtained from random data (Monte Carlo simulation) of the same size and structure.
  • Retain factors whose eigenvalues exceed the randomly generated eigenvalues.

5. Minimum Average Partial (MAP) Test:

  • Evaluates the average squared partial correlation coefficients for different factor solutions.
  • The point where the average squared partial correlation no longer decreases suggests the number of factors to retain.

6. Theory and Context:

  • Prior knowledge or theoretical understanding of the studied domain can guide the selection of a number of factors.
  • Consider the interpretability and practical significance of the factors within the context of your research.


  • Using only one criterion might not provide a definitive answer. It’s common to employ multiple methods for validation.
  • Always interpret results cautiously, considering the context and theoretical relevance of the factors identified.

Employing a combination of these techniques and domain knowledge can help make an informed decision about the number of factors to retain in Factor Analysis, ensuring a more robust and meaningful interpretation of your data.

What is the Difference Between Factor Analysis and PCA?

Principal component analysis (PCA) and factor analysis (FA) are techniques used for dimensionality reduction but have different underlying objectives and assumptions.

Principal Component Analysis (PCA)

  • Objective: PCA aims to transform the original variables into a new set of uncorrelated variables called principal components. These components are linear combinations of the actual variables and are ordered by the amount of variance they explain.
  • Methodology: PCA identifies orthogonal axes that capture the maximum variance in the data space. It does not consider the relationships between variables or underlying constructs.
  • Assumptions: PCA assumes that the variance captured by the principal components represents the total variance in the dataset.
  • Usage: Widely used for reducing the dimensionality of data, feature extraction, noise reduction, and visualization.

Factor Analysis (FA)

  • Objective: FA aims to identify latent factors that underlie the observed variables. It assumes that these unobserved factors influence observed variables and are related to each other and the observed variables.
  • Methodology: FA seeks to explain the covariance between observed variables in terms of underlying latent factors. It’s more concerned with uncovering the structure and relationships between variables.
  • Assumptions: FA assumes that a smaller number of latent factors influences observed variables and that measurement errors are present in the observed variables.
  • Usage: It is often used in social sciences, psychology, and market research to identify underlying constructs, understand relationships between variables, and uncover hidden patterns in data.


  1. Objective: PCA aims to reduce dimensions by maximizing variance, while FA seeks to understand the structure and relationships between observed variables.
  2. Assumptions: PCA does not assume the existence of latent factors, while FA explicitly takes that latent factors influence observed variables.
  3. Interpretation: PCA components are not directly interpretable regarding underlying constructs, while FA factors aim to represent these latent constructs, allowing for more meaningful understanding.

While PCA and FA reduce dimensionality, PCA focuses on variance maximization without considering underlying constructs. In contrast, FA aims to uncover latent factors influencing the observed variables and their relationships. The choice between the two depends on the specific goals of the analysis and the nature of the data being examined.

Applications of Factor Analysis

Factor Analysis finds wide-ranging applications across numerous fields due to its ability to unveil underlying structures within complex datasets. Some prominent areas where Factor Analysis is extensively utilized include:

1. Social Sciences

  • Psychology: Identifying latent constructs such as personality traits, attitudes, or cognitive abilities from survey responses or behavioural data.
  • Sociology: Studies social phenomena by analyzing survey patterns related to societal attitudes, behaviours, or cultural factors.

2. Market Research and Consumer Behavior

  • Segmentation: Identifying consumer segments based on purchasing patterns, preferences, or demographic variables.
  • Product Development: Determining underlying attributes influencing consumer perceptions or preferences for product design and marketing strategies.

3. Business and Economics

  • Financial Analysis: Reducing many financial indicators into key underlying factors influencing market performance or economic trends.
  • Human Resources: Identifying underlying factors impacting employee satisfaction, engagement, or performance.

4. Healthcare and Medicine

  • Clinical Research: Uncovering latent variables related to symptoms, disease progression, or treatment effectiveness.
  • Health Behavior Studies: Analyzing patterns in health-related behaviors, risk factors, or patient-reported outcomes.

5. Education and Testing

  • Educational Assessment: Understanding factors affecting academic performance, learning styles, or educational outcomes.
  • Test Development: Validating test items and determining underlying constructs measured by assessments.

6. Environmental and Social Sciences

  • Environmental Studies: Identifying factors contributing to environmental attitudes, behaviours, or sustainability initiatives.
  • Opinion Polls and Surveys: Analyzing public opinions or perceptions on social, political, or environmental issues.

Factor analysis is valuable for researchers, businesses, and policymakers. It enables a deeper understanding of complex data structures and facilitates informed decision-making. Its versatility allows for adaptation across diverse disciplines, contributing significantly to advancements in various fields.

Challenges and Limitations of Factor Analysis

While Factor Analysis is a powerful statistical technique, it also comes with several challenges and limitations that you need to consider:

1. Over-Extraction or Under-Extraction of Factors

  • Overfitting: Extracting too many factors might lead to overfitting the model to the specific dataset, reducing generalizability.
  • Underfitting: Extracting too few factors might oversimplify the structure, missing essential nuances in the data.

2. Complex Interpretation

  • Complex Factor Structures: Interpreting factor solutions with numerous variables or factors can be challenging and may lack conceptual clarity.
  • Cross-Loadings: Variables loading on multiple factors make it harder to attribute them to specific constructs.

3. Sample Size and Data Quality

  • Small Sample Sizes: Factor Analysis may require larger sample sizes to yield stable and reliable results, especially with complex models.
  • Data Quality Issues: Noisy or imperfect data, including outliers or missing values, can impact the validity of factor solutions.

4. Assumptions Violation

  • Violations of Assumptions: Deviations from assumptions like normality, linearity, or homoscedasticity may affect the accuracy of factor solutions.
  • Sensitivity to Methodology: Results can vary based on the chosen factor extraction method or rotation technique.

5. Subjectivity in Interpretation

  • Subjective Interpretation: Interpreting factor solutions involves subjective judgment, potentially leading to different research interpretations.
  • Theoretical Bias: Prior theoretical assumptions may influence the choice of factors or interpretation, impacting the objectivity of analysis.

6. Model Complexity and Comprehensibility

  • Complex Models: Complex factor structures with numerous factors might be challenging to communicate or comprehend effectively.
  • Lack of Transparency: Without proper explanation, the process and results of factor analysis might be complex for non-experts to understand.

7. Causation vs. Correlation

  • Correlational Nature: Factor Analysis reveals associations between variables but does not establish causation between factors.

Understanding these challenges and limitations is crucial when applying Factor Analysis, emphasizing the need for careful consideration, robust methodologies, and cautious interpretation to derive meaningful insights from data while acknowledging its inherent constraints.


Factor Analysis is a powerful statistical technique used to uncover underlying structures or latent factors within complex datasets. It aids in reducing the dimensionality of data while revealing relationships and patterns among observed variables. Here’s a concise summary and conclusion on Factor Analysis:

  • Objective: To identify latent factors that explain correlations among observed variables.
  • Methodology: Factor Analysis explores how observed variables covary and extracts a smaller set of unobserved factors that explain this covariance.
  • Key Concepts: Variables, factors, and observed data form the core elements of Factor Analysis. The technique assumes that observed variables are influenced by a smaller number of latent factors.
  • Steps Involved: Data preparation, factor extraction, rotation, interpreting results, and assessing model fit are crucial steps in Factor Analysis.
  • Determining Factors: Various methods such as Kaiser’s Rule, Scree Plot, and cumulative variance explained aid in deciding the number of factors to retain.
  • Applications: Widely used in social sciences, psychology, market research, and other fields to uncover underlying constructs, understand relationships between variables, and derive meaningful insights from data.

Factor Analysis serves as a valuable tool for researchers and analysts to gain deeper insights into complex datasets. By identifying latent factors that drive the correlations among observed variables, it helps in simplifying data interpretation, uncovering hidden patterns, and informing decision-making processes across various domains.

However, Factor Analysis isn’t without its challenges, including subjective interpretation, assumptions regarding data structure, and the need for careful consideration when determining the number of factors.

Ultimately, Factor Analysis stands as a versatile and indispensable technique, enabling researchers to extract meaningful information, discover underlying structures, and derive actionable insights from intricate datasets, contributing significantly to advancements in diverse fields of study and analysis.

About the Author

Neri Van Otten

Neri Van Otten

Neri Van Otten is the founder of Spot Intelligence, a machine learning engineer with over 12 years of experience specialising in Natural Language Processing (NLP) and deep learning innovation. Dedicated to making your projects succeed.

Recent Articles

ROC curve

ROC And AUC Curves In Machine Learning Made Simple & How To Tutorial In Python

What are ROC and AUC Curves in Machine Learning? The ROC Curve The ROC (Receiver Operating Characteristic) curve is a graphical representation used to evaluate the...

decision boundaries for naive bayes

Naive Bayes Classification Made Simple & How To Tutorial In Python

What is Naive Bayes? Naive Bayes classifiers are a group of supervised learning algorithms based on applying Bayes' Theorem with a strong (naive) assumption that every...

One class SVM anomaly detection plot

How To Implement Anomaly Detection With One-Class SVM In Python

What is One-Class SVM? One-class SVM (Support Vector Machine) is a specialised form of the standard SVM tailored for unsupervised learning tasks, particularly anomaly...

decision tree example of weather to play tennis

Decision Trees In ML Complete Guide [How To Tutorial, Examples, 5 Types & Alternatives]

What are Decision Trees? Decision trees are versatile and intuitive machine learning models for classification and regression tasks. It represents decisions and their...

graphical representation of an isolation forest

Isolation Forest For Anomaly Detection Made Easy & How To Tutorial

What is an Isolation Forest? Isolation Forest, often abbreviated as iForest, is a powerful and efficient algorithm designed explicitly for anomaly detection. Introduced...

Illustration of batch gradient descent

Batch Gradient Descent In Machine Learning Made Simple & How To Tutorial In Python

What is Batch Gradient Descent? Batch gradient descent is a fundamental optimization algorithm in machine learning and numerical optimisation tasks. It is a variation...

Techniques for bias detection in machine learning

Bias Mitigation in Machine Learning [Practical How-To Guide & 12 Strategies]

In machine learning (ML), bias is not just a technical concern—it's a pressing ethical issue with profound implications. As AI systems become increasingly integrated...

text similarity python

Full-Text Search Explained, How To Implement & 6 Powerful Tools

What is Full-Text Search? Full-text search is a technique for efficiently and accurately retrieving textual data from large datasets. Unlike traditional search methods...

the hyperplane in a support vector regression (SVR)

Support Vector Regression (SVR) Simplified & How To Tutorial In Python

What is Support Vector Regression (SVR)? Support Vector Regression (SVR) is a machine learning technique for regression tasks. It extends the principles of Support...

1 Comment

  1. Nicolette

    Great article, thanks!


Submit a Comment

Your email address will not be published. Required fields are marked *

nlp trends

2024 NLP Expert Trend Predictions

Get a FREE PDF with expert predictions for 2024. How will natural language processing (NLP) impact businesses? What can we expect from the state-of-the-art models?

Find out this and more by subscribing* to our NLP newsletter.

You have Successfully Subscribed!