In statistics, the **Pearson correlation coefficient** (**PCC**)^{[a]} is a correlation coefficient that measures linear correlation between two sets of data. It is the ratio between the covariance of two variables and the product of their standard deviations; thus, it is essentially a normalized measurement of the covariance, such that the result always has a value between −1 and 1. As with covariance itself, the measure can only reflect a linear correlation of variables, and ignores many other types of relationships or correlations. As a simple example, one would expect the age and height of a sample of children from a primary school to have a Pearson correlation coefficient significantly greater than 0, but less than 1 (as 1 would represent an unrealistically perfect correlation).

It was developed by Karl Pearson from a related idea introduced by Francis Galton in the 1880s, and for which the mathematical formula was derived and published by Auguste Bravais in 1844.^{[b]}^{[6]}^{[7]}^{[8]}^{[9]} The naming of the coefficient is thus an example of Stigler's Law.

Pearson's correlation coefficient is the covariance of the two variables divided by the product of their standard deviations. The form of the definition involves a "product moment", that is, the mean (the first moment about the origin) of the product of the mean-adjusted random variables; hence the modifier *product-moment* in the name.^{[verification needed]}

Pearson's correlation coefficient, when applied to a population, is commonly represented by the Greek letter *ρ* (rho) and may be referred to as the *population correlation coefficient* or the *population Pearson correlation coefficient*. Given a pair of random variables (for example, Height and Weight), the formula for *ρ*^{[10]} is^{[11]}

where

- is the covariance
- is the standard deviation of
- is the standard deviation of .

The formula for can be expressed in terms of mean and expectation. Since^{[10]}

the formula for can also be written as

where

- and are defined as above
- is the mean of
- is the mean of
- is the expectation.

The formula for can be expressed in terms of uncentered moments. Since

the formula for can also be written as

Pearson's correlation coefficient, when applied to a sample, is commonly represented by and may be referred to as the *sample correlation coefficient* or the *sample Pearson correlation coefficient*. We can obtain a formula for by substituting estimates of the covariances and variances based on a sample into the formula above. Given paired data consisting of pairs, is defined as

where

- is sample size
- are the individual sample points indexed with
*i* - (the sample mean); and analogously for .

Rearranging gives us this^{[10]} formula for :

where are defined as above.

Rearranging again gives us this formula for :

where are defined as above.

This formula suggests a convenient single-pass algorithm for calculating sample correlations, though depending on the numbers involved, it can sometimes be numerically unstable.

An equivalent expression gives the formula for as the mean of the products of the standard scores as follows:

where

- are defined as above, and are defined below
- is the standard score (and analogously for the standard score of ).

Alternative formulae for are also available. For example, one can use the following formula for :

where

- are defined as above and:
- (the sample standard deviation); and analogously for .

If is jointly gaussian, with mean zero and variance , then .

Under heavy noise conditions, extracting the correlation coefficient between two sets of stochastic variables is nontrivial, in particular where Canonical Correlation Analysis reports degraded correlation values due to the heavy noise contributions. A generalization of the approach is given elsewhere.^{[12]}

In case of missing data, Garren derived the maximum likelihood estimator.^{[13]}

Some distributions (e.g., stable distributions other than a normal distribution) do not have a defined variance.

The values of both the sample and population Pearson correlation coefficients are on or between −1 and 1. Correlations equal to +1 or −1 correspond to data points lying exactly on a line (in the case of the sample correlation), or to a bivariate distribution entirely supported on a line (in the case of the population correlation). The Pearson correlation coefficient is symmetric: corr(*X*,*Y*) = corr(*Y*,*X*).

A key mathematical property of the Pearson correlation coefficient is that it is invariant under separate changes in location and scale in the two variables. That is, we may transform *X* to *a* + *bX* and transform *Y* to *c* + *dY*, where *a*, *b*, *c*, and *d* are constants with *b*, *d* > 0, without changing the correlation coefficient. (This holds for both the population and sample Pearson correlation coefficients.) More general linear transformations do change the correlation: see *§ Decorrelation of n random variables* for an application of this.

The correlation coefficient ranges from −1 to 1. An absolute value of exactly 1 implies that a linear equation describes the relationship between *X* and *Y* perfectly, with all data points lying on a line. The correlation sign is determined by the regression slope: a value of +1 implies that all data points lie on a line for which *Y* increases as *X* increases, whereas a value of -1 implies a line where *Y* increases while *X* decreases.^{[14]} A value of 0 implies that there is no linear dependency between the variables.^{[15]}

More generally, (*X*_{i} − *X*)(*Y*_{i} − *Y*) is positive if and only if *X*_{i} and *Y*_{i} lie on the same side of their respective means. Thus the correlation coefficient is positive if *X*_{i} and *Y*_{i} tend to be simultaneously greater than, or simultaneously less than, their respective means. The correlation coefficient is negative (anti-correlation) if *X*_{i} and *Y*_{i} tend to lie on opposite sides of their respective means. Moreover, the stronger either tendency is, the larger is the absolute value of the correlation coefficient.

Rodgers and Nicewander^{[16]} cataloged thirteen ways of interpreting correlation or simple functions of it:

- Function of raw scores and means
- Standardized covariance
- Standardized slope of the regression line
- Geometric mean of the two regression slopes
- Square root of the ratio of two variances
- Mean cross-product of standardized variables
- Function of the angle between two standardized regression lines
- Function of the angle between two variable vectors
- Rescaled variance of the difference between standardized scores
- Estimated from the balloon rule
- Related to the bivariate ellipses of isoconcentration
- Function of test statistics from designed experiments
- Ratio of two means

For uncentered data, there is a relation between the correlation coefficient and the angle *φ* between the two regression lines, *y* = *g*_{X}(*x*) and *x* = *g*_{Y}(*y*), obtained by regressing *y* on *x* and *x* on *y* respectively. (Here, *φ* is measured counterclockwise within the first quadrant formed around the lines' intersection point if *r* > 0, or counterclockwise from the fourth to the second quadrant if *r* < 0.) One can show^{[17]} that if the standard deviations are equal, then *r* = sec *φ* − tan *φ*, where sec and tan are trigonometric functions.

For centered data (i.e., data which have been shifted by the sample means of their respective variables so as to have an average of zero for each variable), the correlation coefficient can also be viewed as the cosine of the angle *θ* between the two observed vectors in *N*-dimensional space (for *N* observations of each variable).^{[18]}

Both the uncentered (non-Pearson-compliant) and centered correlation coefficients can be determined for a dataset. As an example, suppose five countries are found to have gross national products of 1, 2, 3, 5, and 8 billion dollars, respectively. Suppose these same five countries (in the same order) are found to have 11%, 12%, 13%, 15%, and 18% poverty. Then let **x** and **y** be ordered 5-element vectors containing the above data: **x** = (1, 2, 3, 5, 8) and **y** = (0.11, 0.12, 0.13, 0.15, 0.18).

By the usual procedure for finding the angle *θ* between two vectors (see dot product), the *uncentered* correlation coefficient is

This uncentered correlation coefficient is identical with the cosine similarity. The above data were deliberately chosen to be perfectly correlated: *y* = 0.10 + 0.01 *x*. The Pearson correlation coefficient must therefore be exactly one. Centering the data (shifting **x** by ℰ(**x**) = 3.8 and **y** by ℰ(**y**) = 0.138) yields **x** = (−2.8, −1.8, −0.8, 1.2, 4.2) and **y** = (−0.028, −0.018, −0.008, 0.012, 0.042), from which

as expected.

Several authors have offered guidelines for the interpretation of a correlation coefficient.^{[19]}^{[20]} However, all such criteria are in some ways arbitrary.^{[20]} The interpretation of a correlation coefficient depends on the context and purposes. A correlation of 0.8 may be very low if one is verifying a physical law using high-quality instruments, but may be regarded as very high in the social sciences, where there may be a greater contribution from complicating factors.

Statistical inference based on Pearson's correlation coefficient often focuses on one of the following two aims:

- One aim is to test the null hypothesis that the true correlation coefficient
*ρ*is equal to 0, based on the value of the sample correlation coefficient*r*. - The other aim is to derive a confidence interval that, on repeated sampling, has a given probability of containing
*ρ*.

Methods of achieving one or both of these aims are discussed below.

Permutation tests provide a direct approach to performing hypothesis tests and constructing confidence intervals. A permutation test for Pearson's correlation coefficient involves the following two steps:

- Using the original paired data (
*x*_{i},*y*_{i}), randomly redefine the pairs to create a new data set (*x*_{i},*y*_{i′}), where the*i′*are a permutation of the set {1,...,*n*}. The permutation*i′*is selected randomly, with equal probabilities placed on all*n*! possible permutations. This is equivalent to drawing the*i′*randomly without replacement from the set {1, ...,*n*}. In bootstrapping, a closely related approach, the*i*and the*i′*are equal and drawn with replacement from {1, ...,*n*}; - Construct a correlation coefficient
*r*from the randomized data.

To perform the permutation test, repeat steps (1) and (2) a large number of times. The p-value for the permutation test is the proportion of the *r* values generated in step (2) that are larger than the Pearson correlation coefficient that was calculated from the original data. Here "larger" can mean either that the value is larger in magnitude, or larger in signed value, depending on whether a two-sided or one-sided test is desired.

The bootstrap can be used to construct confidence intervals for Pearson's correlation coefficient. In the "non-parametric" bootstrap, *n* pairs (*x*_{i}, *y*_{i}) are resampled "with replacement" from the observed set of *n* pairs, and the correlation coefficient *r* is calculated based on the resampled data. This process is repeated a large number of times, and the empirical distribution of the resampled *r* values are used to approximate the sampling distribution of the statistic. A 95% confidence interval for *ρ* can be defined as the interval spanning from the 2.5th to the 97.5th percentile of the resampled *r* values.

If and are random variables, with a simple linear relationship between them with an additive normal noise (i.e., y= a + bx + e), then a standard error associated to the correlation is

where is the correlation and the sample size.^{[21]}^{[22]}

For pairs from an uncorrelated bivariate normal distribution, the sampling distribution of the studentized Pearson's correlation coefficient follows Student's *t*-distribution with degrees of freedom *n* − 2. Specifically, if the underlying variables have a bivariate normal distribution, the variable

has a student's *t*-distribution in the null case (zero correlation).^{[23]} This holds approximately in case of non-normal observed values if sample sizes are large enough.^{[24]} For determining the critical values for *r* the inverse function is needed:

Alternatively, large sample, asymptotic approaches can be used.

Another early paper^{[25]} provides graphs and tables for general values of *ρ*, for small sample sizes, and discusses computational approaches.

In the case where the underlying variables are not normal, the sampling distribution of Pearson's correlation coefficient follows a Student's *t*-distribution, but the degrees of freedom are reduced.^{[26]}

For data that follow a bivariate normal distribution, the exact density function *f*(*r*) for the sample correlation coefficient *r* of a normal bivariate is^{[27]}^{[28]}^{[29]}

where is the gamma function and is the Gaussian hypergeometric function.

In the special case when (zero population correlation), the exact density function *f*(*r*) can be written as

where is the beta function, which is one way of writing the density of a Student's t-distribution for a studentized sample correlation coefficient, as above.

Confidence intervals and tests can be calculated from a confidence distribution. An exact confidence density for *ρ* is^{[30]}

where is the Gaussian hypergeometric function and .

Main article: Fisher transformation |

In practice, confidence intervals and hypothesis tests relating to *ρ* are usually carried out using the, Variance-stabilizing transformation , Fisher transformation, *:*

*F*(*r*) approximately follows a normal distribution with

- and standard error

where *n* is the sample size. The approximation error is lowest for a large sample size and small and and increases otherwise.

Using the approximation, a z-score is

under the null hypothesis that , given the assumption that the sample pairs are independent and identically distributed and follow a bivariate normal distribution. Thus an approximate p-value can be obtained from a normal probability table. For example, if *z* = 2.2 is observed and a two-sided p-value is desired to test the null hypothesis that , the p-value is 2 Φ(−2.2) = 0.028, where Φ is the standard normal cumulative distribution function.

To obtain a confidence interval for ρ, we first compute a confidence interval for *F*(*):
*

The inverse Fisher transformation brings the interval back to the correlation scale.

For example, suppose we observe *r* = 0.7 with a sample size of *n*=50, and we wish to obtain a 95% confidence interval for *ρ*. The transformed value is , so the confidence interval on the transformed scale is , or (0.5814, 1.1532). Converting back to the correlation scale yields (0.5237, 0.8188).

For more general, non-linear dependency, see Coefficient of determination § In a multiple linear model. |

The square of the sample correlation coefficient is typically denoted *r*^{2} and is a special case of the coefficient of determination. In this case, it estimates the fraction of the variance in *Y* that is explained by *X* in a simple linear regression. So if we have the observed dataset and the fitted dataset then as a starting point the total variation in the *Y*_{i} around their average value can be decomposed as follows

where the are the fitted values from the regression analysis. This can be rearranged to give

The two summands above are the fraction of variance in *Y* that is explained by *X* (right) and that is unexplained by *X* (left).

Next, we apply a property of least squares regression models, that the sample covariance between and is zero. Thus, the sample correlation coefficient between the observed and fitted response values in the regression can be written (calculation is under expectation, assumes Gaussian statistics)

Thus

where is the proportion of variance in *Y* explained by a linear function of *X*.

In the derivation above, the fact that

can be proved by noticing that the partial derivatives of the residual sum of squares (RSS) over *β*_{0} and *β*_{1} are equal to 0 in the least squares model, where

- .

In the end, the equation can be written as

where

- .

The symbol is called the regression sum of squares, also called the explained sum of squares, and is the total sum of squares (proportional to the variance of the data).

Further information: Correlation and dependence § Sensitivity to the data distribution |

The population Pearson correlation coefficient is defined in terms of moments, and therefore exists for any bivariate probability distribution for which the population covariance is defined and the marginal population variances are defined and are non-zero. Some probability distributions, such as the Cauchy distribution, have undefined variance and hence ρ is not defined if *X* or *Y* follows such a distribution. In some practical applications, such as those involving data suspected to follow a heavy-tailed distribution, this is an important consideration. However, the existence of the correlation coefficient is usually not a concern; for instance, if the range of the distribution is bounded, ρ is always defined.

- If the sample size is moderate or large and the population is normal, then, in the case of the bivariate normal distribution, the sample correlation coefficient is the maximum likelihood estimate of the population correlation coefficient, and is asymptotically unbiased and efficient, which roughly means that it is impossible to construct a more accurate estimate than the sample correlation coefficient.
- If the sample size is large and the population is not normal, then the sample correlation coefficient remains approximately unbiased, but may not be efficient.
- If the sample size is large, then the sample correlation coefficient is a consistent estimator of the population correlation coefficient as long as the sample means, variances, and covariance are consistent (which is guaranteed when the law of large numbers can be applied).
- If the sample size is small, then the sample correlation coefficient
*r*is not an unbiased estimate of*ρ*.^{[10]}The adjusted correlation coefficient must be used instead: see elsewhere in this article for the definition. - Correlations can be different for imbalanced dichotomous data when there is variance error in sample.
^{[31]}

Like many commonly used statistics, the sample statistic *r* is not robust,^{[32]} so its value can be misleading if outliers are present.^{[33]}^{[34]} Specifically, the PMCC is neither distributionally robust,^{[35]} nor outlier resistant^{[32]} (see *Robust statistics § Definition*). Inspection of the scatterplot between *X* and *Y* will typically reveal a situation where lack of robustness might be an issue, and in such cases it may be advisable to use a robust measure of association. Note however that while most robust estimators of association measure statistical dependence in some way, they are generally not interpretable on the same scale as the Pearson correlation coefficient.

Statistical inference for Pearson's correlation coefficient is sensitive to the data distribution. Exact tests, and asymptotic tests based on the Fisher transformation can be applied if the data are approximately normally distributed, but may be misleading otherwise. In some situations, the bootstrap can be applied to construct confidence intervals, and permutation tests can be applied to carry out hypothesis tests. These non-parametric approaches may give more meaningful results in some situations where bivariate normality does not hold. However the standard versions of these approaches rely on exchangeability of the data, meaning that there is no ordering or grouping of the data pairs being analyzed that might affect the behavior of the correlation estimate.

A stratified analysis is one way to either accommodate a lack of bivariate normality, or to isolate the correlation resulting from one factor while controlling for another. If *W* represents cluster membership or another factor that it is desirable to control, we can stratify the data based on the value of *W*, then calculate a correlation coefficient within each stratum. The stratum-level estimates can then be combined to estimate the overall correlation while controlling for *W*.^{[36]}

See also: Correlation and dependence § Other measures of dependence among random variables |

Variations of the correlation coefficient can be calculated for different purposes. Here are some examples.

The sample correlation coefficient r is not an unbiased estimate of ρ. For data that follows a bivariate normal distribution, the expectation E[*r*] for the sample correlation coefficient r of a normal bivariate is^{[37]}

- therefore r is a biased estimator of

The unique minimum variance unbiased estimator *r*_{adj} is given by^{[38]}

(1) |

where:

- are defined as above,
- is the Gaussian hypergeometric function.

An approximately unbiased estimator *r*_{adj} can be obtained^{[citation needed]} by truncating E[*r*] and solving this truncated equation:

(2) |

An approximate solution^{[citation needed]} to equation (**2**) is

(3) |

where in (**3**)

- are defined as above,
*r*_{adj}is a suboptimal estimator,^{[citation needed]}^{[clarification needed]}*r*_{adj}can also be obtained by maximizing log(*f*(*r*)),*r*_{adj}has minimum variance for large values of n,*r*_{adj}has a bias of order 1⁄(*n*− 1).

Another proposed^{[10]} adjusted correlation coefficient is^{[citation needed]}

*r*_{adj} ≈ *r* for large values of n.

Suppose observations to be correlated have differing degrees of importance that can be expressed with a weight vector *w*. To calculate the correlation between vectors *x* and *y* with the weight vector *w* (all of length *n*),^{[39]}^{[40]}

- Weighted mean:
- Weighted covariance
- Weighted correlation

The reflective correlation is a variant of Pearson's correlation in which the data are not centered around their mean values.^{[citation needed]} The population reflective correlation is

The reflective correlation is symmetric, but it is not invariant under translation:

The sample reflective correlation is equivalent to cosine similarity:

The weighted version of the sample reflective correlation is

Main article: Scaled correlation |

Scaled correlation is a variant of Pearson's correlation in which the range of the data is restricted intentionally and in a controlled manner to reveal correlations between fast components in time series.^{[41]} Scaled correlation is defined as average correlation across short segments of data.

Let be the number of segments that can fit into the total length of the signal for a given scale :

The scaled correlation across the entire signals is then computed as

where is Pearson's coefficient of correlation for segment .

By choosing the parameter , the range of values is reduced and the correlations on long time scale are filtered out, only the correlations on short time scales being revealed. Thus, the contributions of slow components are removed and those of fast components are retained.

A distance metric for two variables *X* and *Y* known as *Pearson's distance* can be defined from their correlation coefficient as^{[42]}

Considering that the Pearson correlation coefficient falls between [−1, +1], the Pearson distance lies in [0, 2]. The Pearson distance has been used in cluster analysis and data detection for communications and storage with unknown gain and offset.^{[43]}

The Pearson "distance" defined this way assigns distance greater than 1 to negative correlations. In reality, both strong positive correlation and negative correlations are meaningful, so care must be taken when Pearson "distance" is used for nearest neighbor algorithm as such algorithm will only include neighbors with positive correlation and exclude neighbors with negative correlation. Alternatively, an absolute valued distance, , can be applied, which will take both positive and negative correlations into consideration. The information on positive and negative association can be extracted separately, later.

Further information: Circular statistics |

For variables *X* = {*x*_{1},...,*x*_{n}} and *Y* = {*y*_{1},...,*y*_{n}} that are defined on the unit circle [0, 2π), it is possible to define a circular analog of Pearson's coefficient.^{[44]} This is done by transforming data points in *X* and *Y* with a sine function such that the correlation coefficient is given as:

where and are the circular means of *X* and *Y*. This measure can be useful in fields like meteorology where the angular direction of data is important.

Main article: Partial correlation |

If a population or data-set is characterized by more than two variables, a partial correlation coefficient measures the strength of dependence between a pair of variables that is not accounted for by the way in which they both change in response to variations in a selected subset of the other variables.

Main article: Decorrelation |

It is always possible to remove the correlations between all pairs of an arbitrary number of random variables by using a data transformation, even if the relationship between the variables is nonlinear. A presentation of this result for population distributions is given by Cox & Hinkley.^{[45]}

A corresponding result exists for reducing the sample correlations to zero. Suppose a vector of *n* random variables is observed *m* times. Let *X* be a matrix where is the *j*th variable of observation *i*. Let be an *m* by *m* square matrix with every element 1. Then *D* is the data transformed so every random variable has zero mean, and *T* is the data transformed so all variables have zero mean and zero correlation with all other variables – the sample correlation matrix of *T* will be the identity matrix. This has to be further divided by the standard deviation to get unit variance. The transformed variables will be uncorrelated, even though they may not be independent.

where an exponent of −+1⁄2 represents the matrix square root of the inverse of a matrix. The correlation matrix of *T* will be the identity matrix. If a new data observation *x* is a row vector of *n* elements, then the same transform can be applied to *x* to get the transformed vectors *d* and *t*:

This decorrelation is related to principal components analysis for multivariate data.

- R's statistics base-package implements the correlation coefficient with
`cor(x, y)`

, or (with the P value also) with`cor.test(x, y)`

. - The SciPy Python library via
`pearsonr(x, y)`

. - The Pandas Python library implements Pearson correlation coefficient calculation as the default option for the method
`pandas.DataFrame.corr`

- Wolfram Mathematica via the
`Correlation`

function, or (with the P value) with`CorrelationTest`

. - The Boost C++ library via the
`correlation_coefficient`

function. - Excel has an in-built
`correl(array1, array2)`

function for calculating the pearson's correlation coefficient.