Calculates the covariance of a given set of data

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

View versions (2)

Interface

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

using namespace Statistics::Moments;

The covariance of two random variables $X_1$ and $X_2$ with mean $\overline{X_1}$ and $\overline{X_2}$ respectively is defined as

$$cov(X_1,X_2)=E[(X_1-\overline{X_1})(X_2-\overline{X_2})]$$
(1)

The covariance of a random variable $X$ with itself is simply the variance

$$E[(X-\overline{X})^2]$$
(2)

Covariance captures a measure of the correlation of two variables.

Positive covariance indicates that as $X_1$ increases, so does $X_2$ . Negative covariance indicates $X_1$ decreases as $X_2$ increases and vice versa. Zero covariance can indicate that $X_1$ and $X_2$ are uncorrelated. Covariance is defined as:

$$cov(x,y)=\frac{1}{N}\sum_{i=1}^N x_iy_i-\overline{x}\,\overline{y}$$
(3)

In the example below the covariance of two random variables is calculated, yielding the result: <em> -1.64 </em>. These two variables are also displayed in the following graphs.

1/covariance-6-965.png

Example 1

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

Output:

The covariance of x and y is: -1.64

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 second array

Returns

the covariance of a given population
GPL Licence — free for non commercial use. See Licence details.