Open In App

Program to find covariance

Last Updated : 04 May, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Given a two set of random variable, find Covariance. Covariance is a measure of how much two random variables vary together. It’s similar to variance, but where variance tells you how a single variable varies, covariance tells you how two variables vary together. Covariance can be calculated by using the formula 
{\displaystyle \operatorname {cov} (X,Y)={\frac {1}{n}}\sum _{i=1}^{n}(x_{i}-x')(y_{i}-y').}
Where x’ and y’ are the means of two given sets.

Examples: 

Input : arr1[] = {65.21, 64.75, 65.26, 65.76, 65.96}
        arr2[] = {67.25, 66.39, 66.12, 65.70, 66.64}
Output : -0.0580511

Input : arr1[] = {5, 20, 40, 80, 100}
        arr2[] = {10, 24, 33, 54, 10}
Output : 187.75

C++

// C++ Program to find covariance of two set.
#include <bits/stdc++.h>
using namespace std;
 
// Function to find mean.
float mean(float arr[], int n)
{
    float sum = 0;
    for (int i = 0; i < n; i++)
        sum = sum + arr[i];
    return sum / n;
}
 
// Function to find covariance.
float covariance(float arr1[], float arr2[], int n)
{
    float sum = 0;
    float mean_arr1 = mean(arr1, n);
    float mean_arr2 = mean(arr2, n);
    for (int i = 0; i < n; i++)
        sum = sum + (arr1[i] - mean_arr1) * (arr2[i] - mean_arr2);
    return sum / (n - 1);
}
 
// Driver function.
int main()
{
    float arr1[] = { 65.21, 64.75, 65.26, 65.76, 65.96 };
    int n = sizeof(arr1) / sizeof(arr1[0]);
    float arr2[] = { 67.25, 66.39, 66.12, 65.70, 66.64 };
    int m = sizeof(arr2) / sizeof(arr2[0]);
 
    if (m == n)
        cout << covariance(arr1, arr2, m);
    return 0;
}
 
// This code is contributed by Aditya Kumar (adityakumar129)

                    

C

// C Program to find covariance of two set.
#include <stdio.h>
 
// Function to find mean.
float mean(float arr[], int n)
{
    float sum = 0;
    for (int i = 0; i < n; i++)
        sum = sum + arr[i];
    return sum / n;
}
 
// Function to find covariance.
float covariance(float arr1[], float arr2[], int n)
{
    float sum = 0;
    float mean_arr1 = mean(arr1, n);
    float mean_arr2 = mean(arr2, n);
    for (int i = 0; i < n; i++)
        sum = sum + (arr1[i] - mean_arr1) * (arr2[i] - mean_arr2);
    return sum / (n - 1);
}
 
// Driver function.
int main()
{
    float arr1[] = { 65.21, 64.75, 65.26, 65.76, 65.96 };
    int n = sizeof(arr1) / sizeof(arr1[0]);
    float arr2[] = { 67.25, 66.39, 66.12, 65.70, 66.64 };
    int m = sizeof(arr2) / sizeof(arr2[0]);
 
    if (m == n)
        printf("%f", covariance(arr1, arr2, m));
    return 0;
}
 
// This code is contributed by Aditya Kumar (adityakumar129)

                    

Java

// Java Program to find covariance of two set.
import java.io.*;
 
class GFG {
 
    // Function to find mean.
    static float mean(float arr[], int n)
    {
        float sum = 0;
        for (int i = 0; i < n; i++)
            sum = sum + arr[i];
        return sum / n;
    }
 
    // Function to find covariance.
    static float covariance(float arr1[], float arr2[], int n)
    {
        float sum = 0;
        float mean_arr1 = mean(arr1, n);
        float mean_arr2 = mean(arr2, n);
 
        for (int i = 0; i < n; i++)
            sum = sum + (arr1[i] - mean_arr1) * (arr2[i] - mean_arr2);
        return sum / (n - 1);
    }
 
    // Driver code
    public static void main(String[] args)
    {
 
        float arr1[] = { 65.21f, 64.75f, 65.26f, 65.76f, 65.96f };
        int n = arr1.length;
        float arr2[] = { 67.25f, 66.39f, 66.12f, 65.70f, 66.64f };
        int m = arr2.length;
 
        if (m == n)
            System.out.println(covariance(arr1, arr2, m));
    }
}
 
// This code is contributed by Aditya Kumar (adityakumar129)

                    

Python3

# Python3 Program to find
# covariance of two set.
import math
 
# Function to find mean.
 
 
def mean(arr, n):
 
    sum = 0
    for i in range(0, n):
        sum = sum + arr[i]
 
    return sum / n
 
# Function to find covariance.
 
 
def covariance(arr1, arr2, n):
 
    sum = 0
    mean_arr1 = mean(arr1, n)
    mean_arr2 = mean(arr2, n)
    for i in range(0, n):
        sum = (sum + (arr1[i] - mean_arr1) * (arr2[i] - mean_arr2))
 
    return sum / (n - 1)
 
 
# Driver method
arr1 = [65.21, 64.75, 65.26, 65.76, 65.96]
n = len(arr1)
arr2 = [67.25, 66.39, 66.12, 65.70, 66.64]
m = len(arr2)
 
if (m == n):
    print(covariance(arr1, arr2, m))
 
# This code is contributed by Aditya Kumar (adityakumar129)

                    

C#

// C# Program to find
// covariance of two set.
using System;
 
class GFG {
 
    // Function to find mean.
    static float mean(float []arr, int n)
    {
        float sum = 0;
         
        for(int i = 0; i < n; i++)
            sum = sum + arr[i];
         
        return sum / n;
    }
     
    // Function to find covariance.
    static float covariance(float []arr1,
                        float []arr2, int n)
    {
        float sum = 0;
          float mean_arr1 = mean(arr1,n);
          float mean_arr2 = mean(arr2,n);   
        for(int i = 0; i < n; i++)
            sum = sum + (arr1[i] - mean_arr1) *
                            (arr2[i] - mean_arr2);
        return sum / (n - 1);
    }
     
    // Driver code
    public static void Main () {
     
        float []arr1 = {65.21f, 64.75f,
                65.26f, 65.76f, 65.96f};
        int n = arr1.Length;
         
        float []arr2 = {67.25f, 66.39f,
                    66.12f, 65.70f, 66.64f};
         
        int m = arr2.Length;
         
        if (m == n)
         
        Console.WriteLine(covariance(arr1, arr2, m));
     
    }
}
 
// This code is contributed by vt_m.

                    

PHP

<?php
// PHP Program to find
// covariance of two set.
 
// Function to find mean.
function mean( $arr, $n)
{
    $sum = 0;
    for( $i = 0; $i < $n; $i++)
        $sum = $sum + $arr[$i];
    return $sum / $n;
}
 
// Function to find covariance.
function covariance( $arr1, $arr2, $n)
{
    $sum = 0;
    $mean_arr1 = mean($arr1,$n);
      $mean_arr2 = mean($arr2,$n);
    for( $i = 0; $i < $n; $i++)
        $sum = $sum + ($arr1[$i] -
                 $mean_arr1) *
                      ($arr2[$i] -
                  $mean_arr2);
    return $sum / ($n - 1);
}
 
// Driver function.
$arr1 = array(65.21, 64.75, 65.26,
                        65.76, 65.96);
$n = count($arr1);
     
$arr2 = array(67.25, 66.39, 66.12,
                        65.70, 66.64);
$m =count($arr2);
     
if ($m == $n)
    echo covariance($arr1, $arr2, $m);
 
// This code is contributed by anuj_67.
?>

                    

Javascript

<script>
 
// Javascript program to find
// covariance of two set.
 
// Function to find mean.
function mean(arr, n)
{
    let sum = 0;
    for(let i = 0; i < n; i++)
        sum = sum + arr[i];
         
    return sum / n;
}
 
// Function to find covariance.
function covariance(arr1, arr2, n)
{
    let sum = 0;
     let mean_arr1 = mean(arr1, n);
    let mean_arr2 = mean(arr2, n);
    for(let i = 0; i < n; i++)
        sum = sum + (arr1[i] - mean_arr1) *
                    (arr2[i] - mean_arr2);
                     
    return sum / (n - 1);
}
 
// Driver code
let arr1 = [ 65.21, 64.75, 65.26, 65.76, 65.96 ];
let n = arr1.length;
 
let arr2 = [ 67.25, 66.39, 66.12, 65.70, 66.64 ];
let m = arr2.length;
 
if (m == n)
    document.write(covariance(arr1, arr2, m));
     
// This code is contributed by souravmahato348
 
</script>

                    

Output: 

-0.0580511

Time Complexity: O(N)
Auxiliary Space: O(1) 
 



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads