Пример #1
0
 /**
  * Calculate the kth q-quantile of a set of numbers in an array.
  * As per http://en.wikipedia.org/wiki/Quantile#Quantiles_of_a_population
  * Ex: Median is 1st 2-quantile
  * Ex: Upper quartile is 3rd 4-quantile
  *
  * @param array $array set of values.
  * @param number $k index of quantile.
  * @param number $q number of quantiles.
  * @return number kth q-quantile of values.
  */
 public static function quantile($array, $k, $q)
 {
     if ($k == 0) {
         return Basic::min($array);
     }
     if ($k == $q) {
         return Basic::max($array);
     }
     sort($array);
     $index = count($array) * $k / $q;
     if (fmod($index, 1) == 0) {
         return 0.5 * $array[$index - 1] + 0.5 * $array[$index];
     }
     return $array[floor($index)];
 }