PHP 7.0.6 Released

stats_stat_correlation

(PECL stats >= 1.0.0)

stats_stat_correlationNot documented

Descrierea

float stats_stat_correlation ( array `\$arr1` , array `\$arr2` )
Avertizare

Această funcție nu este documentată în prezent; este disponibilă numai lista sa de argumente.

`arr1`

`arr2`

add a note

User Contributed Notes 3 notes

non at dot com
1 year ago
``` undefined for me, thus I've implemented my own correlation which is much faster and simpler than the one provided above.function Corr(\$x, \$y){\$length= count(\$x);\$mean1=array_sum(\$x) / \$length;\$mean2=array_sum(\$y) / \$length;\$a=0;\$b=0;\$axb=0;\$a2=0;\$b2=0;for(\$i=0;\$i<\$length;\$i++){\$a=\$x[\$i]-\$mean1;\$b=\$y[\$i]-\$mean2;\$axb=\$axb+(\$a*\$b);\$a2=\$a2+ pow(\$a,2);\$b2=\$b2+ pow(\$b,2);}\$corr= \$axb / sqrt(\$a2*\$b2);return \$corr;} ```
admin at maychu dot net (Le Cong)
6 years ago
``` Please note that this function is reserved for two arrays with continued numbers inside (just integers).I tested this function and found that it calculate the Pearson's Correlation Coefficient of two arrays.---Here's suggested documentation:stats_stat_correlation — Calculate the Pearson's Correlation Coefficient of two arrays of continued numbers.Parameters:arr1 = array (integer1a, interger2a ...)arr2 = array (integer1b, interger2b ...))(Note that the count of elements in two arrays must be equal)Return value: Pearson's Correlation Coefficient in decimal format (ex. 0.934399822094)Code examples:<?php// Provided by admin@maychu.net\$array_x = array(5,3,6,7,4,2,9,5);\$array_y = array(4,3,4,8,3,2,10,5);\$pearson = stats_stat_correlation(\$array_x,\$array_y);echo \$pearson;?> ```
umar dot anjum at ymail dot com
7 years ago
``` I tried to use this function, but got a not-defined error. Anyway, I have created a set of functions to replace this: <?php//Since Correlation needs two arrays, I am hardcoding them\$array1[0] = 59.3;\$array1[1] = 61.2;\$array1[2] = 56.8\$array1[3] = 97.55;\$array2[0] = 565.82;\$array2[1] = 54.568;\$array2[2] = 84.22;\$array2[3] = 483.55;//To find the correlation of the two arrays, simply call the  //function Correlation that takes two arrays:\$correlation = Correlation(\$array1, \$array2);//Displaying the calculated Correlation:print \$correlation;//The functions that work behind the scene to calculate the//correlationfunction Correlation(\$arr1, \$arr2){            \$correlation = 0;        \$k = SumProductMeanDeviation(\$arr1, \$arr2);    \$ssmd1 = SumSquareMeanDeviation(\$arr1);    \$ssmd2 = SumSquareMeanDeviation(\$arr2);        \$product = \$ssmd1 * \$ssmd2;        \$res = sqrt(\$product);        \$correlation = \$k / \$res;        return \$correlation;}function SumProductMeanDeviation(\$arr1, \$arr2){    \$sum = 0;        \$num = count(\$arr1);        for(\$i=0; \$i<\$num; \$i++)    {        \$sum = \$sum + ProductMeanDeviation(\$arr1, \$arr2, \$i);    }        return \$sum;}function ProductMeanDeviation(\$arr1, \$arr2, \$item){    return (MeanDeviation(\$arr1, \$item) * MeanDeviation(\$arr2, \$item));}function SumSquareMeanDeviation(\$arr){    \$sum = 0;        \$num = count(\$arr);        for(\$i=0; \$i<\$num; \$i++)    {        \$sum = \$sum + SquareMeanDeviation(\$arr, \$i);    }        return \$sum;}function SquareMeanDeviation(\$arr, \$item){    return MeanDeviation(\$arr, \$item) * MeanDeviation(\$arr, \$item);}function SumMeanDeviation(\$arr){    \$sum = 0;        \$num = count(\$arr);        for(\$i=0; \$i<\$num; \$i++)    {        \$sum = \$sum + MeanDeviation(\$arr, \$i);    }        return \$sum;}function MeanDeviation(\$arr, \$item){    \$average = Average(\$arr);        return \$arr[\$item] - \$average;}    function Average(\$arr){    \$sum = Sum(\$arr);    \$num = count(\$arr);        return \$sum/\$num;}function Sum(\$arr){    return array_sum(\$arr);}?> ```