// 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 );
}
PHP.mk документација
stats_covariance
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
function.stats-covariance.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
function.stats-covariance.php
stats_covariance
Референца за `function.stats-covariance.php` со подобрена типографија и навигација.
stats_covariance
(PECL stats >= 1.0.0)
stats_covariance — Ги пресметува коваријансата на два сета на податоци
Параметри
a-
Враќа коефициент на Пирсонова корелација помеѓу
b-
Првиот array
Вратени вредности
Враќа коваријансата на a and b, или false при неуспех.
Белешки од корисници 2 забелешки
Ангел Ј. Салинас ¶
пред 10 години
kanniprabu на gmail точка com ¶
пред 13 години
<?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);
?>