# Program to find correlation coefficient

• Difficulty Level : Medium
• Last Updated : 20 Jul, 2021

Given two array elements and we have to find the correlation coefficient between two arrays. The correlation coefficient is an equation that is used to determine the strength of the relation between two variables. The correlation coefficient is sometimes called as cross-correlation coefficient. Correlation coefficient always lies between -1 to +1 where -1 represents X and Y are negatively correlated and +1 represents X and Y are positively correlated. Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

Where r is correlation coefficient.  Correlation coefficient
= (5 * 3000 - 105 * 140)
/ sqrt((5 * 2295 - 1052)*(5*3964 - 1402))
= 300 / sqrt(450 * 220) = 0.953463

Examples :

Input : X[] = {43, 21, 25, 42, 57, 59}
Y[] = {99, 65, 79, 75, 87, 81}
Output : 0.529809

Input : X[] = {15, 18, 21, 24, 27};
Y[] = {25, 25, 27, 31, 32}
Output : 0.953463

## C++

 // Program to find correlation coefficient#include  using namespace std;  // function that returns correlation coefficient.float correlationCoefficient(int X[], int Y[], int n){      int sum_X = 0, sum_Y = 0, sum_XY = 0;    int squareSum_X = 0, squareSum_Y = 0;      for (int i = 0; i < n; i++)    {        // sum of elements of array X.        sum_X = sum_X + X[i];          // sum of elements of array Y.        sum_Y = sum_Y + Y[i];          // sum of X[i] * Y[i].        sum_XY = sum_XY + X[i] * Y[i];          // sum of square of array elements.        squareSum_X = squareSum_X + X[i] * X[i];        squareSum_Y = squareSum_Y + Y[i] * Y[i];    }      // use formula for calculating correlation coefficient.    float corr = (float)(n * sum_XY - sum_X * sum_Y)                   / sqrt((n * squareSum_X - sum_X * sum_X)                       * (n * squareSum_Y - sum_Y * sum_Y));      return corr;}  // Driver functionint main(){      int X[] = {15, 18, 21, 24, 27};    int Y[] = {25, 25, 27, 31, 32};      //Find the size of array.    int n = sizeof(X)/sizeof(X);      //Function call to correlationCoefficient.    cout<

## Java

 // JAVA Program to find correlation coefficientimport java.math.*;  class GFG {      // function that returns correlation coefficient.    static float correlationCoefficient(int X[],                                    int Y[], int n)    {               int sum_X = 0, sum_Y = 0, sum_XY = 0;        int squareSum_X = 0, squareSum_Y = 0;               for (int i = 0; i < n; i++)        {            // sum of elements of array X.            sum_X = sum_X + X[i];                   // sum of elements of array Y.            sum_Y = sum_Y + Y[i];                   // sum of X[i] * Y[i].            sum_XY = sum_XY + X[i] * Y[i];                   // sum of square of array elements.            squareSum_X = squareSum_X + X[i] * X[i];            squareSum_Y = squareSum_Y + Y[i] * Y[i];        }               // use formula for calculating correlation         // coefficient.        float corr = (float)(n * sum_XY - sum_X * sum_Y)/                     (float)(Math.sqrt((n * squareSum_X -                     sum_X * sum_X) * (n * squareSum_Y -                      sum_Y * sum_Y)));               return corr;    }           // Driver function    public static void main(String args[])    {               int X[] = {15, 18, 21, 24, 27};        int Y[] = {25, 25, 27, 31, 32};               // Find the size of array.        int n = X.length;               // Function call to correlationCoefficient.        System.out.printf("%6f",                 correlationCoefficient(X, Y, n));                     }}  /*This code is contributed by Nikita Tiwari.*/

## Python

 # Python Program to find correlation coefficient.import math  # function that returns correlation coefficient.def correlationCoefficient(X, Y, n) :    sum_X = 0    sum_Y = 0    sum_XY = 0    squareSum_X = 0    squareSum_Y = 0                i = 0    while i < n :        # sum of elements of array X.        sum_X = sum_X + X[i]                  # sum of elements of array Y.        sum_Y = sum_Y + Y[i]                  # sum of X[i] * Y[i].        sum_XY = sum_XY + X[i] * Y[i]                  # sum of square of array elements.        squareSum_X = squareSum_X + X[i] * X[i]        squareSum_Y = squareSum_Y + Y[i] * Y[i]                  i = i + 1           # use formula for calculating correlation     # coefficient.    corr = (float)(n * sum_XY - sum_X * sum_Y)/           (float)(math.sqrt((n * squareSum_X -            sum_X * sum_X)* (n * squareSum_Y -            sum_Y * sum_Y)))    return corr      # Driver functionX = [15, 18, 21, 24, 27]Y = [25, 25, 27, 31, 32]       # Find the size of array.n = len(X)  # Function call to correlationCoefficient.print ('{0:.6f}'.format(correlationCoefficient(X, Y, n)))  # This code is contributed by Nikita Tiwari.

## C#

 // C# Program to find correlation coefficientusing System;  class GFG {       // function that returns correlation coefficient.    static float correlationCoefficient(int []X, int []Y,                                                   int n)    {        int sum_X = 0, sum_Y = 0, sum_XY = 0;        int squareSum_X = 0, squareSum_Y = 0;                for (int i = 0; i < n; i++)        {            // sum of elements of array X.            sum_X = sum_X + X[i];                    // sum of elements of array Y.            sum_Y = sum_Y + Y[i];                    // sum of X[i] * Y[i].            sum_XY = sum_XY + X[i] * Y[i];                    // sum of square of array elements.            squareSum_X = squareSum_X + X[i] * X[i];            squareSum_Y = squareSum_Y + Y[i] * Y[i];        }                // use formula for calculating correlation         // coefficient.        float corr = (float)(n * sum_XY - sum_X * sum_Y)/                     (float)(Math.Sqrt((n * squareSum_X -                     sum_X * sum_X) * (n * squareSum_Y -                      sum_Y * sum_Y)));                return corr;    }            // Driver function    public static void Main()    {                int []X = {15, 18, 21, 24, 27};        int []Y = {25, 25, 27, 31, 32};                // Find the size of array.        int n = X.Length;                // Function call to correlationCoefficient.        Console.Write(Math.Round(correlationCoefficient(X, Y, n) *                                            1000000.0)/1000000.0);                       }}   //This code is contributed by Anant Agarwal.

## PHP

 

## Javascript

 

Output :

0.953463`

My Personal Notes arrow_drop_up