Hubbry Logo
search
logo
2301645

Principal component analysis

logo
Community Hub0 Subscribers
Read side by side
from Wikipedia
PCA of a multivariate Gaussian distribution centered at (1, 3) with a standard deviation of 3 in roughly the (0.866, 0.5) direction and of 1 in the orthogonal direction. The vectors shown are the eigenvectors of the covariance matrix scaled by the square root of the corresponding eigenvalue, and shifted so their tails are at the mean.

Principal component analysis (PCA) is a linear dimensionality reduction technique with applications in exploratory data analysis, visualization and data preprocessing.

The data is linearly transformed onto a new coordinate system such that the directions (principal components) capturing the largest variation in the data can be easily identified.

The principal components of a collection of points in a real coordinate space are a sequence of unit vectors, where the -th vector is the direction of a line that best fits the data while being orthogonal to the first vectors. Here, a best-fitting line is defined as one that minimizes the average squared perpendicular distance from the points to the line. These directions (i.e., principal components) constitute an orthonormal basis in which different individual dimensions of the data are linearly uncorrelated. Many studies use the first two principal components in order to plot the data in two dimensions and to visually identify clusters of closely related data points.[1]

Principal component analysis has applications in many fields such as population genetics, microbiome studies, and atmospheric science.[2]

Overview

[edit]

When performing PCA, the first principal component of a set of variables is the derived variable formed as a linear combination of the original variables that explains the most variance. The second principal component explains the most variance in what is left once the effect of the first component is removed, and we may proceed through iterations until all the variance is explained. PCA is most commonly used when many of the variables are highly correlated with each other and it is desirable to reduce their number to an independent set. The first principal component can equivalently be defined as a direction that maximizes the variance of the projected data. The -th principal component can be taken as a direction orthogonal to the first principal components that maximizes the variance of the projected data.

For either objective, it can be shown that the principal components are eigenvectors of the data's covariance matrix. Thus, the principal components are often computed by eigendecomposition of the data covariance matrix or singular value decomposition of the data matrix. PCA is the simplest of the true eigenvector-based multivariate analyses and is closely related to factor analysis. Factor analysis typically incorporates more domain-specific assumptions about the underlying structure and solves eigenvectors of a slightly different matrix. PCA is also related to canonical correlation analysis (CCA). CCA defines coordinate systems that optimally describe the cross-covariance between two datasets while PCA defines a new orthogonal coordinate system that optimally describes variance in a single dataset.[3][4][5][6] Robust and L1-norm-based variants of standard PCA have also been proposed.[7][8][9][6]

History

[edit]

PCA was invented in 1901 by Karl Pearson,[10] as an analogue of the principal axis theorem in mechanics; it was later independently developed and named by Harold Hotelling in the 1930s.[11] Depending on the field of application, it is also named the discrete Karhunen–Loève transform (KLT) in signal processing, the Hotelling transform in multivariate quality control, proper orthogonal decomposition (POD) in mechanical engineering, singular value decomposition (SVD) of X (invented in the last quarter of the 19th century[12]), eigenvalue decomposition (EVD) of XTX in linear algebra, factor analysis (for a discussion of the differences between PCA and factor analysis see Ch. 7 of Jolliffe's Principal Component Analysis),[13] Eckart–Young theorem (Harman, 1960), or empirical orthogonal functions (EOF) in meteorological science (Lorenz, 1956), empirical eigenfunction decomposition (Sirovich, 1987), quasiharmonic modes (Brooks et al., 1988), spectral decomposition in noise and vibration, and empirical modal analysis in structural dynamics.

Intuition

[edit]
A scree plot that is meant to help interpret the PCA and decide how many components to retain. The start of the bend in the line (point of inflexion or "knee") should indicate how many components are retained, hence in this example, three factors should be retained.

PCA can be thought of as fitting a p-dimensional ellipsoid to the data, where each axis of the ellipsoid represents a principal component. If some axis of the ellipsoid is small, then the variance along that axis is also small.

To find the axes of the ellipsoid, we must first center the values of each variable in the dataset on 0 by subtracting the mean of the variable's observed values from each of those values. These transformed values are used instead of the original observed values for each of the variables. Then, we compute the covariance matrix of the data and calculate the eigenvalues and corresponding eigenvectors of this covariance matrix. Then we must normalize each of the orthogonal eigenvectors to turn them into unit vectors. Once this is done, each of the mutually-orthogonal unit eigenvectors can be interpreted as an axis of the ellipsoid fitted to the data. This choice of basis will transform the covariance matrix into a diagonalized form, in which the diagonal elements represent the variance of each axis. The proportion of the variance that each eigenvector represents can be calculated by dividing the eigenvalue corresponding to that eigenvector by the sum of all eigenvalues.

Biplots and scree plots (degree of explained variance) are used to interpret findings of the PCA.

Details

[edit]

PCA is defined as an orthogonal linear transformation on a real inner product space that transforms the data to a new coordinate system such that the greatest variance by some scalar projection of the data comes to lie on the first coordinate (called the first principal component), the second greatest variance on the second coordinate, and so on.[13]

Consider an data matrix, X, with column-wise zero empirical mean (the sample mean of each column has been shifted to zero), where each of the n rows represents a different repetition of the experiment, and each of the p columns gives a particular kind of feature (say, the results from a particular sensor).

Mathematically, the transformation is defined by a set of size (where is usually selected to be strictly less than to reduce dimensionality) of -dimensional vectors of weights or coefficients that map each row vector of X to a new vector of principal component scores , given by

in such a way that the individual variables of t considered over the data set successively inherit the maximum possible variance from X, with each coefficient vector w constrained to be a unit vector.

The above may equivalently be written in matrix form as

where , , and .

First component

[edit]

In order to maximize variance, the first weight vector w(1) thus has to satisfy

Equivalently, writing this in matrix form gives

Since w(1) has been defined to be a unit vector, it equivalently also satisfies

The quantity to be maximised can be recognised as a Rayleigh quotient. A standard result for a positive semidefinite matrix such as XTX is that the quotient's maximum possible value is the largest eigenvalue of the matrix, which occurs when w is the corresponding eigenvector.

With w(1) found, the first principal component of a data vector x(i) can then be given as a score t1(i) = x(i)w(1) in the transformed co-ordinates, or as the corresponding vector in the original variables, {x(i)w(1)} w(1).

Further components

[edit]

The k-th component can be found by subtracting the first k − 1 principal components from X:

and then finding the weight vector which extracts the maximum variance from this new data matrix

It turns out that this gives the remaining eigenvectors of XTX, with the maximum values for the quantity in brackets given by their corresponding eigenvalues. Thus the weight vectors are eigenvectors of XTX.

The k-th principal component of a data vector x(i) can therefore be given as a score tk(i) = x(i)w(k) in the transformed coordinates, or as the corresponding vector in the space of the original variables, {x(i)w(k)} w(k), where w(k) is the kth eigenvector of XTX.

The full principal components decomposition of X can therefore be given as

where W is a p-by-p matrix of weights whose columns are the eigenvectors of XTX. The transpose of W is sometimes called the whitening or sphering transformation. Columns of W multiplied by the square root of corresponding eigenvalues, that is, eigenvectors scaled up by the variances, are called loadings in PCA or in Factor analysis.

Covariances

[edit]

XTX itself can be recognized as proportional to the empirical sample covariance matrix of the dataset XT.[13]: 30–31 

The sample covariance Q between two of the different principal components over the dataset is given by:

where the eigenvalue property of w(k) has been used to move from line 2 to line 3. However eigenvectors w(j) and w(k) corresponding to eigenvalues of a symmetric matrix are orthogonal (if the eigenvalues are different), or can be orthogonalised (if the vectors happen to share an equal repeated value). The product in the final line is therefore zero; there is no sample covariance between different principal components over the dataset.

Another way to characterise the principal components transformation is therefore as the transformation to coordinates which diagonalise the empirical sample covariance matrix.

In matrix form, the empirical covariance matrix for the original variables can be written

The empirical covariance matrix between the principal components becomes

where Λ is the diagonal matrix of eigenvalues λ(k) of XTX. λ(k) is equal to the sum of the squares over the dataset associated with each component k, that is, λ(k) = Σi tk2(i) = Σi (x(i)w(k))2.

Dimensionality reduction

[edit]

The transformation P = X W maps a data vector x(i) from an original space of x variables to a new space of p variables which are uncorrelated over the dataset. To non-dimensionalize the centered data, let Xc represent the characteristic values of data vectors Xi, given by:

  • (maximum norm),
  • (mean absolute value), or
  • (normalized Euclidean norm),

for a dataset of size n. These norms are used to transform the original space of variables x, y to a new space of uncorrelated variables p, q (given Yc with same meaning), such that ; and the new variables are linearly related as: . To find the optimal linear relationship, we minimize the total squared reconstruction error: ; such that setting the derivative of the error function to zero yields: where.[14]

A principal components analysis scatterplot of Y-STR haplotypes calculated from repeat-count values for 37 Y-chromosomal STR markers from 354 individuals.
PCA has successfully found linear combinations of the markers that separate out different clusters corresponding to different lines of individuals' Y-chromosomal genetic descent.

Such dimensionality reduction can be a very useful step for visualising and processing high-dimensional datasets, while still retaining as much of the variance in the dataset as possible. For example, selecting L = 2 and keeping only the first two principal components finds the two-dimensional plane through the high-dimensional dataset in which the data is most spread out, so if the data contains clusters these too may be most spread out, and therefore most visible to be plotted out in a two-dimensional diagram; whereas if two directions through the data (or two of the original variables) are chosen at random, the clusters may be much less spread apart from each other, and may in fact be much more likely to substantially overlay each other, making them indistinguishable.

Similarly, in regression analysis, the larger the number of explanatory variables allowed, the greater is the chance of overfitting the model, producing conclusions that fail to generalise to other datasets. One approach, especially when there are strong correlations between different possible explanatory variables, is to reduce them to a few principal components and then run the regression against them, a method called principal component regression.

Dimensionality reduction may also be appropriate when the variables in a dataset are noisy. If each column of the dataset contains independent identically distributed Gaussian noise, then the columns of T will also contain similarly identically distributed Gaussian noise (such a distribution is invariant under the effects of the matrix W, which can be thought of as a high-dimensional rotation of the co-ordinate axes). However, with more of the total variance concentrated in the first few principal components compared to the same noise variance, the proportionate effect of the noise is less—the first few components achieve a higher signal-to-noise ratio. PCA thus can have the effect of concentrating much of the signal into the first few principal components, which can usefully be captured by dimensionality reduction; while the later principal components may be dominated by noise, and so disposed of without great loss. If the dataset is not too large, the significance of the principal components can be tested using parametric bootstrap, as an aid in determining how many principal components to retain.[15]

Singular value decomposition

[edit]

The principal components transformation can also be associated with another matrix factorization, the singular value decomposition (SVD) of X,

Here Σ is an n-by-p rectangular diagonal matrix of positive numbers σ(k), called the singular values of X; U is an n-by-n matrix, the columns of which are orthogonal unit vectors of length n called the left singular vectors of X; and W is a p-by-p matrix whose columns are orthogonal unit vectors of length p and called the right singular vectors of X.

In terms of this factorization, the matrix XTX can be written

where is the square diagonal matrix with the singular values of X and the excess zeros chopped off that satisfies . Comparison with the eigenvector factorization of XTX establishes that the right singular vectors W of X are equivalent to the eigenvectors of XTX, while the singular values σ(k) of are equal to the square-root of the eigenvalues λ(k) of XTX.

Using the singular value decomposition the score matrix T can be written

so each column of T is given by one of the left singular vectors of X multiplied by the corresponding singular value. This form is also the polar decomposition of T.

Efficient algorithms exist to calculate the SVD of X without having to form the matrix XTX, so computing the SVD is now the standard way to calculate a principal components analysis from a data matrix,[16] unless only a handful of components are required.

As with the eigen-decomposition, a truncated n × L score matrix TL can be obtained by considering only the first L largest singular values and their singular vectors:

The truncation of a matrix M or T using a truncated singular value decomposition in this way produces a truncated matrix that is the nearest possible matrix of rank L to the original matrix, in the sense of the difference between the two having the smallest possible Frobenius norm, a result known as the Eckart–Young theorem [1936].

Theorem (Optimal k‑dimensional fit). Let P be an n×m data matrix whose columns have been mean‑centered and scaled, and let be its singular value decomposition. Then the best rank‑k approximation to P in the least‑squares (Frobenius‑norm) sense is , where Vk consists of the first k columns of V. Moreover, the relative residual variance is .

[14]

Further considerations

[edit]

The singular values (in Σ) are the square roots of the eigenvalues of the matrix XTX. Each eigenvalue is proportional to the portion of the "variance" (more correctly of the sum of the squared distances of the points from their multidimensional mean) that is associated with each eigenvector. The sum of all the eigenvalues is equal to the sum of the squared distances of the points from their multidimensional mean. PCA essentially rotates the set of points around their mean in order to align with the principal components. This moves as much of the variance as possible (using an orthogonal transformation) into the first few dimensions. The values in the remaining dimensions, therefore, tend to be small and may be dropped with minimal loss of information (see below). PCA is often used in this manner for dimensionality reduction. PCA has the distinction of being the optimal orthogonal transformation for keeping the subspace that has largest "variance" (as defined above). This advantage, however, comes at the price of greater computational requirements if compared, for example, and when applicable, to the discrete cosine transform, and in particular to the DCT-II which is simply known as the "DCT". Nonlinear dimensionality reduction techniques tend to be more computationally demanding than PCA.

PCA is sensitive to the scaling of the variables. Mathematically this sensitivity comes from the way a rescaling changes the sample‑covariance matrix that PCA diagonalises.[14]

Let be the *centered* data matrix (n rows, p columns) and define the covariance If the ‑th variable is multiplied by a factor we obtain Hence the new covariance is

Because the eigenvalues and eigenvectors of are those of scaled by , the principal axes rotate toward any column whose variance has been inflated, exactly as the 2‑D example below illustrates.

If we have just two variables and they have the same sample variance and are completely correlated, then the PCA will entail a rotation by 45° and the "weights" (they are the cosines of rotation) for the two variables with respect to the principal component will be equal. But if we multiply all values of the first variable by 100, then the first principal component will be almost the same as that variable, with a small contribution from the other variable, whereas the second component will be almost aligned with the second original variable. This means that whenever the different variables have different units (like temperature and mass), PCA is a somewhat arbitrary method of analysis. (Different results would be obtained if one used Fahrenheit rather than Celsius for example.) Pearson's original paper was entitled "On Lines and Planes of Closest Fit to Systems of Points in Space" – "in space" implies physical Euclidean space where such concerns do not arise. One way of making the PCA less arbitrary is to use variables scaled so as to have unit variance, by standardizing the data and hence use the autocorrelation matrix instead of the autocovariance matrix as a basis for PCA. However, this compresses (or expands) the fluctuations in all dimensions of the signal space to unit variance.

Classical PCA assumes the cloud of points has already been translated so its centroid is at the origin.[14]

Write each observation as

Without subtracting we are in effect diagonalising

where is the centered matrix. The rank‑one term often dominates, forcing the leading eigenvector to point almost exactly toward the mean and obliterating any structure in the centred part . After mean subtraction that term vanishes and the principal axes align with the true directions of maximal variance.


Mean-centering is unnecessary if performing a principal components analysis on a correlation matrix, as the data are already centered after calculating correlations. Correlations are derived from the cross-product of two standard scores (Z-scores) or statistical moments (hence the name: Pearson Product-Moment Correlation). Also see the article by Kromrey & Foster-Johnson (1998) on "Mean-centering in Moderated Regression: Much Ado About Nothing". Since covariances are correlations of normalized variables (Z- or standard-scores) a PCA based on the correlation matrix of X is equal to a PCA based on the covariance matrix of Z, the standardized version of X.

PCA is a popular primary technique in pattern recognition. It is not, however, optimized for class separability.[17] However, it has been used to quantify the distance between two or more classes by calculating center of mass for each class in principal component space and reporting Euclidean distance between center of mass of two or more classes.[18] The linear discriminant analysis is an alternative which is optimized for class separability.

Table of symbols and abbreviations

[edit]
Symbol Meaning Dimensions Indices
data matrix, consisting of the set of all data vectors, one vector per row
the number of row vectors in the data set scalar
the number of elements in each row vector (dimension) scalar
the number of dimensions in the dimensionally reduced subspace, scalar
vector of empirical means, one mean for each column j of the data matrix
vector of empirical standard deviations, one standard deviation for each column j of the data matrix
vector of all 1's
deviations from the mean of each column j of the data matrix
z-scores, computed using the mean and standard deviation for each column j of the data matrix
covariance matrix
correlation matrix
matrix consisting of the set of all eigenvectors of C, one eigenvector per column
diagonal matrix consisting of the set of all eigenvalues of C along its principal diagonal, and 0 for all other elements ( note used above )
matrix of basis vectors, one vector per column, where each basis vector is one of the eigenvectors of C, and where the vectors in W are a sub-set of those in V
matrix consisting of n row vectors, where each vector is the projection of the corresponding data vector from matrix X onto the basis vectors contained in the columns of matrix W.


Properties and limitations

[edit]

Properties

[edit]

Some properties of PCA include:[13][page needed]

Property 1: For any integer q, 1 ≤ qp, consider the orthogonal linear transformation
where is a q-element vector and is a (q × p) matrix, and let be the variance-covariance matrix for . Then the trace of , denoted , is maximized by taking , where consists of the first q columns of is the transpose of . ( is not defined here)
Property 2: Consider again the orthonormal transformation
with and defined as before. Then is minimized by taking where consists of the last q columns of .

The statistical implication of this property is that the last few PCs are not simply unstructured left-overs after removing the important PCs. Because these last PCs have variances as small as possible they are useful in their own right. They can help to detect unsuspected near-constant linear relationships between the elements of x, and they may also be useful in regression, in selecting a subset of variables from x, and in outlier detection.

Property 3: (Spectral decomposition of Σ)

Before we look at its usage, we first look at diagonal elements,

Then, perhaps the main statistical implication of the result is that not only can we decompose the combined variances of all the elements of x into decreasing contributions due to each PC, but we can also decompose the whole covariance matrix into contributions from each PC. Although not strictly decreasing, the elements of will tend to become smaller as increases, as is nonincreasing for increasing , whereas the elements of tend to stay about the same size because of the normalization constraints: .

Limitations

[edit]

As noted above, the results of PCA depend on the scaling of the variables. This can be cured by scaling each feature by its standard deviation, so that one ends up with dimensionless features with unital variance.[19]

The applicability of PCA as described above is limited by certain (tacit) assumptions[20] made in its derivation. In particular, PCA can capture linear correlations between the features but fails when this assumption is violated (see Figure 6a in the reference). In some cases, coordinate transformations can restore the linearity assumption and PCA can then be applied (see kernel PCA).

Another limitation is the mean-removal process before constructing the covariance matrix for PCA. In fields such as astronomy, all the signals are non-negative, and the mean-removal process will force the mean of some astrophysical exposures to be zero, which consequently creates unphysical negative fluxes,[21] and forward modeling has to be performed to recover the true magnitude of the signals.[22] As an alternative method, non-negative matrix factorization focusing only on the non-negative elements in the matrices is well-suited for astrophysical observations.[23][24][25] See more at the relation between PCA and non-negative matrix factorization.

PCA is at a disadvantage if the data has not been standardized before applying the algorithm to it. PCA transforms the original data into data that is relevant to the principal components of that data, which means that the new data variables cannot be interpreted in the same ways that the originals were. They are linear interpretations of the original variables. Also, if PCA is not performed properly, there is a high likelihood of information loss.[26]

PCA relies on a linear model. If a dataset has a pattern hidden inside it that is nonlinear, then PCA can actually steer the analysis in the complete opposite direction of progress.[27][page needed] Researchers at Kansas State University discovered that the sampling error in their experiments impacted the bias of PCA results. "If the number of subjects or blocks is smaller than 30, and/or the researcher is interested in PC's beyond the first, it may be better to first correct for the serial correlation, before PCA is conducted".[28] The researchers at Kansas State also found that PCA could be "seriously biased if the autocorrelation structure of the data is not correctly handled".[28]

PCA and information theory

[edit]

Dimensionality reduction results in a loss of information, in general. PCA-based dimensionality reduction tends to minimize that information loss, under certain signal and noise models.

Under the assumption that

that is, that the data vector is the sum of the desired information-bearing signal and a noise signal one can show that PCA can be optimal for dimensionality reduction, from an information-theoretic point-of-view.

In particular, Linsker showed that if is Gaussian and is Gaussian noise with a covariance matrix proportional to the identity matrix, the PCA maximizes the mutual information between the desired information and the dimensionality-reduced output .[29]

If the noise is still Gaussian and has a covariance matrix proportional to the identity matrix (that is, the components of the vector are iid), but the information-bearing signal is non-Gaussian (which is a common scenario), PCA at least minimizes an upper bound on the information loss, which is defined as[30][31]

The optimality of PCA is also preserved if the noise is iid and at least more Gaussian (in terms of the Kullback–Leibler divergence) than the information-bearing signal .[32] In general, even if the above signal model holds, PCA loses its information-theoretic optimality as soon as the noise becomes dependent.

Computation using the covariance method

[edit]

The following is a detailed description of PCA using the covariance method[33] as opposed to the correlation method.[34]

The goal is to transform a given data set X of dimension p to an alternative data set Y of smaller dimension L. Equivalently, we are seeking to find the matrix Y, where Y is the Karhunen–Loève transform (KLT) of matrix X:

  1. Organize the data set

    Suppose you have data comprising a set of observations of p variables, and you want to reduce the data so that each observation can be described with only L variables, L < p. Suppose further, that the data are arranged as a set of n data vectors with each representing a single grouped observation of the p variables.

    • Write as row vectors, each with p elements.
    • Place the row vectors into a single matrix X of dimensions n × p.
  2. Calculate the empirical mean
    • Find the empirical mean along each column j = 1, ..., p.
    • Place the calculated mean values into an empirical mean vector u of dimensions p × 1.
  3. Calculate the deviations from the mean

    Mean subtraction is an integral part of the solution towards finding a principal component basis that minimizes the mean square error of approximating the data.[35] Hence we proceed by centering the data as follows:

    • Subtract the empirical mean vector from each row of the data matrix X.
    • Store mean-subtracted data in the n × p matrix B. where h is an n × 1 column vector of all 1s:

    In some applications, each variable (column of B) may also be scaled to have a variance equal to 1 (see Z-score).[36] This step affects the calculated principal components, but makes them independent of the units used to measure the different variables.

  4. Find the covariance matrix
    • Find the p × p empirical covariance matrix C from matrix B: where is the conjugate transpose operator. If B consists entirely of real numbers, which is the case in many applications, the "conjugate transpose" is the same as the regular transpose.
    • The reasoning behind using n − 1 instead of n to calculate the covariance is Bessel's correction.
  5. Find the eigenvectors and eigenvalues of the covariance matrix
    • Compute the matrix V of eigenvectors which diagonalizes the covariance matrix C: where D is the diagonal matrix of eigenvalues of C. This step will typically involve the use of a computer-based algorithm for computing eigenvectors and eigenvalues. These algorithms are readily available as sub-components of most matrix algebra systems, such as SAS,[37] R, MATLAB,[38][39] Mathematica,[40] SciPy, IDL (Interactive Data Language), or GNU Octave as well as OpenCV.
    • Matrix D will take the form of an p × p diagonal matrix, where is the jth eigenvalue of the covariance matrix C, and
    • Matrix V, also of dimension p × p, contains p column vectors, each of length p, which represent the p eigenvectors of the covariance matrix C.
    • The eigenvalues and eigenvectors are ordered and paired. The jth eigenvalue corresponds to the jth eigenvector.
    • Matrix V denotes the matrix of right eigenvectors (as opposed to left eigenvectors). In general, the matrix of right eigenvectors need not be the (conjugate) transpose of the matrix of left eigenvectors.
  6. Rearrange the eigenvectors and eigenvalues
    • Sort the columns of the eigenvector matrix V and eigenvalue matrix D in order of decreasing eigenvalue.
    • Make sure to maintain the correct pairings between the columns in each matrix.
  7. Compute the cumulative energy content for each eigenvector
    • The eigenvalues represent the distribution of the source data's energy[clarification needed] among each of the eigenvectors, where the eigenvectors form a basis for the data. The cumulative energy content g for the jth eigenvector is the sum of the energy content across all of the eigenvalues from 1 through j divided by the sum of energy content across all eigenvalues (shown in step 8):[citation needed]
  8. Select a subset of the eigenvectors as basis vectors
    • Save the first L columns of V as the p × L matrix W: where
    • Use the vector g as a guide in choosing an appropriate value for L. The goal is to choose a value of L as small as possible while achieving a reasonably high value of g on a percentage basis. For example, you may want to choose L so that the cumulative energy g is above a certain threshold, like 90 percent. In this case, choose the smallest value of L such that
  9. Project the data onto the new basis
    • The projected data points are the rows of the matrix
    That is, the first column of is the projection of the data points onto the first principal component, the second column is the projection onto the second principal component, etc.

Derivation using the covariance method

[edit]

Let X be a d-dimensional random vector expressed as column vector. Without loss of generality, assume X has zero mean.

We want to find a d × d orthonormal transformation matrix P so that PX has a diagonal covariance matrix (that is, PX is a random vector with all its distinct components pairwise uncorrelated).

A quick computation assuming were unitary yields:

Hence holds if and only if were diagonalisable by .

This is very constructive, as cov(X) is guaranteed to be a non-negative definite matrix and thus is guaranteed to be diagonalisable by some unitary matrix.

Covariance-free computation

[edit]

In practical implementations, especially with high dimensional data (large p), the naive covariance method is rarely used because it is not efficient due to high computational and memory costs of explicitly determining the covariance matrix. The covariance-free approach avoids the np2 operations of explicitly calculating and storing the covariance matrix XTX, instead utilizing one of matrix-free methods, for example, based on the function evaluating the product XT(X r) at the cost of 2np operations.

Iterative computation

[edit]

One way to compute the first principal component efficiently[41] is shown in the following pseudo-code, for a data matrix X with zero mean, without ever computing its covariance matrix.

r = a random vector of length p
r = r / norm(r)
do c times:
      s = 0 (a vector of length p)
      for each row x in X
            s = s + (xr) x
      λ = rTs // λ is the eigenvalue
      error = |λ ⋅ rs|
      r = s / norm(s)
      exit if error < tolerance
return λ, r

This power iteration algorithm simply calculates the vector XT(X r), normalizes, and places the result back in r. The eigenvalue is approximated by rT (XTX) r, which is the Rayleigh quotient on the unit vector r for the covariance matrix XTX . If the largest singular value is well separated from the next largest one, the vector r gets close to the first principal component of X within the number of iterations c, which is small relative to p, at the total cost 2cnp. The power iteration convergence can be accelerated without noticeably sacrificing the small cost per iteration using more advanced matrix-free methods, such as the Lanczos algorithm or the Locally Optimal Block Preconditioned Conjugate Gradient (LOBPCG) method.

Subsequent principal components can be computed one-by-one via deflation or simultaneously as a block. In the former approach, imprecisions in already computed approximate principal components additively affect the accuracy of the subsequently computed principal components, thus increasing the error with every new computation. The latter approach in the block power method replaces single-vectors r and s with block-vectors, matrices R and S. Every column of R approximates one of the leading principal components, while all columns are iterated simultaneously. The main calculation is evaluation of the product XT(X R). Implemented, for example, in LOBPCG, efficient blocking eliminates the accumulation of the errors, allows using high-level BLAS matrix-matrix product functions, and typically leads to faster convergence, compared to the single-vector one-by-one technique.

The NIPALS method

[edit]

Non-linear iterative partial least squares (NIPALS) is a variant the classical power iteration with matrix deflation by subtraction implemented for computing the first few components in a principal component or partial least squares analysis. For very-high-dimensional datasets, such as those generated in the *omics sciences (for example, genomics, metabolomics) it is usually only necessary to compute the first few PCs. The non-linear iterative partial least squares (NIPALS) algorithm updates iterative approximations to the leading scores and loadings t1 and r1T by the power iteration multiplying on every iteration by X on the left and on the right, that is, calculation of the covariance matrix is avoided, just as in the matrix-free implementation of the power iterations to XTX, based on the function evaluating the product XT(X r) = ((X r)TX)T.

The matrix deflation by subtraction is performed by subtracting the outer product, t1r1T from X leaving the deflated residual matrix used to calculate the subsequent leading PCs.[42] For large data matrices, or matrices that have a high degree of column collinearity, NIPALS suffers from loss of orthogonality of PCs due to machine precision round-off errors accumulated in each iteration and matrix deflation by subtraction.[43] A Gram–Schmidt re-orthogonalization algorithm is applied to both the scores and the loadings at each iteration step to eliminate this loss of orthogonality.[44] NIPALS reliance on single-vector multiplications cannot take advantage of high-level BLAS and results in slow convergence for clustered leading singular values—both these deficiencies are resolved in more sophisticated matrix-free block solvers, such as the Locally Optimal Block Preconditioned Conjugate Gradient (LOBPCG) method.

Online/sequential estimation

[edit]

In an "online" or "streaming" situation with data arriving piece by piece rather than being stored in a single batch, it is useful to make an estimate of the PCA projection that can be updated sequentially. This can be done efficiently, but requires different algorithms.[45]

Qualitative variables

[edit]

In PCA, it is common that we want to introduce qualitative variables as supplementary elements. For example, many quantitative variables have been measured on plants. For these plants, some qualitative variables are available as, for example, the species to which the plant belongs. These data were subjected to PCA for quantitative variables. When analyzing the results, it is natural to connect the principal components to the qualitative variable species. For this, the following results are produced.

  • Identification, on the factorial planes, of the different species, for example, using different colors.
  • Representation, on the factorial planes, of the centers of gravity of plants belonging to the same species.
  • For each center of gravity and each axis, p-value to judge the significance of the difference between the center of gravity and origin.

These results are what is called introducing a qualitative variable as supplementary element. This procedure is detailed in and Husson, Lê, & Pagès (2009) and Pagès (2013). Few software offer this option in an "automatic" way. This is the case of SPAD that historically, following the work of Ludovic Lebart, was the first to propose this option, and the R package FactoMineR.

Applications

[edit]

Intelligence

[edit]

The earliest application of factor analysis was in locating and measuring components of human intelligence. It was believed that intelligence had various uncorrelated components such as spatial intelligence, verbal intelligence, induction, deduction etc and that scores on these could be adduced by factor analysis from results on various tests, to give a single index known as the Intelligence Quotient (IQ). The pioneering statistical psychologist Spearman actually developed factor analysis in 1904 for his two-factor theory of intelligence, adding a formal technique to the science of psychometrics. In 1924 Thurstone looked for 56 factors of intelligence, developing the notion of Mental Age. Standard IQ tests today are based on this early work.[46]

Residential differentiation

[edit]

In 1949, Shevky and Williams introduced the theory of factorial ecology, which dominated studies of residential differentiation from the 1950s to the 1970s.[47] Neighbourhoods in a city were recognizable or could be distinguished from one another by various characteristics which could be reduced to three by factor analysis. These were known as 'social rank' (an index of occupational status), 'familism' or family size, and 'ethnicity'; Cluster analysis could then be applied to divide the city into clusters or precincts according to values of the three key factor variables. An extensive literature developed around factorial ecology in urban geography, but the approach went out of fashion after 1980 as being methodologically primitive and having little place in postmodern geographical paradigms.

One of the problems with factor analysis has always been finding convincing names for the various artificial factors. In 2000, Flood revived the factorial ecology approach to show that principal components analysis actually gave meaningful answers directly, without resorting to factor rotation. The principal components were actually dual variables or shadow prices of 'forces' pushing people together or apart in cities. The first component was 'accessibility', the classic trade-off between demand for travel and demand for space, around which classical urban economics is based. The next two components were 'disadvantage', which keeps people of similar status in separate neighbourhoods (mediated by planning), and ethnicity, where people of similar ethnic backgrounds try to co-locate.[48]

About the same time, the Australian Bureau of Statistics defined distinct indexes of advantage and disadvantage taking the first principal component of sets of key variables that were thought to be important. These SEIFA indexes are regularly published for various jurisdictions, and are used frequently in spatial analysis.[49]

Development indexes

[edit]

PCA can be used as a formal method for the development of indexes. As an alternative confirmatory composite analysis has been proposed to develop and assess indexes.[50]

The City Development Index was developed by PCA from about 200 indicators of city outcomes in a 1996 survey of 254 global cities. The first principal component was subject to iterative regression, adding the original variables singly until about 90% of its variation was accounted for. The index ultimately used about 15 indicators but was a good predictor of many more variables. Its comparative value agreed very well with a subjective assessment of the condition of each city. The coefficients on items of infrastructure were roughly proportional to the average costs of providing the underlying services, suggesting the Index was actually a measure of effective physical and social investment in the city.

The country-level Human Development Index (HDI) from UNDP, which has been published since 1990 and is very extensively used in development studies,[51] has very similar coefficients on similar indicators, strongly suggesting it was originally constructed using PCA.

Population genetics

[edit]

In 1978 Cavalli-Sforza and others pioneered the use of principal components analysis (PCA) to summarise data on variation in human gene frequencies across regions. The components showed distinctive patterns, including gradients and sinusoidal waves. They interpreted these patterns as resulting from specific ancient migration events.

Since then, PCA has been ubiquitous in population genetics, with thousands of papers using PCA as a display mechanism. Genetics varies largely according to proximity, so the first two principal components actually show spatial distribution and may be used to map the relative geographical location of different population groups, thereby showing individuals who have wandered from their original locations.[52]

PCA in genetics has been technically controversial, in that the technique has been performed on discrete non-normal variables and often on binary allele markers. The lack of any measures of standard error in PCA are also an impediment to more consistent usage. In August 2022, the molecular biologist Eran Elhaik published a theoretical paper in Scientific Reports analyzing 12 PCA applications. He concluded that it was easy to manipulate the method, which, in his view, generated results that were 'erroneous, contradictory, and absurd.' Specifically, he argued, the results achieved in population genetics were characterized by cherry-picking and circular reasoning.[53]

Market research and indexes of attitude

[edit]

Market research has been an extensive user of PCA. It is used to develop customer satisfaction or customer loyalty scores for products, and with clustering, to develop market segments that may be targeted with advertising campaigns, in much the same way as factorial ecology will locate geographical areas with similar characteristics.[54]

PCA rapidly transforms large amounts of data into smaller, easier-to-digest variables that can be more rapidly and readily analyzed. In any consumer questionnaire, there are series of questions designed to elicit consumer attitudes, and principal components seek out latent variables underlying these attitudes. For example, the Oxford Internet Survey in 2013 asked 2000 people about their attitudes and beliefs, and from these analysts extracted four principal component dimensions, which they identified as 'escape', 'social networking', 'efficiency', and 'problem creating'.[55]

Another example from Joe Flood in 2008 extracted an attitudinal index toward housing from 28 attitude questions in a national survey of 2697 households in Australia. The first principal component represented a general attitude toward property and home ownership. The index, or the attitude questions it embodied, could be fed into a General Linear Model of tenure choice. The strongest determinant of private renting by far was the attitude index, rather than income, marital status or household type.[56]

Quantitative finance

[edit]

In quantitative finance, PCA is used[57] in financial risk management, and has been applied to other problems such as portfolio optimization.

PCA is commonly used in problems involving fixed income securities and portfolios, and interest rate derivatives. Valuations here depend on the entire yield curve, comprising numerous highly correlated instruments, and PCA is used to define a set of components or factors that explain rate movements,[58] thereby facilitating the modelling. One common risk management application is to calculating value at risk, VaR, applying PCA to the Monte Carlo simulation. [59] Here, for each simulation-sample, the components are stressed, and rates, and in turn option values, are then reconstructed; with VaR calculated, finally, over the entire run. PCA is also used in hedging exposure to interest rate risk, given partial durations and other sensitivities. [58] Under both, the first three, typically, principal components of the system are of interest (representing "shift", "twist", and "curvature"). These principal components are derived from an eigen-decomposition of the covariance matrix of yield at predefined maturities; [60] and where the variance of each component is its eigenvalue (and as the components are orthogonal, no correlation need be incorporated in subsequent modelling).

For equity, an optimal portfolio is one where the expected return is maximized for a given level of risk, or alternatively, where risk is minimized for a given return; see Markowitz model for discussion. Thus, one approach is to reduce portfolio risk, where allocation strategies are applied to the "principal portfolios" instead of the underlying stocks. A second approach is to enhance portfolio return, using the principal components to select companies' stocks with upside potential. [61] [62] PCA has also been used to understand relationships [57] between international equity markets, and within markets between groups of companies in industries or sectors.

PCA may also be applied to stress testing,[63] essentially an analysis of a bank's ability to endure a hypothetical adverse economic scenario. Its utility is in "distilling the information contained in [several] macroeconomic variables into a more manageable data set, which can then [be used] for analysis."[63] Here, the resulting factors are linked to e.g. interest rates – based on the largest elements of the factor's eigenvector – and it is then observed how a "shock" to each of the factors affects the implied assets of each of the banks.

Neuroscience

[edit]

A variant of principal components analysis is used in neuroscience to identify the specific properties of a stimulus that increases a neuron's probability of generating an action potential.[64][65] This technique is known as spike-triggered covariance analysis. In a typical application an experimenter presents a white noise process as a stimulus (usually either as a sensory input to a test subject, or as a current injected directly into the neuron) and records a train of action potentials, or spikes, produced by the neuron as a result. Presumably, certain features of the stimulus make the neuron more likely to spike. In order to extract these features, the experimenter calculates the covariance matrix of the spike-triggered ensemble, the set of all stimuli (defined and discretized over a finite time window, typically on the order of 100 ms) that immediately preceded a spike. The eigenvectors of the difference between the spike-triggered covariance matrix and the covariance matrix of the prior stimulus ensemble (the set of all stimuli, defined over the same length time window) then indicate the directions in the space of stimuli along which the variance of the spike-triggered ensemble differed the most from that of the prior stimulus ensemble. Specifically, the eigenvectors with the largest positive eigenvalues correspond to the directions along which the variance of the spike-triggered ensemble showed the largest positive change compared to the variance of the prior. Since these were the directions in which varying the stimulus led to a spike, they are often good approximations of the sought after relevant stimulus features.

In neuroscience, PCA is also used to discern the identity of a neuron from the shape of its action potential. Spike sorting is an important procedure because extracellular recording techniques often pick up signals from more than one neuron. In spike sorting, one first uses PCA to reduce the dimensionality of the space of action potential waveforms, and then performs clustering analysis to associate specific action potentials with individual neurons.

PCA as a dimension reduction technique is particularly suited to detect coordinated activities of large neuronal ensembles. It has been used in determining collective variables, that is, order parameters, during phase transitions in the brain.[66]

Relation with other methods

[edit]

Correspondence analysis

[edit]

Correspondence analysis (CA) was developed by Jean-Paul Benzécri[67] and is conceptually similar to PCA, but scales the data (which should be non-negative) so that rows and columns are treated equivalently. It is traditionally applied to contingency tables. CA decomposes the chi-squared statistic associated to this table into orthogonal factors.[68] Because CA is a descriptive technique, it can be applied to tables for which the chi-squared statistic is appropriate or not. Several variants of CA are available including detrended correspondence analysis and canonical correspondence analysis. One special extension is multiple correspondence analysis, which may be seen as the counterpart of principal component analysis for categorical data.[69]

Factor analysis

[edit]
The above picture is an example of the difference between PCA and Factor Analysis. In the top diagram the "factor" (e.g., career path) represents the three observed variables (e.g., doctor, lawyer, teacher) whereas in the bottom diagram the observed variables (e.g., pre-school teacher, middle school teacher, high school teacher) are reduced into the component of interest (e.g., teacher).

Principal component analysis creates variables that are linear combinations of the original variables. The new variables have the property that the variables are all orthogonal. The PCA transformation can be helpful as a pre-processing step before clustering. PCA is a variance-focused approach seeking to reproduce the total variable variance, in which components reflect both common and unique variance of the variable. PCA is generally preferred for purposes of data reduction (that is, translating variable space into optimal factor space) but not when the goal is to detect the latent construct or factors.

Factor analysis is similar to principal component analysis, in that factor analysis also involves linear combinations of variables. Different from PCA, factor analysis is a correlation-focused approach seeking to reproduce the inter-correlations among variables, in which the factors "represent the common variance of variables, excluding unique variance".[70] In terms of the correlation matrix, this corresponds with focusing on explaining the off-diagonal terms (that is, shared co-variance), while PCA focuses on explaining the terms that sit on the diagonal. However, as a side result, when trying to reproduce the on-diagonal terms, PCA also tends to fit relatively well the off-diagonal correlations.[13]: 158  Results given by PCA and factor analysis are very similar in most situations, but this is not always the case, and there are some problems where the results are significantly different. Factor analysis is generally used when the research purpose is detecting data structure (that is, latent constructs or factors) or causal modeling. If the factor model is incorrectly formulated or the assumptions are not met, then factor analysis will give erroneous results.[71]

K-means clustering

[edit]

It has been asserted that the relaxed solution of k-means clustering, specified by the cluster indicators, is given by the principal components, and the PCA subspace spanned by the principal directions is identical to the cluster centroid subspace.[72][73] However, that PCA is a useful relaxation of k-means clustering was not a new result,[74] and it is straightforward to uncover counterexamples to the statement that the cluster centroid subspace is spanned by the principal directions.[75]

Non-negative matrix factorization

[edit]
Fractional residual variance (FRV) plots for PCA and NMF;[25] for PCA, the theoretical values are the contribution from the residual eigenvalues. In comparison, the FRV curves for PCA reaches a flat plateau where no signal are captured effectively; while the NMF FRV curves decline continuously, indicating a better ability to capture signal. The FRV curves for NMF also converges to higher levels than PCA, indicating the less-overfitting property of NMF.

Non-negative matrix factorization (NMF) is a dimension reduction method where only non-negative elements in the matrices are used, which is therefore a promising method in astronomy,[23][24][25] in the sense that astrophysical signals are non-negative. The PCA components are orthogonal to each other, while the NMF components are all non-negative and therefore constructs a non-orthogonal basis.

In PCA, the contribution of each component is ranked based on the magnitude of its corresponding eigenvalue, which is equivalent to the fractional residual variance (FRV) in analyzing empirical data.[21] For NMF, its components are ranked based only on the empirical FRV curves.[25] The residual fractional eigenvalue plots, that is, as a function of component number given a total of components, for PCA have a flat plateau, where no data is captured to remove the quasi-static noise, then the curves drop quickly as an indication of over-fitting (random noise).[21] The FRV curves for NMF is decreasing continuously[25] when the NMF components are constructed sequentially,[24] indicating the continuous capturing of quasi-static noise; then converge to higher levels than PCA,[25] indicating the less over-fitting property of NMF.

Iconography of correlations

[edit]

It is often difficult to interpret the principal components when the data include many variables of various origins, or when some variables are qualitative. This leads the PCA user to a delicate elimination of several variables. If observations or variables have an excessive impact on the direction of the axes, they should be removed and then projected as supplementary elements. In addition, it is necessary to avoid interpreting the proximities between the points close to the center of the factorial plane.

Iconography of correlations – Geochemistry of marine aerosols

The iconography of correlations, on the contrary, which is not a projection on a system of axes, does not have these drawbacks. We can therefore keep all the variables.

The principle of the diagram is to underline the "remarkable" correlations of the correlation matrix, by a solid line (positive correlation) or dotted line (negative correlation).

A strong correlation is not "remarkable" if it is not direct, but caused by the effect of a third variable. Conversely, weak correlations can be "remarkable". For example, if a variable Y depends on several independent variables, the correlations of Y with each of them are weak and yet "remarkable".

Generalizations

[edit]

Sparse PCA

[edit]

A particular disadvantage of PCA is that the principal components are usually linear combinations of all input variables. Sparse PCA overcomes this disadvantage by finding linear combinations that contain just a few input variables. It extends the classic method of principal component analysis (PCA) for the reduction of dimensionality of data by adding sparsity constraint on the input variables. Several approaches have been proposed, including

  • a regression framework,[76]
  • a convex relaxation/semidefinite programming framework,[77]
  • a generalized power method framework[78]
  • an alternating maximization framework[79]
  • forward-backward greedy search and exact methods using branch-and-bound techniques,[80]
  • Bayesian formulation framework.[81]

The methodological and theoretical developments of Sparse PCA as well as its applications in scientific studies were recently reviewed in a survey paper.[82]

Nonlinear PCA

[edit]
Linear PCA versus nonlinear Principal Manifolds[83] for visualization of breast cancer microarray data: a) Configuration of nodes and 2D Principal Surface in the 3D PCA linear manifold. The dataset is curved and cannot be mapped adequately on a 2D principal plane; b) The distribution in the internal 2D non-linear principal surface coordinates (ELMap2D) together with an estimation of the density of points; c) The same as b), but for the linear 2D PCA manifold (PCA2D). The "basal" breast cancer subtype is visualized more adequately with ELMap2D and some features of the distribution become better resolved in comparison to PCA2D. Principal manifolds are produced by the elastic maps algorithm. Data are available for public competition.[84] Software is available for free non-commercial use.[85]

Most of the modern methods for nonlinear dimensionality reduction find their theoretical and algorithmic roots in PCA or K-means. Pearson's original idea was to take a straight line (or plane) which will be "the best fit" to a set of data points. Trevor Hastie expanded on this concept by proposing Principal curves[86] as the natural extension for the geometric interpretation of PCA, which explicitly constructs a manifold for data approximation followed by projecting the points onto it. See also the elastic map algorithm and principal geodesic analysis.[87] Another popular generalization is kernel PCA, which corresponds to PCA performed in a reproducing kernel Hilbert space associated with a positive definite kernel.

In multilinear subspace learning,[88][89][90] PCA is generalized to multilinear PCA (MPCA) that extracts features directly from tensor representations. MPCA is solved by performing PCA in each mode of the tensor iteratively. MPCA has been applied to face recognition, gait recognition, etc. MPCA is further extended to uncorrelated MPCA, non-negative MPCA and robust MPCA.

N-way principal component analysis may be performed with models such as Tucker decomposition, PARAFAC, multiple factor analysis, co-inertia analysis, STATIS, and DISTATIS.

Robust PCA

[edit]

While PCA finds the mathematically optimal method (as in minimizing the squared error), it is still sensitive to outliers in the data that produce large errors, something that the method tries to avoid in the first place. It is therefore common practice to remove outliers before computing PCA. However, in some contexts, outliers can be difficult to identify.[91] For example, in data mining algorithms like correlation clustering, the assignment of points to clusters and outliers is not known beforehand. A recently proposed generalization of PCA[92] based on a weighted PCA increases robustness by assigning different weights to data objects based on their estimated relevancy.

Outlier-resistant variants of PCA have also been proposed, based on L1-norm formulations (L1-PCA).[7][5]

Robust principal component analysis (RPCA) via decomposition in low-rank and sparse matrices is a modification of PCA that works well with respect to grossly corrupted observations.[93][94][95]

Similar techniques

[edit]

Independent component analysis

[edit]

Independent component analysis (ICA) is directed to similar problems as principal component analysis, but finds additively separable components rather than successive approximations.

Network component analysis

[edit]

Given a matrix , it tries to decompose it into two matrices such that . A key difference from techniques such as PCA and ICA is that some of the entries of are constrained to be 0. Here is termed the regulatory layer. While in general such a decomposition can have multiple solutions, they prove that if the following conditions are satisfied :

  1. has full column rank
  2. Each column of must have at least zeroes where is the number of columns of (or alternatively the number of rows of ). The justification for this criterion is that if a node is removed from the regulatory layer along with all the output nodes connected to it, the result must still be characterized by a connectivity matrix with full column rank.
  3. must have full row rank.

then the decomposition is unique up to multiplication by a scalar.[96]

Discriminant analysis of principal components

[edit]

Discriminant analysis of principal components (DAPC) is a multivariate method used to identify and describe clusters of genetically related individuals. Genetic variation is partitioned into two components: variation between groups and within groups, and it maximizes the former. Linear discriminants are linear combinations of alleles which best separate the clusters. Alleles that most contribute to this discrimination are therefore those that are the most markedly different across groups. The contributions of alleles to the groupings identified by DAPC can allow identifying regions of the genome driving the genetic divergence among groups[97] In DAPC, data is first transformed using a principal components analysis (PCA) and subsequently clusters are identified using discriminant analysis (DA).

A DAPC can be realized on R using the package Adegenet. (more info: adegenet on the web)

Directional component analysis

[edit]

Directional component analysis (DCA) is a method used in the atmospheric sciences for analysing multivariate datasets.[98] Like PCA, it allows for dimension reduction, improved visualization and improved interpretability of large data-sets. Also like PCA, it is based on a covariance matrix derived from the input dataset. The difference between PCA and DCA is that DCA additionally requires the input of a vector direction, referred to as the impact. Whereas PCA maximises explained variance, DCA maximises probability density given impact. The motivation for DCA is to find components of a multivariate dataset that are both likely (measured using probability density) and important (measured using the impact). DCA has been used to find the most likely and most serious heat-wave patterns in weather prediction ensembles ,[99] and the most likely and most impactful changes in rainfall due to climate change .[100]

Software/source code

[edit]
  • ALGLIB – a C++ and C# library that implements PCA and truncated PCA
  • Analytica – The built-in EigenDecomp function computes principal components.
  • ELKI – includes PCA for projection, including robust variants of PCA, as well as PCA-based clustering algorithms.
  • Gretl – principal component analysis can be performed either via the pca command or via the princomp() function.
  • Julia – Supports PCA with the pca function in the MultivariateStats package
  • KNIME – A java based nodal arranging software for Analysis, in this the nodes called PCA, PCA compute, PCA Apply, PCA inverse make it easily.
  • Maple (software) – The PCA command is used to perform a principal component analysis on a set of data.
  • Mathematica – Implements principal component analysis with the PrincipalComponents command using both covariance and correlation methods.
  • MathPHPPHP mathematics library with support for PCA.
  • MATLAB – The SVD function is part of the basic system. In the Statistics Toolbox, the functions princomp and pca (R2012b) give the principal components, while the function pcares gives the residuals and reconstructed matrix for a low-rank PCA approximation.
  • MatplotlibPython library have a PCA package in the .mlab module.
  • mlpack – Provides an implementation of principal component analysis in C++.
  • mrmath – A high performance math library for Delphi and FreePascal can perform PCA; including robust variants.
  • NAG Library – Principal components analysis is implemented via the g03aa routine (available in both the Fortran versions of the Library).
  • NMath – Proprietary numerical library containing PCA for the .NET Framework.
  • GNU Octave – Free software computational environment mostly compatible with MATLAB, the function princomp gives the principal component.
  • OpenCV
  • Oracle Database 12c – Implemented via DBMS_DATA_MINING.SVDS_SCORING_MODE by specifying setting value SVDS_SCORING_PCA
  • Orange (software) – Integrates PCA in its visual programming environment. PCA displays a scree plot (degree of explained variance) where user can interactively select the number of principal components.
  • Origin – Contains PCA in its Pro version.
  • Qlucore – Commercial software for analyzing multivariate data with instant response using PCA.
  • RFree statistical package, the functions princomp and prcomp can be used for principal component analysis; prcomp uses singular value decomposition which generally gives better numerical accuracy. Some packages that implement PCA in R, include, but are not limited to: ade4, vegan, ExPosition, dimRed, and FactoMineR.
  • SAS – Proprietary software; for example, see[101]
  • scikit-learn – Python library for machine learning which contains PCA, Probabilistic PCA, Kernel PCA, Sparse PCA and other techniques in the decomposition module.
  • Scilab – Free and open-source, cross-platform numerical computational package, the function princomp computes principal component analysis, the function pca computes principal component analysis with standardized variables.
  • SPSS – Proprietary software most commonly used by social scientists for PCA, factor analysis and associated cluster analysis.
  • Weka – Java library for machine learning which contains modules for computing principal components.

See also

[edit]

References

[edit]

Further reading

[edit]
[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
Principal component analysis (PCA) is a statistical technique used to reduce the dimensionality of a dataset with many interrelated variables while preserving as much variability as possible.[1] It achieves this by transforming the original variables into a new set of uncorrelated variables called principal components, ordered such that the first component captures the maximum variance, the second captures the next highest variance orthogonal to the first, and so on.[2] Mathematically, PCA relies on the eigen-decomposition of the data's covariance matrix or singular value decomposition (SVD) of the data matrix XX, expressed as X=PΛQTX = P \Lambda Q^T, where PP and QQ are matrices of singular vectors and Λ\Lambda is a diagonal matrix of singular values representing the variance explained by each component.[2] The method originated in 1901 with Karl Pearson's work on lines and planes of closest fit to systems of points in space, building on earlier concepts like principal axes of ellipsoids by Francis Galton and SVD by Beltrami and Jordan.[3] It was further formalized by Harold Hotelling in 1933, who introduced the term "principal component" and emphasized its role in data reduction, with Eckart and Young linking it to SVD in 1936.[3] As one of the oldest multivariate statistical techniques, PCA has been widely adopted across disciplines for its ability to simplify complex data structures.[2] PCA's primary purposes include dimensionality reduction to handle high-dimensional data, visualization by projecting data onto lower-dimensional spaces, noise filtering by discarding components with low variance, and feature extraction for subsequent analyses like regression or clustering.[4] In practice, it transforms correlated variables into orthogonal components that retain the most information, often explaining 90% or more of the variance with far fewer dimensions—for instance, reducing 11 automotive variables to three principal components.[3] Key applications span fields such as genetics and image analysis, where it manages enormous numbers of measurements like pixels or genes; economics and finance for summarizing macroeconomic indicators or stock portfolios; medical research for identifying patterns in patient data; and machine learning tasks including community detection, ranking, and manifold learning.[5][6][7] Extensions like correspondence analysis for qualitative data and multiple factor analysis for mixed variable types further broaden its utility.[2]

Introduction

Overview

Principal component analysis (PCA) is a statistical procedure that employs an orthogonal linear transformation to convert a set of observations of possibly correlated variables into a set of linearly uncorrelated variables known as principal components.[2] This transformation re-expresses the data in a new coordinate system where the greatest variance in the dataset lies along the first coordinate (first principal component), the second greatest variance along the second coordinate, and so on.[8] The primary purpose of PCA is dimensionality reduction, enabling the summarization of complex, high-dimensional datasets by retaining the maximum amount of variance possible with a reduced number of components, thus simplifying analysis while preserving essential information.[2] The basic workflow of PCA begins with centering the data by subtracting the mean from each variable to ensure the dataset has zero mean, which facilitates the analysis of variance.[8] Next, the covariance matrix of the centered data is computed to capture the relationships between variables. From this matrix, the eigenvectors and corresponding eigenvalues are extracted, where the eigenvectors represent the directions of the principal components and the eigenvalues indicate the amount of variance explained by each. Finally, the original data is projected onto these principal components, typically selecting the top components that account for a substantial portion of the total variance.[2] As an unsupervised learning technique, PCA operates without requiring labeled data or predefined outcomes, making it particularly valuable for exploratory data analysis in fields such as genomics, finance, and image processing.[8] By focusing on variance maximization, it uncovers underlying structures and patterns in the data, aiding in noise reduction and visualization without assuming any specific distributional form.[2]

History

Principal component analysis (PCA) was first introduced by Karl Pearson in 1901, who described it as a method for finding the "principal axes of a normal ellipsoid" through the geometric optimization of hyperplanes that minimize perpendicular distances to systems of points in space.[9] This foundational work laid the groundwork for PCA as a technique for dimensionality reduction in multivariate data.[10] This built on earlier ideas, including principal axes of ellipsoids by Francis Galton and the singular value decomposition by Eugenio Beltrami (1873) and Camille Jordan (1874).[3] In 1933, Harold Hotelling formalized PCA algebraically, framing it in terms of maximizing variance through eigenvalues and eigenvectors of the covariance matrix, and explicitly linking it to multiple correlation criteria. Hotelling's contributions distinguished PCA from earlier geometric approaches and positioned it as a tool for analyzing complexes of statistical variables.[11] The 1950s and 1960s marked significant developments in PCA, driven by advances in statistical theory and the advent of electronic computers that enabled practical computation for larger datasets. Key advancements included asymptotic sampling distributions for PCA coefficients by Theodore W. Anderson in 1963 and the use and interpretation of principal components by C. R. Rao in 1964.[12] John C. Gower's 1966 work further explored geometric and statistical connections, while practical applications proliferated in fields like demography, econometrics, and meteorology, such as Moser and Scott's 1961 reduction of 57 demographic variables to four principal components.[12] Computational methods improved with the use of singular value decomposition (SVD) for efficient computation, with its application to low-rank matrix approximation relevant to PCA established by Eckart and Young in 1936, and further computational advancements in the mid-20th century, facilitating efficient eigenvalue computations.[12][13] Links to factor analysis strengthened during this era, with PCA often viewed as a special case for extracting factors without assuming an underlying model, as discussed by Hotelling in 1957 and others; tools like the scree graph by Raymond B. Cattell in 1966 and Kaiser's eigenvalue rule in 1960 emerged for component selection.[12] Since the 2000s, PCA has been increasingly integrated into machine learning workflows for dimensionality reduction and feature extraction, as highlighted in surveys of reduction techniques.[14] In the 2020s, PCA continues to serve as a preprocessing step in deep learning pipelines, such as reducing input dimensions before training neural networks to mitigate the curse of dimensionality and enhance computational efficiency, particularly in applications like image analysis and genomic data processing.[15] Standard references include Pearson's 1901 paper, Hotelling's 1933 article, and Ian T. Jolliffe's comprehensive books from 1986 and 2002, which synthesize theoretical and applied aspects.[10][12]

Conceptual Foundations

Intuition

Principal component analysis (PCA) addresses the challenge of analyzing high-dimensional datasets where variables often exhibit correlations, resulting in redundancy that complicates interpretation and computation. In such scenarios, multiple variables may convey overlapping information—for instance, in biological data where traits like height and weight are interrelated—leading to inefficient representations that obscure underlying patterns. PCA mitigates this by transforming the data into a new set of uncorrelated variables, called principal components, which capture the essential structure while discarding noise and redundancy, thereby simplifying analysis without substantial loss of information.[8] At its core, variance serves as a measure of how spread out the data points are along a particular direction, reflecting the amount of information or signal present. The first principal component is designed to align with the direction of maximum variance, thereby capturing the largest portion of the data's variability and providing the most informative summary. Subsequent components then capture progressively less variance in orthogonal directions, ensuring that the retained dimensions prioritize the most significant aspects of the data distribution. This hierarchical approach allows PCA to reduce dimensionality effectively, as the principal components ordered by decreasing variance enable selective retention of the top few for approximation.[8] To build intuition, consider PCA as rotating the coordinate axes of a 2D dataset to align them with the directions of greatest spread, minimizing the loss of information when projecting onto fewer axes. Imagine data points forming an elliptical cloud tilted away from the standard x and y axes; by rotating the axes to match the cloud's long and short axes, projections onto the primary axis preserve the bulk of the spread, while the secondary axis handles the remaining variation. This rotation decorrelates the variables, transforming redundant, slanted data into independent components.[16] A simple 2D example illustrates this with correlated variables like height and weight in a population, where taller individuals tend to weigh more, creating a diagonal scatter plot with high positive correlation. Without transformation, both dimensions redundantly describe body size; PCA identifies a principal component along the best-fit line of this diagonal (the direction of maximum variance), effectively summarizing the data with a single variable that captures most of the spread. The second component, perpendicular to the first, accounts for deviations from this line (e.g., variations in body shape), but often explains far less variance, allowing reduction to one dimension with minimal information loss. This decorrelation reveals independent factors, such as overall size versus proportionality, enhancing interpretability.[8]

Geometric Interpretation

In principal component analysis (PCA), data points are conceptualized as a cloud of points distributed in a multidimensional space, where each dimension corresponds to a variable. The principal components emerge as orthogonal directions—specifically, the eigenvectors of the data's covariance matrix—that align with the axes of maximum variance within this cloud. The first principal component captures the direction along which the data exhibits the greatest spread, while subsequent components account for progressively less variance in perpendicular directions. This geometric view transforms the high-dimensional data into a lower-dimensional representation by projecting the points onto these principal axes, preserving as much of the original variability as possible.[17][18] A key visual analogy for PCA involves fitting an ellipsoid to the data cloud, where the ellipsoid's shape and orientation reflect the covariance structure of the dataset. The principal axes of this ellipsoid serve as the semi-axes, with their lengths proportional to the square roots of the corresponding eigenvalues, indicating the extent of variance along each direction. For instance, in a two-dimensional case, the data scatter forms an elliptical cloud centered at the origin (after mean subtraction), and the major and minor axes of the ellipse directly correspond to the first and second principal components, respectively. This fitting process minimizes the perpendicular distances from the data points to the hyperplane defined by the principal components, providing an intuitive sense of how PCA approximates the data's geometry.[19][18] To assess the utility of individual components, a scree plot is often employed, plotting the eigenvalues in descending order to visualize the proportion of total variance explained by each principal component. The "elbow" in this plot helps identify the number of components that capture a substantial portion of the data's variability without including noise-dominated directions. This graphical tool underscores the hierarchical nature of variance reduction in the geometric framework of PCA.[17] A critical aspect of this geometric interpretation is the necessity of centering the data by subtracting the mean from each variable, which shifts the cloud's centroid to the origin. Without centering, the principal components might misleadingly align with the direction of the mean vector rather than true variance directions, distorting the analysis; centering ensures that the components focus solely on the spread around the central tendency. In contrast, applying PCA to raw, uncentered data can lead to components that primarily describe location rather than shape, undermining the method's effectiveness for dimensionality reduction.[19][18]

Mathematical Formulation

Definition

Principal component analysis (PCA) is a statistical procedure applied to a dataset $ X $, an $ n \times p $ matrix where $ n $ denotes the number of samples (observations) and $ p $ the number of variables (features), with the data assumed to be centered by subtracting the column means to remove the overall mean and emphasize deviations.[20] This centering ensures that the analysis focuses on the covariance structure rather than absolute levels.[21] The core objective of PCA is to derive a set of uncorrelated linear combinations of the original variables, known as principal components, arranged in decreasing order of their variances to maximize the captured variation in the dataset.[20] The projections of the centered data onto these principal components yield the scores, which represent the transformed coordinates of each observation, while the coefficients of the linear combinations are the loadings, quantifying the weight or contribution of each original variable to a given component.[20] PCA relies on the assumption of linearity in the relationships between variables, meaning it seeks only linear transformations and may not capture nonlinear dependencies.[21] It is also sensitive to outliers, as these can inflate variances and skew the components toward atypical data points.[20] Furthermore, PCA is highly sensitive to variable scaling; if features are on disparate measurement scales, standardization (e.g., to unit variance) is typically required to prevent larger-scale variables from dominating the results.[22][23] The covariance matrix underpins this process by encapsulating the pairwise variances and covariances among variables.[20]

Principal Components

In principal component analysis, the first principal component is extracted as the direction in the data space that maximizes the variance, corresponding to the eigenvector of the sample covariance matrix associated with its largest eigenvalue. This eigenvector provides the weights for a linear combination of the original variables that captures the greatest amount of variability in the dataset.[24] Subsequent principal components are then derived iteratively, each orthogonal to all preceding components and maximizing the remaining unexplained variance. Subsequent principal components correspond to the eigenvectors associated with the next largest eigenvalues, ensuring orthogonality and successive variance maximization.[25] The covariance matrix, central to this extraction, summarizes the second-order statistics of the centered data.[24] The k-th principal component scores are computed by projecting the centered data matrix $ \mathbf{X} $ onto the corresponding eigenvector $ \mathbf{v}_k $, yielding
PCk=Xvk, \mathbf{PC}_k = \mathbf{X} \mathbf{v}_k,
where $ \mathbf{PC}_k $ is a vector of scores for the k-th component across all observations.[25] Each principal component is unique only up to a sign flip, as eigenvectors can point in either direction; a common convention is to choose the orientation with positive loadings on the variable with the highest weight for improved interpretability.

Covariance Structure

In principal component analysis (PCA), the covariance matrix serves as the foundational structure for identifying the principal directions of variance in a dataset. For a centered data matrix XX of size n×pn \times p, where nn is the number of observations and pp is the number of variables, the sample covariance matrix Σ\Sigma is defined as Σ=1n1XTX\Sigma = \frac{1}{n-1} X^T X.[26] This matrix is symmetric and positive semi-definite, with its diagonal elements representing the variances of each variable and the off-diagonal elements capturing the pairwise covariances between variables.[26] The off-diagonal entries of Σ\Sigma quantify the linear relationships or correlations between variables, indicating the degree of redundancy or dependence in the data; positive values suggest variables tend to increase together, while negative values indicate opposing movements.[26] PCA leverages this structure by seeking an orthogonal transformation that diagonalizes Σ\Sigma, thereby producing a new set of uncorrelated components aligned with the directions of maximum variance.[27] The eigendecomposition of the covariance matrix takes the form Σ=VΛVT\Sigma = V \Lambda V^T, where VV is an orthogonal matrix whose columns are the eigenvectors viv_i (the principal directions), and Λ\Lambda is a diagonal matrix containing the corresponding eigenvalues λi\lambda_i (the variances along those directions), ordered such that λ1λ2λp0\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_p \geq 0.[26] This decomposition reveals the inherent covariance structure, transforming the original correlated variables into uncorrelated principal components.[27] When variables in the dataset have differing scales or units, the covariance matrix can be sensitive to these differences, potentially biasing the results toward high-variance variables.[27] In such cases, PCA is often performed on the correlation matrix instead, which is the covariance matrix of the standardized variables (each with zero mean and unit variance), ensuring scale invariance and equal weighting across variables.[27] The correlation matrix thus provides a normalized view of the covariance structure, particularly useful for datasets where linear changes in measurement units are plausible.[27]

Dimensionality Reduction

Variance Maximization

Principal component analysis seeks to identify linear combinations of variables, known as principal components, that capture the maximum possible variance in the data. The first principal component is defined as the direction $ \mathbf{w}_1 $ in the variable space that maximizes the variance of the projected data points, given by $ \operatorname{Var}(\mathbf{X} \mathbf{w}_1) = \mathbf{w}_1^T \Sigma \mathbf{w}_1 $, where $ \mathbf{X} $ is the data matrix (centered to have zero mean) and $ \Sigma $ is the covariance matrix. This maximization is subject to the unit norm constraint $ |\mathbf{w}_1| = 1 $ (or equivalently $ \mathbf{w}_1^T \mathbf{w}_1 = 1 $) to ensure the direction is scaled appropriately and to avoid trivial solutions of infinite variance. This formulation, originally introduced by Hotelling, corresponds to maximizing the Rayleigh quotient $ R(\mathbf{w}) = \frac{\mathbf{w}^T \Sigma \mathbf{w}}{\mathbf{w}^T \mathbf{w}} $, whose maximum value is the largest eigenvalue of $ \Sigma $, with the corresponding eigenvector providing the direction $ \mathbf{w}_1 $.[28] To derive this formally, the optimization problem for the first component employs the method of Lagrange multipliers. Define the Lagrangian as
L(w,λ)=wTΣwλ(wTw1). \mathcal{L}(\mathbf{w}, \lambda) = \mathbf{w}^T \Sigma \mathbf{w} - \lambda (\mathbf{w}^T \mathbf{w} - 1).
Taking the gradient with respect to $ \mathbf{w} $ and setting it to zero yields
wL=2Σw2λw=0, \nabla_{\mathbf{w}} \mathcal{L} = 2 \Sigma \mathbf{w} - 2 \lambda \mathbf{w} = 0,
which simplifies to the eigenvalue equation
Σw=λw. \Sigma \mathbf{w} = \lambda \mathbf{w}.
The solution $ \mathbf{w}_1 $ is the eigenvector corresponding to the largest eigenvalue $ \lambda_1 $, and the maximized variance is $ \lambda_1 $. This constrained optimization ensures that the principal component direction aligns with the axis of greatest data spread.[12] Subsequent principal components are obtained by sequential maximization of the residual variance, subject to both the unit norm constraint and orthogonality to previous components. For the second component $ \mathbf{w}_2 $, the objective is to maximize $ \mathbf{w}_2^T \Sigma \mathbf{w}_2 $ subject to $ \mathbf{w}_2^T \mathbf{w}_2 = 1 $ and $ \mathbf{w}_2^T \mathbf{w}_1 = 0 $. This introduces an additional Lagrange multiplier $ \mu $ for the orthogonality constraint, leading to a modified Lagrangian whose stationarity condition again results in the eigenvalue equation $ \Sigma \mathbf{w}_2 = \lambda_2 \mathbf{w}_2 $, where $ \lambda_2 $ is the second-largest eigenvalue and $ \mathbf{w}_2 $ is the corresponding eigenvector orthogonal to $ \mathbf{w}_1 $. This process continues for higher components, yielding an orthogonal set of eigenvectors ordered by decreasing eigenvalues.[12] The importance of each principal component is quantified by the explained variance ratio, defined as $ \frac{\lambda_i}{\sum_j \lambda_j} $ for the $ i $-th component, which represents the proportion of the total variance captured by that component relative to the trace of $ \Sigma $. The cumulative explained variance for the first $ m $ components is then $ \frac{\sum_{i=1}^m \lambda_i}{\sum_j \lambda_j} $, aiding in decisions about dimensionality reduction by indicating how much information is retained. These ratios are directly derived from the eigenvalues obtained in the optimization.[12]

Data Projection

Once the principal components have been identified, dimensionality reduction in PCA proceeds by projecting the original data onto the subspace defined by the first kk components, where k<pk < p and pp is the original number of variables. For a centered data matrix XX of dimensions n×pn \times p (with nn observations), the reduced data matrix ZZ of dimensions n×kn \times k is computed as Z=XVkZ = X V_k, where VkV_k is the p×kp \times k matrix whose columns are the eigenvectors corresponding to the kk largest eigenvalues of the covariance matrix of XX. This linear transformation preserves the maximum possible variance in the lower-dimensional space while discarding directions of minimal variation.[29] Selecting the value of kk is crucial for balancing dimensionality reduction with information retention. A standard method is to retain enough components to explain a predefined proportion of the total variance, such as 90% or 95%, computed as the cumulative sum of the eigenvalues divided by their total sum; for instance, if the first few eigenvalues account for 95% of the trace of the covariance matrix, those components are kept.[29] Another approach is the scree plot, which visualizes the eigenvalues in descending order against component index and identifies the "elbow" where the plot flattens, indicating diminishing returns in explained variance; this heuristic, originally proposed for factor analysis, is widely applied in PCA to avoid over-retention of noise.[30] Cross-validation offers a more data-driven alternative, evaluating kk by assessing reconstruction accuracy on validation sets to minimize generalization error.[29] The effectiveness of this projection is quantified by the reconstruction error, which measures the loss of information due to dimensionality reduction. When projecting onto the top kk components, the minimal squared Frobenius norm of the error between the original XX and its approximation ZVkTZ V_k^T is given by XZVkTF2=(n1)i=k+1pλi\|X - Z V_k^T\|_F^2 = (n-1) \sum_{i=k+1}^p \lambda_i, where λi\lambda_i are the eigenvalues of the covariance matrix in descending order and the covariance is defined as Σ=1n1XTX\Sigma = \frac{1}{n-1} X^T X; retaining more components reduces this error by including larger λi\lambda_i, but at the cost of higher dimensionality.[29] Although PCA assumes continuous variables, qualitative or categorical variables can be handled by first encoding them into dummy (binary indicator) variables, allowing projection as with numerical data. However, this encoding introduces challenges, such as artificial multicollinearity among dummies and distortion of distances in the variable space, which can undermine the interpretability and optimality of the components; for purely categorical data, specialized extensions like multiple correspondence analysis are often preferable to mitigate these limitations.[31]

Computation Techniques

Covariance Method

The covariance method is a classical batch algorithm for computing principal components, relying on the eigendecomposition of the data's covariance matrix to identify directions of maximum variance. This approach, formalized in early statistical literature, processes the entire dataset at once and is particularly effective when the number of features pp is not excessively large relative to the number of samples nn. It begins by centering the data to ensure the mean is zero, which is essential for the covariance to capture true variability rather than shifts due to location.[32] The procedure unfolds in the following steps. First, center the dataset by subtracting the mean of each feature across all samples from the corresponding feature values; this yields a mean-centered matrix XRn×pX \in \mathbb{R}^{n \times p}. Second, compute the sample covariance matrix Σ=1n1XTX\Sigma = \frac{1}{n-1} X^T X, which quantifies the pairwise variances and covariances among features. Third, perform eigendecomposition on Σ\Sigma to obtain Σ=VΛVT\Sigma = V \Lambda V^T, where VV is the matrix of eigenvectors (principal directions) and Λ\Lambda is the diagonal matrix of eigenvalues (variances along those directions). Fourth, sort the eigenvalues in descending order to rank the principal components by explained variance. Finally, project the centered data onto the top kk eigenvectors to obtain the reduced representation Y=XVkY = X V_k, where VkV_k contains the first kk columns of VV.[32]
Algorithm: Covariance Method for PCA
Input: Data matrix X ∈ ℝ^{n × p}, number of components k
1. Compute mean vector μ = (1/n) X^T 1 (1 is vector of ones)
2. Center: X_c = X - 1 μ^T
3. Compute covariance: Σ = (1/(n-1)) X_c^T X_c
4. Eigendecompose: [V, Λ] = eig(Σ)  // V orthogonal, Λ diagonal
5. Sort indices: [Λ_sorted, idx] = sort(diag(Λ), 'descend')
6. V_sorted = V(:, idx)
7. If k < p: Project Y = X_c V_sorted(:, 1:k)
Output: Principal components V_sorted, scores Y (if projected)
This pseudocode assumes a symmetric positive semi-definite Σ\Sigma, as guaranteed for real-valued data.[32] The time complexity is dominated by the eigendecomposition, which requires O(p3)O(p^3) operations for a p×pp \times p matrix, plus O(np2)O(n p^2) for covariance computation; thus, it scales cubically with the feature dimension. This makes the method suitable for small-to-medium datasets where p104p \ll 10^4 and the data fits in memory, but it becomes computationally prohibitive for high-dimensional or massive-scale problems. For very large datasets emerging in the 2010s, randomized approximations have largely supplanted it to achieve scalability without full matrix operations.[33]

Eigenvalue Decomposition

The covariance matrix Σ\Sigma in principal component analysis is symmetric and positive semi-definite, which guarantees that all its eigenvalues are real and non-negative, and that it admits an orthogonal basis of eigenvectors.[34] This spectral theorem for symmetric matrices ensures the eigenvectors corresponding to distinct eigenvalues are orthogonal, allowing the decomposition Σ=VΛVT\Sigma = V \Lambda V^T, where VV is an orthogonal matrix whose columns are the eigenvectors, and Λ\Lambda is a diagonal matrix of the eigenvalues.[35] To compute the eigendecomposition, the eigenvalues λ\lambda are found by solving the characteristic equation
det(ΣλI)=0, \det(\Sigma - \lambda I) = 0,
which yields the roots λ1λ2λp0\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_p \geq 0, where pp is the dimension of the data. For each eigenvalue λi\lambda_i, the corresponding eigenvector viv_i satisfies the equation
(ΣλiI)vi=0, (\Sigma - \lambda_i I) v_i = 0,
with viv_i normalized such that vi=1\|v_i\| = 1 and viTvj=0v_i^T v_j = 0 for iji \neq j.[34] Practical algorithms for this decomposition include the QR algorithm, which iteratively factors the matrix into an orthogonal QQ and upper triangular RR (via QR decomposition), then updates the matrix as Ak+1=RkQkA_{k+1} = R_k Q_k, converging to a triangular form revealing the eigenvalues on the diagonal; this method offers quadratic convergence and numerical stability for symmetric matrices.[36] For approximating the dominant (largest) eigenvalue and eigenvector, power iteration starts with a random unit vector v0v_0 and repeatedly applies Σvk=λkvk1\Sigma v_{k} = \lambda_k v_{k-1} followed by normalization, converging linearly at a rate determined by the ratio of the largest to second-largest eigenvalues.[37] Numerical considerations often involve deflation techniques to compute eigenvalues sequentially without full matrix operations each time; for instance, after finding the dominant eigenpair (λ1,v1)(\lambda_1, v_1), Hotelling's deflation updates the matrix to Σ=Σλ1v1v1T\Sigma' = \Sigma - \lambda_1 v_1 v_1^T, which sets the first eigenvalue to zero while preserving the others, allowing iteration on the reduced problem with improved efficiency for high dimensions.[38] These approaches ensure stability, as the symmetry of Σ\Sigma prevents complex arithmetic and maintains orthogonality under finite-precision computations.

Singular Value Decomposition

Singular value decomposition (SVD) provides a robust and direct method for computing principal component analysis (PCA) by factorizing the centered data matrix rather than its covariance matrix, making it particularly suitable for non-square or high-dimensional datasets. Consider a centered data matrix $ X \in \mathbb{R}^{n \times p} $, where $ n $ is the number of observations and $ p $ is the number of variables. The SVD decomposes $ X $ as $ X = U \Sigma V^T $, where $ U \in \mathbb{R}^{n \times k} $ contains the left singular vectors (orthonormal), $ V \in \mathbb{R}^{p \times k} $ contains the right singular vectors (orthonormal loadings), $ \Sigma \in \mathbb{R}^{k \times k} $ is a diagonal matrix with non-negative singular values $ \sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_k \geq 0 $ (where $ k = \min(n, p) $), and the scores (projections of the data onto the principal components) are given by the columns of $ U \Sigma $. This factorization directly yields the principal components as the columns of $ V $, with the singular values indicating the amount of variance explained by each component.[39][40] The connection between SVD and PCA arises through the covariance structure: the eigenvalues $ \lambda_i $ of the sample covariance matrix $ S = \frac{1}{n-1} X^T X $ satisfy $ \lambda_i = \frac{\sigma_i^2}{n-1} $, since $ X^T X = V \Sigma^2 V^T $, confirming that the right singular vectors $ V $ are the eigenvectors of $ X^T X $ (and thus of $ S $, up to scaling). This relation allows PCA to be performed entirely via SVD without explicitly forming or eigendecomposing the covariance matrix, which is advantageous when $ p \gg n $ (tall matrices) or vice versa, as it avoids potential numerical issues from inverting or scaling large matrices. The proportion of variance explained by the $ i $-th component is then $ \frac{\lambda_i}{\sum \lambda_j} = \frac{\sigma_i^2}{\sum \sigma_j^2} $.[41][39] SVD offers several advantages over eigendecomposition of the covariance matrix for PCA, including greater numerical stability for rank-deficient or ill-conditioned data, as it operates directly on the original matrix and handles rectangular shapes without modification. It is especially effective for "thin" or "tall" datasets where $ n \neq p $, preventing the need to compute a potentially singular $ p \times p $ covariance matrix when $ p > n $. The computational complexity of full SVD is $ O(\min(n,p)^2 \max(n,p)) $, which is efficient for moderate-sized problems and scales better than the $ O(p^3) $ cost of eigendecomposition when $ p $ is large but $ n $ is small.[41][40][42] For computing the SVD in PCA, the Golub-Reinsch algorithm is a standard approach, involving an initial bidiagonalization step using Householder transformations to reduce $ X $ to a bidiagonal form, followed by iterative QR decomposition to obtain the singular values and vectors; this method is reliable for dense matrices and forms the basis for implementations in libraries like LAPACK. Alternatively, divide-and-conquer algorithms, which recursively split the matrix into smaller subproblems, offer faster performance for full SVD on large dense matrices with complexity approaching $ O(n^2 p) $ or better in practice, while maintaining high accuracy. These techniques ensure that PCA via SVD remains feasible for datasets up to moderate sizes, such as thousands of observations and variables.[43]

Advanced Computation

Iterative Algorithms

Iterative algorithms for principal component analysis provide efficient ways to approximate the dominant eigenvectors of the covariance matrix without computing a full eigendecomposition, making them particularly useful for high-dimensional data where exact methods like singular value decomposition may be computationally prohibitive. These methods rely on repeated matrix-vector multiplications to iteratively refine estimates of the principal components, leveraging the fact that the leading eigenvector corresponds to the direction of maximum variance. The power method, a foundational iterative technique, is widely used to extract the first principal component and can be extended to subsequent ones through deflation. The power method begins with an initial random unit vector $ \mathbf{w}_0 $ and iteratively updates it via the relation
wk+1=ΣwkΣwk, \mathbf{w}_{k+1} = \frac{\Sigma \mathbf{w}_k}{\|\Sigma \mathbf{w}_k\|},
where $ \Sigma $ is the covariance matrix of the centered data. This process amplifies the component of $ \mathbf{w}_k $ aligned with the dominant eigenvector, causing convergence to that eigenvector under the assumption that the largest eigenvalue $ \lambda_1 $ strictly exceeds the second-largest eigenvalue $ \lambda_2 $. The method traces its application to principal components back to early formulations by Hotelling, who described iterative procedures for solving the associated eigenvalue problem. Modern expositions emphasize its simplicity and low per-iteration cost, typically involving only a single matrix-vector product followed by normalization. To compute subsequent principal components, deflation is applied after identifying the first one. This involves subtracting the projection of the data onto the found eigenvector from the original data (or equivalently, modifying the covariance matrix by removing the contribution of that component), thereby isolating the subspace orthogonal to it and allowing the power method to converge to the next dominant direction. For the $ j $-th component, the deflated covariance is updated as $ \Sigma^{(j)} = \Sigma^{(j-1)} - \lambda_j \mathbf{w}_j \mathbf{w}_j^T $, with $ \Sigma^{(0)} = \Sigma ,ensuring[orthogonality](/page/Orthogonality)amongtheextractedcomponents.Thissequential[deflation](/page/Deflation)enablesextractionofthetop, ensuring [orthogonality](/page/Orthogonality) among the extracted components. This sequential [deflation](/page/Deflation) enables extraction of the top- k $ components with $ k $ separate invocations of the power method, avoiding the need for full matrix diagonalization. The convergence rate of the power method is geometric, with the angle $ \theta_k $ between $ \mathbf{w}k $ and the true dominant eigenvector satisfying $ \sin \theta{k+1} \approx (\lambda_2 / \lambda_1) \sin \theta_k $, leading to an error reduction factor of $ |\lambda_2 / \lambda_1| $ per iteration. Thus, the number of iterations required to achieve a desired accuracy $ \epsilon $ is on the order of $ O(\log(1/\epsilon) / \log(\lambda_1 / \lambda_2)) $, making it efficient when the eigenvalue gap is large but slower otherwise. This approach is especially suitable for scenarios needing only the top few principal components, as full deflation for all components can accumulate numerical errors, though variants like orthogonal iteration mitigate this for multiple simultaneous vectors.

Online Estimation

Online estimation in principal component analysis (PCA) refers to algorithms that incrementally update principal components as new data observations arrive in a streaming fashion, avoiding the need to store or recompute over the entire dataset. This approach is particularly suited for scenarios where data arrives sequentially and storage or batch processing is impractical, such as in real-time systems. These methods typically rely on stochastic approximations that adjust weight vectors to maximize variance projections on-the-fly.[44] A foundational technique for extracting the leading principal component online is Oja's rule, which updates a weight vector $ \mathbf{w} $ using a single-pass Hebbian-inspired learning mechanism. The update is given by
wnew=wold+ηx(xTwold), \mathbf{w}_{\text{new}} = \mathbf{w}_{\text{old}} + \eta \, \mathbf{x} (\mathbf{x}^T \mathbf{w}_{\text{old}}),
followed by normalization $ \mathbf{w}{\text{new}} \leftarrow \mathbf{w}{\text{new}} / |\mathbf{w}_{\text{new}}| $, where $ \eta > 0 $ is a small learning rate and $ \mathbf{x} $ is the incoming data vector. This rule converges in expectation to the dominant eigenvector of the covariance matrix under suitable conditions on $ \eta $.[45] Theoretical analyses confirm that Oja's rule achieves near-optimal error rates for streaming PCA, with convergence scaling as $ O(1/t) $ after $ t $ updates for the top component.[46] For extracting multiple principal components, extensions such as Oja's subspace algorithm generalize the single-component rule to a set of orthonormal weight vectors, approximating the dominant subspace through sequential deflation or joint updates. Alternatively, stochastic gradient descent variants directly optimize the trace of the projected variance, updating a subspace matrix to capture the top-$ k $ components incrementally. These methods maintain orthogonality and converge to the principal subspace with rates depending on the eigengap between eigenvalues. In real-time applications, online PCA via Oja's rule and its generalizations enables dimensionality reduction for streaming sensor data in monitoring systems and adaptive control in robotics, where components are updated per observation to track evolving patterns. For non-stationary data streams, a forgetting factor $ 0 < \lambda < 1 $ can be incorporated into covariance updates, exponentially downweighting past observations to emphasize recent trends and adapt to concept drift.[47][48][44] Post-2015 advancements in stochastic PCA have addressed big data challenges by improving convergence guarantees and scalability; for instance, variance-reduced stochastic gradient methods achieve faster rates than plain Oja's rule for high-dimensional streams, while online difference-of-convex algorithms handle nonconvex extensions efficiently.

NIPALS Method

The Non-linear Iterative Partial Least Squares (NIPALS) algorithm provides an iterative approach to computing principal components, originally developed as part of partial least squares methods but adaptable to pure principal component analysis (PCA) by omitting the response matrix.[49] In PCA applications, NIPALS sequentially extracts components from a centered data matrix $ \mathbf{X} $ by alternating between estimating score vectors (projections) and loading vectors (directions of maximum variance), making it suitable for scenarios where full eigendecomposition is computationally intensive.[50] NIPALS was introduced by Herman Wold in 1966 for estimating principal components and related models through iterative least squares, with early applications in chemometrics for handling ill-conditioned covariance matrices.[49] Wold's method, detailed in his chapter on multivariate analysis, emphasized its flexibility for sequential computation without requiring the full spectral decomposition upfront. For pure PCA, the algorithm proceeds as follows, assuming a column-centered matrix $ \mathbf{X} $ of dimensions $ n \times m $:
  1. Initialize the component index $ h = 1 $ and set $ \mathbf{X}_h = \mathbf{X} $. Select an initial score vector $ \mathbf{t}_h $ (e.g., a non-zero column of $ \mathbf{X}_h $).[50]
  2. Compute the loading vector:
ph=XhTththTth. \mathbf{p}_h = \frac{\mathbf{X}_h^T \mathbf{t}_h}{\mathbf{t}_h^T \mathbf{t}_h}.
Normalize it to unit length:
ph=phph. \mathbf{p}_h = \frac{\mathbf{p}_h}{\|\mathbf{p}_h\|}.
[51]
  1. Update the score vector:
th=Xhph. \mathbf{t}_h = \mathbf{X}_h \mathbf{p}_h.
(Note: The denominator $ \mathbf{p}_h^T \mathbf{p}_h = 1 $ after normalization.)[50]
  1. Repeat steps 2–3 until the change in $ \mathbf{t}_h $ is below a convergence threshold (typically converges in fewer than 200 iterations).[51]
  2. Deflate the residual matrix:
Xh+1=XhthphT, \mathbf{X}_{h+1} = \mathbf{X}_h - \mathbf{t}_h \mathbf{p}_h^T,
increment $ h $, and repeat for the next component until the desired number of components is obtained or residual variance is negligible.[50] In its partial least squares origin, NIPALS incorporates a response matrix $ \mathbf{Y} $ by initializing with a vector $ \mathbf{u} $ from $ \mathbf{Y} $, then iterating $ \mathbf{t} = \mathbf{X} \mathbf{w} $, $ \mathbf{c} = \mathbf{Y}^T \mathbf{t} / (\mathbf{t}^T \mathbf{t}) $, $ \mathbf{u} = \mathbf{Y} \mathbf{c} / (\mathbf{c}^T \mathbf{c}) $, and $ \mathbf{w} = \mathbf{X}^T \mathbf{u} / (\mathbf{u}^T \mathbf{u}) $ until convergence, before deriving loadings; the PCA variant simplifies this by focusing solely on $ \mathbf{X} $'s variance maximization without $ \mathbf{Y} $-dependent steps.[49] Key advantages of NIPALS for PCA include its ability to handle missing data by skipping those entries during regressions, low memory usage due to sequential component extraction without storing the full covariance matrix, and scalability for computing only the first few dominant components on large datasets.[51] Deflation after each component ensures orthogonality of subsequent scores and loadings, preserving the method's numerical stability for ill-conditioned data common in chemometrics.[50]

Properties and Limitations

Key Properties

Principal component analysis yields a set of principal components that are mutually uncorrelated, meaning the covariance between distinct components $ \text{PC}_i $ and $ \text{PC}_j $ is zero for $ i \neq j $. This orthogonality arises because the principal components are defined as linear combinations given by the eigenvectors of the data's covariance matrix, ensuring that off-diagonal elements in the component covariance matrix vanish.[31][24] The variances of these components are ordered in decreasing magnitude, such that $ \text{Var}(\text{PC}_1) \geq \text{Var}(\text{PC}_2) \geq \cdots \geq \text{Var}(\text{PC}_p) \geq 0 $, where the variances correspond to the eigenvalues of the covariance matrix arranged from largest to smallest. This ordering reflects the sequential maximization of variance in the component construction process.[31][24] After centering the data to remove the mean, PCA is invariant to translations and orthogonal rotations of the original variables, as the principal components depend only on the covariance structure. Furthermore, the total variance is preserved across all components, satisfying $ \sum_{i=1}^p \text{Var}(\text{PC}_i) = \operatorname{tr}(\Sigma) $, where $ \Sigma $ is the covariance matrix of the original variables.[31][24] PCA achieves optimality as the best linear approximation of the data in a lower-dimensional subspace under the L2 (least-squares) norm. Specifically, the first $ k $ principal components minimize the sum of squared reconstruction errors for projecting the data onto a $ k $-dimensional subspace, providing the maximum variance representation among all possible orthogonal linear transformations.[31][24]

Limitations

Principal component analysis (PCA) is highly sensitive to the scaling of variables, as it relies on the covariance matrix, which varies with the units of measurement. For datasets with features in mixed units—such as height in meters and weight in kilograms—the principal components can be disproportionately influenced by variables with larger scales, leading to misleading results unless data standardization is applied beforehand.[27] A fundamental assumption of PCA is that the data structure is linear, meaning it seeks orthogonal directions of maximum variance under linear transformations. This linearity constraint causes PCA to underperform on datasets lying on nonlinear manifolds, such as the Swiss roll dataset, where points form a coiled two-dimensional surface embedded in three dimensions; applying PCA results in a flattened projection that fails to preserve the underlying geodesic distances or intrinsic geometry.[52][53] PCA exhibits notable sensitivity to outliers, or leverage points, because these extreme observations inflate the variance and can dominate the computation of principal components, distorting the directions that represent the bulk of the data. In contaminated datasets, even a small number of outliers can shift the principal axes away from those capturing the main variability, necessitating preprocessing or robust alternatives for reliable analysis.[27][54] The principal components derived from PCA often lack direct interpretability, as they are linear combinations involving all original variables with non-zero loadings, which rarely align with domain-specific knowledge or intuitive groupings. This opacity is exacerbated in high-dimensional settings, where components do not imply causality or meaningful relationships, limiting PCA's utility in explanatory contexts despite its effectiveness for compression.[27][10] PCA has been critiqued in the machine learning literature for its exclusive reliance on second-order moments (variance and covariance), thereby ignoring higher-order statistics like kurtosis that capture non-Gaussian features and tail behaviors essential for complex data distributions. This limitation can lead to suboptimal representations in tasks involving heavy-tailed or multimodal data, where methods incorporating higher moments provide more nuanced insights.[55]

Information Theory Connections

Principal component analysis (PCA) can be viewed as a variance-based method for data compression, particularly effective when the underlying data distribution is multivariate Gaussian. Under this assumption, PCA finds the optimal linear projection onto a lower-dimensional subspace that minimizes the mean squared error (MSE) between the original data and its reconstruction from the projected components. This optimality arises because, for Gaussian data, the MSE is directly tied to the uncaptured variance, and PCA systematically retains the directions of maximum variance through successive orthogonal projections. In the framework of information theory, the principal components maximize the mutual information preserved between the original high-dimensional data $ \mathbf{X} $ and the reduced representation $ \mathbf{Y} $, subject to linear constraints. For Gaussian random variables, mutual information $ I(\mathbf{X}; \mathbf{Y}) $ simplifies to the entropy of $ \mathbf{Y} $ minus a constant, and since Gaussian entropy is monotonically increasing with variance, selecting components that maximize variance equivalently maximizes $ I(\mathbf{X}; \mathbf{Y}) $. The first principal component, defined by the eigenvector corresponding to the largest eigenvalue of the covariance matrix, achieves this by solving $ \mathbf{w}^* = \arg\max_{|\mathbf{w}|=1} \mathbf{w}^T \Sigma \mathbf{w} $, where $ \Sigma $ is the data covariance.[56] The eigenvalues further connect PCA to rate-distortion theory, which quantifies the minimal bitrate required to achieve a target distortion level in lossy compression. For a multivariate Gaussian source, the rate-distortion function involves allocating distortion across components proportional to their eigenvalues; retaining only the largest $ k $ eigenvalues minimizes the total distortion $ D = \sum_{i=k+1}^p \lambda_i $ for a fixed dimensionality reduction to $ k $. PCA implements this strategy by discarding smaller eigenvalues, yielding a compression scheme whose performance approximates the theoretical rate-distortion curve, especially for Gaussian sources.[57] Although PCA excels under Gaussian assumptions, it is suboptimal for non-Gaussian distributions, where optimal encoding would account for higher-order statistics to maximize mutual information more effectively. In such cases, methods like independent component analysis may outperform PCA in preserving information, but PCA remains a robust heuristic due to its simplicity and reliance on easily estimable second moments.

Extensions

Nonlinear PCA

Nonlinear principal component analysis (NLPCA) extends the linear PCA framework to capture complex, nonlinear structures in data that cannot be adequately represented by linear transformations. Traditional PCA assumes linearity in the relationships between variables, which limits its effectiveness on datasets exhibiting curved manifolds or nonlinear dependencies. NLPCA addresses this by employing techniques that implicitly or explicitly model nonlinearity, enabling dimensionality reduction while preserving more of the data's intrinsic geometry. One prominent approach is kernel principal component analysis (KPCA), which leverages the kernel trick to perform PCA in a high-dimensional feature space without explicitly computing the feature map. In KPCA, data points $ \mathbf{x}_i $ are mapped to a nonlinear feature space via a mapping function $ \phi(\mathbf{x}_i) $, where linear PCA is then applied. The kernel function $ K(\mathbf{x}_i, \mathbf{x}_j) = \phi(\mathbf{x}_i)^\top \phi(\mathbf{x}_j) $ allows computation of the covariance matrix in this space as $ \boldsymbol{\Phi}^\top \boldsymbol{\Phi} \approx \mathbf{K} $, where $ \boldsymbol{\Phi} $ is the matrix of mapped points and $ \mathbf{K} $ is the kernel matrix. The eigenvectors of the kernel matrix yield the principal components, enabling extraction of nonlinear features. This method was introduced by Schölkopf, Smola, and Müller in their seminal work, demonstrating its utility in tasks like image denoising and novelty detection.[58] Common kernel functions for KPCA include the radial basis function (RBF) kernel, $ K(\mathbf{x}_i, \mathbf{x}_j) = \exp\left( -\frac{|\mathbf{x}_i - \mathbf{x}_j|^2}{2\sigma^2} \right) $, which is effective for capturing local nonlinearities, and the polynomial kernel, $ K(\mathbf{x}_i, \mathbf{x}_j) = (\mathbf{x}_i^\top \mathbf{x}_j + c)^d $, suitable for modeling polynomial relationships. These kernels allow KPCA to approximate arbitrary nonlinear mappings, with the choice depending on the data's structure—RBF for smooth manifolds and polynomial for algebraic dependencies. Empirical studies have shown KPCA outperforming linear PCA on nonlinear benchmarks, such as Swiss roll datasets, by unraveling embedded structures.[58] Another nonlinear extension draws an analogy to autoencoders, neural networks trained to reconstruct input data through a low-dimensional bottleneck, effectively performing a nonlinear form of PCA. Early formulations used autoassociative neural networks to extract nonlinear principal components, where the network's hidden layers learn a nonlinear encoding-decoding process. This approach, pioneered by Kramer, generalizes PCA by allowing flexible, data-driven nonlinearities via sigmoid or other activation functions. In the post-2010s era, deep autoencoders—stacked multilayer networks—emerged as a universal approximator for nonlinear PCA, particularly in high-dimensional settings like image and text data, where they capture hierarchical nonlinear features beyond kernel methods.[59] Despite these advances, NLPCA methods face challenges in hyperparameter tuning and interpretability. For KPCA, selecting the kernel type and parameters (e.g., bandwidth $ \sigma $ in RBF) requires cross-validation or optimization techniques, as poor choices can lead to overfitting or underfitting, increasing computational demands for large datasets. Autoencoders similarly demand tuning of architecture depth, layer sizes, and learning rates, often via grid search or Bayesian optimization. Moreover, both approaches sacrifice the interpretability of linear PCA loadings, as nonlinear components in feature or latent spaces are harder to relate back to original variables, complicating domain-specific insights. These limitations highlight the need for careful validation in practical applications.[60]

Sparse PCA

Sparse principal component analysis (Sparse PCA) extends traditional PCA by incorporating sparsity constraints on the principal component loadings, which promotes solutions where many loadings are exactly zero. This modification addresses the interpretability challenges of standard PCA in high-dimensional settings, where loadings often involve contributions from all variables, making it difficult to discern key features. By enforcing sparsity, Sparse PCA identifies a subset of relevant variables that capture the principal directions of variance, thereby facilitating feature selection and clearer insights into data structure. The core objective of Sparse PCA is to solve an optimization problem that balances variance maximization with a sparsity-inducing penalty. Specifically, for a loading vector $ \mathbf{w} $, the formulation seeks to maximize the explained variance minus an L1 penalty:
maxwwTΣwλw1subject tow2=1, \max_{\mathbf{w}} \mathbf{w}^T \boldsymbol{\Sigma} \mathbf{w} - \lambda \|\mathbf{w}\|_1 \quad \text{subject to} \quad \|\mathbf{w}\|_2 = 1,
where $ \boldsymbol{\Sigma} $ is the covariance matrix and $ \lambda \geq 0 $ controls the sparsity level. This non-convex problem lacks a closed-form solution and is typically addressed through specialized algorithms. Several algorithms have been developed to solve Sparse PCA. One prominent approach uses alternating maximization, reformulating the problem as a regression task with elastic net penalties to iteratively update sparse loadings while maintaining orthogonality constraints. Another method employs semidefinite programming (SDP), which relaxes the rank-one constraint into a convex semidefinite program that can be solved efficiently for moderate dimensions, yielding sparse approximations to the principal components. These methods differ in computational efficiency and the degree of sparsity achieved, with SDP often providing guarantees on approximation quality. The primary benefits of Sparse PCA lie in its ability to perform implicit feature selection, as the sparse loadings highlight only the most influential variables, reducing model complexity in high-dimensional data. This enhances interpretability, particularly in domains like genomics or finance, where identifying key drivers is crucial, and avoids the overfitting risks of dense PCA solutions. Empirical studies show that Sparse PCA can recover sparser components with comparable variance explanation to standard PCA, especially when the true underlying structure is sparse. In the 2020s, Sparse PCA concepts have integrated with dictionary learning techniques in machine learning, particularly through sparse autoencoders (SAEs) for interpreting neural networks. These extensions apply sparse coding principles to decompose activations in large language models, yielding interpretable, monosemantic features that align with human-understandable concepts, thus bridging classical dimensionality reduction with modern AI interpretability.[61]

Robust PCA

Standard principal component analysis is highly sensitive to outliers, which can distort the estimated principal components and lead to unreliable low-dimensional representations of the data.[62] Robust PCA addresses this vulnerability by developing variants that mitigate the influence of anomalous observations while preserving the core goal of capturing data variance through low-rank approximations. These methods typically either modify the covariance estimation step or decompose the data matrix into a low-rank component representing the underlying structure and a sparse component capturing outliers.[63] One prominent approach is principal component pursuit, which decomposes an observed data matrix XRm×nX \in \mathbb{R}^{m \times n} as X=L+SX = L + S, where LL is a low-rank matrix approximating the principal components and SS is a sparse matrix encoding outliers or corruptions.[63] This formulation assumes that the low-rank component aligns with the subspace spanned by the principal components of the clean data, while outliers are confined to a small fraction of entries in SS. To recover LL and SS, the method solves the convex optimization problem:
minL,SL+λS1subject toX=L+S, \min_{L, S} \|L\|_* + \lambda \|S\|_1 \quad \text{subject to} \quad X = L + S,
where \| \cdot \|_* denotes the nuclear norm (sum of singular values) to promote low rank, 1\| \cdot \|_1 is the 1\ell_1-norm to enforce sparsity, and λ>0\lambda > 0 balances the two terms. Under conditions such as incoherent low-rank structure and sufficiently sparse outliers, this optimization exactly recovers the true decomposition with high probability.[64] Algorithms for solving this problem often rely on alternating minimization or proximal gradient methods, enabling efficient computation for large-scale matrices.[63] Another key strategy in robust PCA involves robust estimation of the covariance matrix, particularly using the minimum covariance determinant (MCD) estimator, which selects a subset of observations that minimizes the determinant of their sample covariance to downweight outliers.[65] Introduced as a high-breakdown-point estimator, MCD achieves robustness by focusing on the "clean" core of the data, with a breakdown point up to 50% for detecting multivariate outliers. In the context of PCA, methods like ROBPCA first apply MCD to robustly center and scale the data, then perform PCA on a projected subspace to further isolate outliers, yielding loadings and scores that are less affected by contamination.[62] This projection-pursuit framework combines MCD's affine-equivariant robustness with classical PCA, providing a computationally feasible alternative for moderate-dimensional data.[62] Robust PCA finds practical applications in domains where outliers are prevalent, such as video surveillance for background-foreground separation, where the low-rank component models static scenes and the sparse component detects moving objects or anomalies.[63] Similarly, in anomaly detection tasks across sensor networks or financial time series, the sparse residual SS highlights deviations from normal low-rank patterns, enabling real-time identification of irregularities without assuming specific outlier distributions.[63] These techniques have demonstrated superior performance in recovering clean signals from corrupted observations compared to standard PCA, particularly in high-dimensional settings with gross errors.[64]

Applications

Statistics and Data Analysis

In statistics and data analysis, principal component analysis (PCA) serves as a key exploratory tool for visualizing data structures and identifying underlying patterns. Biplots, which simultaneously display observations and variables on the same plot, enable the visualization of clusters among data points by approximating inter-unit distances and highlighting relationships between variables.[66] Additionally, PCA aids in detecting multicollinearity by examining the loadings of variables on principal components; high correlations manifest as variables clustering along the same component axes, indicating redundancy in the dataset. As a preprocessing step, PCA is widely employed to prepare data for techniques such as regression and clustering by reducing dimensionality while mitigating noise. In regression models, it transforms correlated predictors into uncorrelated components, stabilizing estimates and improving model performance by focusing on variance-explaining directions. For clustering algorithms, PCA filters out low-variance noise components, enhancing the separation of natural groups and computational efficiency without substantial loss of information. This noise reduction aligns with PCA's broader role in dimensionality reduction, where it projects data onto a lower-dimensional space that captures essential variability. Hypothesis testing in PCA often involves assessing the significance of individual components to determine the appropriate number to retain. Bartlett's test evaluates whether the smallest eigenvalues corresponding to the retained components are significantly larger than those of the discarded ones, under the null hypothesis of equal eigenvalues beyond a certain point. A significant result supports retaining those components as meaningful summaries of the data's structure. In survey data analysis, PCA is instrumental for condensing multiple attitude or opinion items into composite indexes, particularly in market research. For instance, responses to related questions on customer satisfaction can be combined into fewer principal components that represent overarching attitudes, simplifying interpretation and revealing latent factors influencing consumer behavior. This approach reduces the dimensionality of large-scale survey datasets while preserving the variance associated with key attitudinal dimensions.

Specific Domains

In finance, principal component analysis (PCA) is widely applied to portfolio optimization by reducing the dimensionality of asset return covariances, enabling efficient risk management and diversification strategies. For instance, PCA identifies dominant factors in high-dimensional covariance matrices, allowing investors to construct portfolios that minimize variance while preserving expected returns, as demonstrated in applications where principal components serve as latent factors for mean-variance optimization.[67] Similarly, PCA facilitates risk factor extraction by uncovering underlying systematic risks in asset returns, often yielding factors comparable to those in the Fama-French three-factor model, where principal components derived from stock portfolios explain significant portions of cross-sectional return variations.[68] In neuroscience, PCA plays a crucial role in dimensionality reduction of functional magnetic resonance imaging (fMRI) data to analyze brain connectivity patterns. By decomposing high-dimensional voxel time series into principal components, PCA isolates coherent spatial and temporal modes of brain activity, revealing modular connectivity structures that vary across individuals and tasks, such as during resting-state or cognitive experiments.[69] This approach enhances the interpretability of large-scale fMRI datasets, for example, by identifying low-dimensional subspaces that capture functional networks involved in sensory processing or attention, thereby reducing noise and computational demands in connectivity mapping.[70] In genetics, PCA is instrumental for visualizing population structure through principal component plots of genomic data, as exemplified in the 1000 Genomes Project, where it reveals continuous clouds with overlaps in human populations showing no discrete separation, though continental ancestry clusters emerge based on single nucleotide polymorphism (SNP) variations. These plots highlight genetic ancestry and admixture, with the first few principal components accounting for major axes of variation corresponding to geographic origins, aiding in the correction for population stratification in association studies.[71] For comparison, PCA applied to dog breeds shows very distinct and separated clusters indicating strong differentiation due to selective breeding, while wild wolves display an intermediate structure with visible but less sharp clusters compared to dogs and more defined than humans.[72] Beyond these fields, PCA enables image compression in computer vision via the eigenfaces method, where face images are projected onto a low-dimensional subspace spanned by principal components derived from a training set, achieving significant data reduction while retaining essential facial features for recognition tasks.[73] In chemometrics, PCA is applied to spectral analysis for multivariate calibration and quality control, such as in near-infrared spectroscopy, where it decomposes absorbance spectra into orthogonal components to identify chemical compositions and eliminate interferents, improving accuracy in pharmaceutical and food analysis.[74] For example, in wine quality analysis, PCA is used on standardized physicochemical features (e.g., 11 variables including fixed acidity, residual sugar, density, and sulphates) to reduce dimensionality and address multicollinearity, such as correlations between density and residual sugar; loadings are interpreted for dimensions like sweetness-density and acidity-protectant, with score plots enabling batch comparisons or anomaly detection and components integrated into regression models for stable quality prediction.[75] In recent advancements within artificial intelligence, particularly in the 2020s, PCA has been integrated into the analysis of latent spaces in generative adversarial networks (GANs) to discover interpretable controls for image synthesis. By applying PCA to the latent codes or intermediate feature maps of GANs like StyleGAN, researchers identify principal directions that correspond to semantic edits, such as altering facial attributes or object poses, thereby enhancing the controllability and understanding of generated outputs.[76]

Factor Analysis

Factor analysis (FA) models the observed data as arising from a smaller number of unobserved latent factors that capture the shared variance among variables, plus unique errors specific to each variable. The classical FA model is expressed as
X=ΛF+ε, \mathbf{X} = \boldsymbol{\Lambda} \mathbf{F} + \boldsymbol{\varepsilon},
where X\mathbf{X} is the p×1p \times 1 vector of observed variables (centered at zero for simplicity), Λ\boldsymbol{\Lambda} is the p×kp \times k matrix of factor loadings (with k<pk < p), F\mathbf{F} is the k×1k \times 1 vector of common factors with E(F)=0\mathbb{E}(\mathbf{F}) = \mathbf{0} and Cov(F)=Ik\mathrm{Cov}(\mathbf{F}) = \mathbf{I}_k, and ε\boldsymbol{\varepsilon} is the p×1p \times 1 vector of unique errors with E(ε)=0\mathbb{E}(\boldsymbol{\varepsilon}) = \mathbf{0}, Cov(ε)=Ψ\mathrm{Cov}(\boldsymbol{\varepsilon}) = \boldsymbol{\Psi} (a diagonal matrix), and F\mathbf{F} independent of ε\boldsymbol{\varepsilon}. This formulation implies that the covariance matrix of X\mathbf{X} is Σ=ΛΛ+Ψ\boldsymbol{\Sigma} = \boldsymbol{\Lambda} \boldsymbol{\Lambda}^\top + \boldsymbol{\Psi}, where the common factors F\mathbf{F} explain correlations across variables, and the diagonal Ψ\boldsymbol{\Psi} accounts for residual variance not shared among them.[77] A distinctive aspect of FA is its rotation ambiguity: the factor model is invariant under orthogonal or oblique transformations of the factors, as ΛF=(ΛT)(T1F)\boldsymbol{\Lambda} \mathbf{F} = (\boldsymbol{\Lambda} \mathbf{T}) (\mathbf{T}^{-1} \mathbf{F}) for any invertible T\mathbf{T}, allowing rotations (e.g., varimax) to simplify the loading matrix for better interpretability while preserving Σ\boldsymbol{\Sigma}. This contrasts with principal component analysis (PCA), which defines components through a fixed, variance-maximizing orthogonal transformation without such flexibility. PCA can be regarded as a special case of FA where the unique error covariance Ψ\boldsymbol{\Psi} is diagonal but structured such that all observed variance is attributed to the common components, effectively focusing on total rather than solely shared variance, and eliminating rotation since the components are uniquely ordered by explained variance. In this view, PCA approximates FA by setting specific variances in Ψ\boldsymbol{\Psi} to zero or equal values, though this assumption often leads to boundary solutions (Heywood cases) in practice, making PCA more of a variance-focused approximation than a strict subset. Unlike FA's emphasis on latent structure, PCA treats the components as purely empirical summaries derived from the eigenvectors of the covariance matrix.[78] FA is typically used when researchers seek to uncover causal latent factors driving observed variables, such as in psychometrics to model underlying traits from test items, whereas PCA is suited for data summarization and dimensionality reduction without implying causality, prioritizing maximal variance capture for tasks like noise reduction or visualization. For instance, in questionnaire data, FA might identify latent constructs like "satisfaction," while PCA would compress responses into orthogonal dimensions without theoretical interpretation.[79][78] Estimation in FA generally relies on maximum likelihood under multivariate normality assumptions to jointly optimize the loadings Λ\boldsymbol{\Lambda} and diagonal Ψ\boldsymbol{\Psi} by minimizing the discrepancy between the sample covariance and model-implied Σ\boldsymbol{\Sigma}, often using iterative algorithms like expectation-maximization. In contrast, PCA estimation involves direct eigenvalue decomposition of the sample covariance matrix to obtain the principal components as eigenvectors scaled by square-root eigenvalues, requiring no distributional assumptions beyond second moments. These differing approaches reflect FA's model-based nature versus PCA's descriptive focus on variance.

Independent Component Analysis

Independent component analysis (ICA) is a computational technique for separating a multivariate signal into subcomponents that are statistically independent, extending the dimensionality reduction principles of principal component analysis (PCA) by addressing higher-order dependencies beyond mere uncorrelatedness. While PCA identifies orthogonal components that maximize variance and achieve uncorrelatedness, ICA seeks components that are fully independent, which requires assuming that the underlying sources are non-Gaussian in distribution.[80][81] ICA operates under the model where observed data are linear mixtures of independent source signals, and it aims to recover these sources up to permutation and scaling by maximizing measures of non-Gaussianity, such as negentropy, or minimizing mutual information between components. Negentropy, defined as the difference between the entropy of a distribution and that of a Gaussian with the same variance, quantifies deviation from Gaussianity and serves as a proxy for independence since Gaussian variables that are uncorrelated are necessarily independent. Alternatively, approaches based on mutual information minimization directly optimize for statistical independence by reducing shared information among estimated components.[55][82][83] A key step in many ICA algorithms is preprocessing the data through whitening, often performed using PCA, which centers the data and transforms it to have unit variance and zero correlation, simplifying the subsequent independence search. This whitening step decorrelates the variables—aligning with PCA's output—while normalizing scales, thereby reducing computational complexity and aiding convergence without altering the independence structure of the sources. Unlike PCA, which stops at variance maximization for dimensionality reduction, ICA applies this preprocessing to enable blind source separation in scenarios where sources exhibit non-Gaussian characteristics, such as separating mixed audio signals from multiple instruments recorded by microphones.[84][85][86] Prominent algorithms for ICA include FastICA, a fixed-point iteration method that efficiently maximizes negentropy using a nonlinearity to approximate non-Gaussianity, and Infomax, a neural network-based approach that maximizes mutual information through gradient ascent on the network's output entropy. FastICA is noted for its speed and robustness in high-dimensional data, converging in fewer iterations than gradient-based methods, while Infomax excels in handling both sub- and supergaussian sources by extending the information maximization principle. These algorithms highlight ICA's utility in signal processing tasks where PCA's uncorrelated components fall short of capturing true source independence.[87][88][82][89]

Correspondence Analysis

Correspondence analysis (CA) is a statistical technique that extends principal component analysis (PCA) to categorical data, particularly for analyzing contingency tables derived from frequency counts.[90] Developed primarily by Jean-Paul Benzécri in the 1960s and 1970s, CA transforms a two-way contingency table into a low-dimensional graphical representation that reveals associations between row and column categories.[90] Unlike PCA, which operates on continuous variables using Euclidean distances, CA employs chi-squared distances to account for the discrete nature of categorical frequencies, enabling the visualization of dependencies in a manner analogous to principal coordinates analysis.[90] The core method of CA involves performing a singular value decomposition (SVD) on the matrix of standardized residuals from a contingency table. Given a contingency table XX with row sums rr and column sums cc, the data is first converted to a probability matrix Z=X/nZ = X / n, where nn is the grand total. The standardized residuals are then computed as S=Dr1/2(Zrc)Dc1/2S = D_r^{-1/2} (Z - r c^\top) D_c^{-1/2}, where DrD_r and DcD_c are diagonal matrices of row and column masses, respectively. The SVD of SS yields S=ΦΔΨS = \Phi \Delta \Psi^\top, with singular values δk\delta_k and vectors ϕk\phi_k, ψk\psi_k. Principal coordinates for rows and columns are obtained as F=Dr1/2ΦΔF = D_r^{-1/2} \Phi \Delta and G=Dc1/2ΨΔG = D_c^{-1/2} \Psi \Delta, positioning categories in a shared Euclidean space where proximity reflects association strength.[90] This decomposition partitions the total inertia (a measure akin to variance, based on the chi-squared statistic of independence) into orthogonal components, with the first few dimensions capturing the dominant patterns.[91] CA can be interpreted as applying PCA to the transformed contingency table via these standardized residuals, where the chi-squared metric replaces the Euclidean one to preserve relative frequencies.[90] Michael Greenacre's geometric framework further elucidates this relation, showing how CA embeds row and column profiles into a space that minimizes distortion of chi-squared distances, effectively performing a weighted PCA on indicator variables.[91] In practice, CA is widely used for visualizing associations in survey data, such as exploring relationships between demographic categories and response options in contingency tables from questionnaires. For instance, it can map countries of residence against spoken languages to identify clusters of linguistic homogeneity.[92] An extension, multiple correspondence analysis (MCA), applies CA to datasets with more than two categorical variables by constructing a larger indicator matrix and adjusting for the number of variables, facilitating the analysis of multivariate survey responses like frailty indicators in elderly populations.[92] In such applications, MCA reveals dimensions of association, such as clustering of mobility, strength, and energy deficits.[92] While PCA suits continuous measurements by maximizing variance in original scales, CA and its variants focus on proportional deviations in frequencies, making them ideal for compositional or count-based data where absolute values are less informative than relative patterns.[90]

References

User Avatar
No comments yet.