stats_covariance

(PECL stats >= 1.0.0)

stats_covarianceComputes the covariance of two data sets

Açıklama

stats_covariance(array $a, array $b): float

Returns the covariance of a and b.

Bağımsız Değişkenler

a

The first array

b

The second array

Dönen Değerler

Returns the covariance of a and b, or false on failure.

add a note

User Contributed Notes 2 notes

up
3
Angel J. Salinas
9 years ago
// kanniprabu's function is wrong.// You can check this function with COVARIANCE.P Excel function:function getCovariance( $valuesA, $valuesB ){  $countA = count($valuesA);  $countB = count($valuesB);  if ( $countA != $countB ) {    trigger_error( 'Arrays with different sizes: countA='. $countA .', countB='. $countB, E_USER_WARNING );    return false;  }  if ( $countA < 0 ) {    trigger_error( 'Empty arrays', E_USER_WARNING );    return false;  }  // Use library function if available  if ( function_exists( 'stats_covariance' ) ) {    return stats_covariance( $valuesA, $valuesB );  }  $meanA = array_sum( $valuesA ) / floatval( $countA );  $meanB = array_sum( $valuesB ) / floatval( $countB );  $add = 0.0;  for ( $pos = 0; $pos < $countA; $pos++ ) {    $valueA = $valuesA[ $pos ];    if ( ! is_numeric( $valueA ) ) {      trigger_error( 'Not numerical value in array A at position '. $pos .', value='. $valueA, E_USER_WARNING );      return false;    }    $valueB = $valuesB[ $pos ];    if ( ! is_numeric( $valueB ) ) {      trigger_error( 'Not numerical value in array B at position '. $pos .', value='. $valueB, E_USER_WARNING );      return false;    }    $difA = $valueA - $meanA;    $difB = $valueB - $meanB;    $add += ( $difA * $difB );  } // for  return $add / floatval( $countA );}
up
-1
kanniprabu at gmail dot com
12 years ago
<?php    //Covariance Calculation    function standard_covariance($aValues,$bValues)    {        $a= (array_sum($aValues)*array_sum($bValues))/count($aValues);        $ret = array();        for($i=0;$i<count($aValues);$i++)        {            $ret[$i]=$aValues[$i]*$bValues[$i];        }        $b=(array_sum($ret)-$a)/(count($aValues)-1);                return (float) $b;     }    $aValues=array(3,4,5,7);            $bValues=array(10,11,13,14);    echo standard_covariance($aValues,$bValues);    ?>
To Top