Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. <?php
  2.  
  3. function median(array $elements, $offset = 0, $length = null)
  4. {
  5. if ($length === null) {
  6. $length = count($elements)-$offset;
  7. }
  8.  
  9. sort($elements);
  10. $half = $offset + ((int)floor(($length - 1) / 2));
  11.  
  12. return ($elements[$half] + $elements[$half + 1 - $length % 2]) / 2;
  13. }
  14.  
  15. function quartiles(array $elements)
  16. {
  17. $length = count($elements);
  18. $q2 = median($elements);
  19.  
  20. $q1 = median($elements, 0, floor($length/2));
  21. $q3 = median($elements, ceil($length/2));
  22.  
  23. return [$q1, $q2, $q3];
  24. }
  25.  
  26. function interquartile_range(array $elements, array $frequencies) {
  27. $set = [];
  28. foreach($elements as $index => $element) {
  29. for($i = 0; $i < $frequencies[$index]; ++$i) {
  30. $set[] = $element;
  31. }
  32. }
  33.  
  34. $q = quartiles($set);
  35.  
  36. return $q[2]-$q[0];
  37. }
  38.  
  39. function mean(array $array)
  40. {
  41. return ($n = count($array)) === 0 ? 0 : array_sum($array)/$n;
  42. }
  43.  
  44. function standard_deviation(array $array)
  45. {
  46. $n = count($array);
  47. $mean = mean($array);
  48. $carry = 0.0;
  49.  
  50. foreach($array as $value) {
  51. $carry += ($value-$mean)**2;
  52. }
  53.  
  54. return sqrt($carry / $n);
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement