Calculates the correlation of a given set of data.

You're viewing an older version of this page (#5408). View the current version.

View versions (2)

Interface

#include <codecogs/statistics/moments/correlation.h>

using namespace Statistics::Moments;

The correlation coefficient provides a normalized view of correlation based on covariance:

$$corr(X,Y)= \frac{cov(X,Y)}{\sqrt{var(X)var(Y)}}$$
(1)

where

  • $var(X)$ = variance of a set of data and
  • $cov(X,Y)$ = covariance of a set of data
  • $corr(X,Y)$ ranges from -1 (for negatively correlated variables) through zero (for uncorrelated variables) to +1

(for positively correlated variables).

While if X and Y are independent we have $corr(x,y)=0$, the latter does not imply the former.

References

PlanetMath, http:planetmath.org/encyclopedia/Covariance.html

Example 1

#include <codecogs/statistics/moments/correlation.h>
#include <iostream>
int main()
{
  int x[4] = {3 , 7 , 5 , 6 };
  int y[4] = {4 , 3 , 7 , 1 };
  double corr = Statistics::Moments::correlation<int>(4, x , y);
  std::cout << "The correlation of x and y is: " << corr << std::endl;
  return 0;
}

Output:

The correlation of x and y is: -0.370842

Parameters

n
the size of the first array and of the second array
data
the actual population data given as the first array
data1
the actual population data given as the second array

Returns

the correlation of the given set of data
GPL Licence — free for non commercial use. See Licence details.