stats_covariance

(PECL stats >= 1.0.0)

stats_covarianceВычисляет ковариацию двух наборов данных

Описание

float stats_covariance ( array $a , array $b )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

a

b

Возвращаемые значения

Коментарии

<?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);   
?>
2013-03-16 12:30:09
http://php5.kiev.ua/manual/ru/function.stats-covariance.html
Автор:
// 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 );
}
2015-12-22 11:37:31
http://php5.kiev.ua/manual/ru/function.stats-covariance.html

    Поддержать сайт на родительском проекте КГБ