Программа для поиска ковариации

Опубликовано: 17 Января, 2022

Для двух наборов случайных величин найдите ковариацию. Ковариация - это мера того, насколько две случайные величины изменяются вместе. Это похоже на дисперсию, но там, где дисперсия говорит вам, как изменяется одна переменная, ковариация сообщает вам, как две переменные изменяются вместе. Ковариацию можно рассчитать по формуле

Где x 'и y' - средние значения двух данных множеств.

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
Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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;
    for(int i = 0; i < n; i++)
        sum = sum + (arr1[i] - mean(arr1, n)) *
                    (arr2[i] - mean(arr2, n));
    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;
}

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;
     
    for(int i = 0; i < n; i++)
        sum = sum + (arr1[i] - mean(arr1, n)) *
                        (arr2[i] - mean(arr2, n));
    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 Gitanjali.

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
    for i in range(0, n):
        sum = (sum + (arr1[i] - mean(arr1, n)) *
                      (arr2[i] - mean(arr2, n)))
     
    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 Gitanjali.

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;
         
        for(int i = 0; i < n; i++)
            sum = sum + (arr1[i] - mean(arr1, n)) *
                            (arr2[i] - mean(arr2, n));
        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;
    for( $i = 0; $i < $n; $i++)
        $sum = $sum + ($arr1[$i] -
                 mean($arr1, $n)) *
                      ($arr2[$i] -
                  mean($arr2, $n));
    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;
    for(let i = 0; i < n; i++)
        sum = sum + (arr1[i] - mean(arr1, n)) *
                    (arr2[i] - mean(arr2, n));
                     
    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>

Выход:

 -0,0580511

Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .

Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.