In statistics, the Pearson correlation coefficient (PCC) 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.[1] [2] [3] [4] 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.
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
(X,Y)
where
\operatorname{cov}
\sigmaX
X
\sigmaY
Y
The formula for
\operatorname{cov}(X,Y)
\operatorname{cov}(X,Y)=\operatornameE[(X-\muX)(Y-\muY)],
the formula for
\rho
where
\sigmaY
\sigmaX
\muX
X
\muY
Y
\operatornameE
The formula for
\rho
\begin{align} \muX={}&\operatornameE[X]\\ \muY={}&\operatornameE[Y]\\
2 | |
\sigma | |
X |
={}&\operatornameE\left[\left(X-\operatornameE[X]\right)2\right]=\operatornameE\left[X2\right]-\left(\operatornameE[X]\right)2\\
2 | |
\sigma | |
Y |
={}&\operatornameE\left[\left(Y-\operatornameE[Y]\right)2\right]=\operatornameE\left[Y2\right]-\left(\operatornameE[Y]\right)2\\ &\operatornameE[\left(X-\muX\right)\left(Y-\muY\right)]=\operatornameE[\left(X-\operatornameE[X]\right)\left(Y-\operatornameE[Y]\right)]=\operatornameE[XY]-\operatornameE[X]\operatornameE[Y], \end{align}
the formula for
\rho
Pearson's correlation coefficient, when applied to a sample, is commonly represented by
rxy
rxy
\left\{(x1,y1),\ldots,(xn,yn)\right\}
n
rxy
where
n
xi,yi
\bar{y}
Rearranging gives us this[5] formula for
rxy
rxy=
\sumixiyi-n\bar{x | |
\bar{y}} {\sqrt{\sum |
i
2-n\bar{x} | |
x | |
i |
2}~\sqrt{\sum | |
i |
2-n\bar{y} | |
y | |
i |
2}},
where
n,xi,yi,\bar{x},\bar{y}
Rearranging again gives us this formula for
rxy
rxy=
n\sumxiyi-\sumxi\sumyi | ||||||||||||||
|
~\sqrt{n\sum
2-\left(\sum | |
y | |
i |
2}}, | |
y | |
i\right) |
where
n,xi,yi
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
rxy
rxy=
1 | |
n-1 |
\sum
n | |
i=1 |
\left(
xi-\bar{x | |
where
n,xi,yi,\bar{x},\bar{y}
sx,sy
y
Alternative formulae for
rxy
rxy
rxy=
\sumxiyi-n\bar{x | |
\bar{y}}{(n-1) |
sxsy}
n,xi,yi,\bar{x},\bar{y}
sy
If
(X,Y)
\Sigma
\Sigma=
2 | |
\begin{bmatrix} \sigma | |
X |
&\rhoX,Y\sigmaX\sigmaY\\ \rhoX,Y\sigmaX\sigmaY&
2 | |
\sigma | |
Y |
\\ \end{bmatrix}
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.[7]
In case of missing data, Garren derived the maximum likelihood estimator.[8]
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 and transform Y to, where a, b, c, and d are constants with, 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 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.[9] A value of 0 implies that there is no linear dependency between the variables.[10]
More generally, is positive if and only if Xi and Yi lie on the same side of their respective means. Thus the correlation coefficient is positive if Xi and Yi tend to be simultaneously greater than, or simultaneously less than, their respective means. The correlation coefficient is negative (anti-correlation) if Xi and Yi 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[11] 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, and, 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, or counterclockwise from the fourth to the second quadrant if .) One can show[12] that if the standard deviations are equal, then, 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).[13]
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: and .
By the usual procedure for finding the angle θ between two vectors (see dot product), the uncentered correlation coefficient is
\cos\theta=
x ⋅ y | |
\left\|x\right\|\left\|y\right\| |
=
2.93 | |
\sqrt{103 |
\sqrt{0.0983}}=0.920814711.
This uncentered correlation coefficient is identical with the cosine similarity. The above data were deliberately chosen to be perfectly correlated: . The Pearson correlation coefficient must therefore be exactly one. Centering the data (shifting x by and y by) yields and, from which
\cos\theta=
x ⋅ y | |
\left\|x\right\|\left\|y\right\| |
=
0.308 | |
\sqrt{30.8 |
\sqrt{0.00308}}=1=\rhoxy,
Several authors have offered guidelines for the interpretation of a correlation coefficient.[14] However, all such criteria are in some ways arbitrary.[15] 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:
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:
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 (xi, yi) 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
x
y
\sigmar=\sqrt{
1-r2 | |
n-2 |
where
r
n
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
t=
r | |
\sigmar |
=r\sqrt{
n-2 | |
1-r2 |
has a student's t-distribution in the null case (zero correlation).[18] This holds approximately in case of non-normal observed values if sample sizes are large enough.[19] For determining the critical values for r the inverse function is needed:
r=
t | |
\sqrt{n-2+t2 |
Alternatively, large sample, asymptotic approaches can be used.
Another early paper[20] 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.[21]
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[22] [23] [24]
f(r)=
| |||||||||||||||||
\sqrt{2\pi |
\operatorname{\Gamma}d\left(n-\tfrac{1}{2}\right)(1-\rho
| ||||||
r) |
where
\Gamma
{}2F1(a,b;c;z)
In the special case when
\rho=0
f(r)=
| ||||||||||
\operatorname{\Beta |
d\left(\tfrac{1}{2},\tfrac{n+1}{2}\right)},
where
\Beta
Confidence intervals and tests can be calculated from a confidence distribution. An exact confidence density for ρ is[25]
where
\operatorname{F}
\nu=n-1>1
See 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
F(r)\equiv\tfrac{1}{2}ln\left(
1+r | |
1-r |
\right)=\operatorname{artanh}(r)
F(r) approximately follows a normal distribution with
mean=F(\rho)=\operatorname{artanh}(\rho)
=SE=
1 | |
\sqrt{n-3 |
where n is the sample size. The approximation error is lowest for a large sample size
n
r
\rho0
Using the approximation, a z-score is
z=
x-mean | |
SE |
=[F(r)-F(\rho0)]\sqrt{n-3}
under the null hypothesis that
\rho=\rho0
\rho=0
To obtain a confidence interval for ρ, we first compute a confidence interval for F(
\rho
100(1-\alpha)\%CI:\operatorname{artanh}(\rho)\in[\operatorname{artanh}(r)\pmz\alpha/2SE]
The inverse Fisher transformation brings the interval back to the correlation scale.
100(1-\alpha)\%CI:\rho\in[\tanh(\operatorname{artanh}(r)-z\alpha/2SE),\tanh(\operatorname{artanh}(r)+z\alpha/2SE)]
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
0.8673\pm
1.96 | |
\sqrt{47 |
The square of the sample correlation coefficient is typically denoted r2 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
Y1,...,Yn
\hatY1,...,\hatYn
\sumi(Yi-\bar{Y})2=\sumi(Yi-\hat{Y}
2 | |
i) |
+\sumi
2, | |
(\hat{Y} | |
i-\bar{Y}) |
where the
\hat{Y}i
1=
\sumi(Yi-\hat{Y | |
i) |
2}{\sum | |
i |
(Yi-\bar{Y})2}+
\sumi(\hat{Y | |
i-\bar{Y}) |
2}{\sum | |
i |
(Yi-\bar{Y})2}.
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
\hat{Y}i
Yi-\hat{Y}i
\begin{align} r(Y,\hat{Y})&=
\sumi(Yi-\bar{Y | |
)(\hat{Y} |
i-\bar{Y})}{\sqrt{\sumi(Y
2 ⋅ | |
i-\bar{Y}) |
\sumi(\hat{Y}
2}}\\[6pt] &= | |
i-\bar{Y}) |
\sumi(Yi-\hat{Y | |
i+\hat{Y} |
i-\bar{Y})(\hat{Y}i-\bar{Y})}{\sqrt{\sumi(Y
2 ⋅ | |
i-\bar{Y}) |
\sumi(\hat{Y}
2}}\\[6pt] &= | |
i-\bar{Y}) |
\sumi[(Yi-\hat{Y | |
i)(\hat{Y} |
i-\bar{Y})
2 | |
+(\hat{Y} | |
i-\bar{Y}) |
]}{\sqrt{\sumi(Y
2 ⋅ | |
i-\bar{Y}) |
\sumi(\hat{Y}
2}}\\[6pt] &= | |
i-\bar{Y}) |
\sumi(\hat{Y | |
i-\bar{Y}) |
2}{\sqrt{\sumi(Y
2 ⋅ | |
i-\bar{Y}) |
\sumi(\hat{Y}
2}}\\[6pt] &= | ||
\sqrt{ | ||
i-\bar{Y}) |
\sumi(\hat{Y | |
i-\bar{Y}) |
2}{\sum | |
i(Y |
2}}. \end{align} | |
i-\bar{Y}) |
Thus
r(Y,\hat{Y})2=
\sumi(\hat{Y | |
i-\bar{Y}) |
2}{\sum | |
i(Y |
2} | |
i-\bar{Y}) |
where
r(Y,\hat{Y})2
In the derivation above, the fact that
\sumi(Yi-\hat{Y}i)(\hat{Y}i-\bar{Y})=0
RSS=\sumi(Yi-
2 | |
\hat{Y} | |
i) |
In the end, the equation can be written as
r(Y,\hat{Y})2=
SSreg | |
SStot |
SSreg=\sumi
2 | |
(\hat{Y} | |
i-\bar{Y}) |
SStot=\sumi
2 | |
(Y | |
i-\bar{Y}) |
SSreg
SStot
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.
Like many commonly used statistics, the sample statistic r is not robust,[27] so its value can be misleading if outliers are present.[28] [29] Specifically, the PMCC is neither distributionally robust,[30] nor outlier resistant[27] (see ). 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.[31]
Variations of the correlation coefficient can be calculated for different purposes. Here are some examples.
The sample correlation coefficient is not an unbiased estimate of . For data that follows a bivariate normal distribution, the expectation for the sample correlation coefficient of a normal bivariate is[32]
\operatornameE\left[r\right]=\rho-
\rho\left(1-\rho2\right) | |
2n |
+ … ,
\rho.
The unique minimum variance unbiased estimator is given by[33]
where:
r,n
2F1(a, |
b;c;z)
An approximately unbiased estimator can be obtained by truncating and solving this truncated equation:
An approximate solution to equation is
where in
r,n
Another proposed[5] adjusted correlation coefficient is
r | ||||
|
for large values of .
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),[34] [35]
The reflective correlation is a variant of Pearson's correlation in which the data are not centered around their mean values. The population reflective correlation is
\operatorname{corr}r(X,Y)=
\operatornameE[XY] | |
\sqrt{\operatornameE[X2] ⋅ \operatornameE[Y2] |
The reflective correlation is symmetric, but it is not invariant under translation:
\operatorname{corr}r(X,Y)=\operatorname{corr}r(Y,X)=\operatorname{corr}r(X,bY) ≠ \operatorname{corr}r(X,a+bY), a ≠ 0,b>0.
The sample reflective correlation is equivalent to cosine similarity:
rrxy=
\sumxiyi | ||||||||||||||
|
The weighted version of the sample reflective correlation is
rrxy,=
\sumwixiyi | ||||||||||||||
|
See 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.[36] Scaled correlation is defined as average correlation across short segments of data.
Let
K
T
s
K=\operatorname{round}\left(
T | |
s |
\right).
The scaled correlation across the entire signals
\bar{r}s
\bar{r}s=
1 | |
K |
K | |
\sum\limits | |
k=1 |
rk,
where
rk
k
By choosing the parameter
s
A distance metric for two variables X and Y known as Pearson's distance can be defined from their correlation coefficient as[37]
dX,Y=1-\rhoX,Y.
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,
dX,Y=1-|\rhoX,Y|
For variables X = and Y = that are defined on the unit circle, it is possible to define a circular analog of Pearson's coefficient.[39] This is done by transforming data points in X and Y with a sine function such that the correlation coefficient is given as:
rcircular=
| |||||||||
) |
\sin(yi-
n | |
\bar{y})}{\sqrt{\sum | |
i=1 |
\sin(xi-\bar{x})2}\sqrt{\sum
n | |
i=1 |
\sin(yi-\bar{y})2}}
where
\bar{x}
\bar{y}
See 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.
See 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.[40]
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
Xi,j
Zm,m
D=X-
1 | |
m |
Zm,mX
T=D(DT
| ||||
D) |
,
where an exponent of 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:
d=x-
1 | |
m |
Z1,mX,
t=d(DT
| ||||
D) |
.
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 calculating the pearson's correlation coefficient.