In statistics, the Pearson correlation coefficient (PCC, pronounced /ˈpɪərsən/) ― also known as Pearson's r, the Pearson productmoment correlation coefficient (PPMCC), the bivariate correlation,^{[1]} or colloquially simply as the correlation coefficient^{[2]} ― is a measure of 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 teenagers from a high 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.^{[a]}^{[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 meanadjusted random variables; hence the modifier productmoment in the name.
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 , the formula for ρ^{[10]} is:^{[11]}
where:
The formula for can be expressed in terms of mean and expectation. Since^{[10]}
the formula for can also be written as
where:
The formula for can be expressed in terms of uncentered moments. Since
the formula for can also be written as
Peason's correlation coefficient does not exist when either or are zero, infinite or undefined.
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:
Rearranging gives us this formula for :
where are defined as above.
This formula suggests a convenient singlepass algorithm for calculating sample correlations, though depending on the numbers involved, it can sometimes be numerically unstable.
Rearranging again gives us this^{[10]} formula for :
where are defined as above.
An equivalent expression gives the formula for as the mean of the products of the standard scores as follows:
where:
Alternative formulae for are also available. For example, one can use the following formula for :
where:
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, and vice versa for −1.^{[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 (anticorrelation) 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:
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 Ndimensional space (for N observations of each variable)^{[18]}
Both the uncentered (nonPearsoncompliant) 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 5element 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 highquality 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:
We discuss methods of achieving one or both of these aims 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:
To perform the permutation test, repeat steps (1) and (2) a large number of times. The pvalue 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 twosided or onesided test is desired.
The bootstrap can be used to construct confidence intervals for Pearson's correlation coefficient. In the "nonparametric" 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, a standard error associated to the correlation in the null case is:
where is the correlation (assumed r≈0) 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 tdistribution with degrees of freedom n − 2. Specifically, if the underlying variables have a bivariate normal distribution, the variable
has a student's tdistribution in the null case (zero correlation).^{[23]} This holds approximately in case of nonnormal 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 tdistribution, 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 tdistribution, 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 Fisher transformation, :
F(r) approximately follows a normal distribution with
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 zscore 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 pvalue can be obtained from a normal probability table. For example, if z = 2.2 is observed and a twosided pvalue is desired to test the null hypothesis that , the pvalue 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 arctanh(r) = 0.8673, so the confidence interval on the transformed scale is 0.8673 ± 1.96/√47, or (0.5814, 1.1532). Converting back to the correlation scale yields (0.5237, 0.8188).
For more general, nonlinear dependency, see Coefficient of determination § In a nonsimple 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 square 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 nonzero. 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 heavytailed 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.
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,^{[citation needed]} 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 nonparametric 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 stratumlevel estimates can then be combined to estimate the overall correlation while controlling for W.^{[35]}
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^{[36]}
The unique minimum variance unbiased estimator r_{adj} is given by^{[37]}

(1) 
where:
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):
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),^{[38]}^{[39]}
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.^{[40]} 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^{[41]}
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.^{[42]}
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.^{[43]} 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 dataset 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.^{[44]}
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 jth 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.
cor(x, y)
, or (with the P value also) with cor.test(x, y)
.pearsonr(x, y)
.pandas.DataFrame.corr
Correlation
function, or (with the P value) with CorrelationTest
.correlation_coefficient
function.correl(array1, array2)
function for calculationg the pearson's correlation coefficient.