【问题标题】:Laravel Eloquent How to get 1st and 3rd quartile on php?Laravel Eloquent 如何在 php 上获得第一和第三四分位数?
【发布时间】:2021-12-12 12:10:36
【问题描述】:

我正在尝试使用第一个和第三个四分位数查找异常值。这是我目前拥有的:

$data = Data::select('created_at', 'value')
        ->get();

$median = collect($data)->median("value");

【问题讨论】:

    标签: php laravel eloquent quartile


    【解决方案1】:

    你可以像这样创建一个私有函数:

    function Quartile($Array, $Quartile) {
      sort($Array);
      $pos = (count($Array) - 1) * $Quartile;
    
      $base = floor($pos);
      $rest = $pos - $base;
    
      if( isset($Array[$base+1]) ) {
        return $Array[$base] + $rest * ($Array[$base+1] - $Array[$base]);
      } else {
        return $Array[$base];
      }
    }
    
    function Average($Array) {
      return array_sum($Array) / count($Array);
    }
    
    function StdDev($Array) {
      if( count($Array) < 2 ) {
        return;
      }
    
      $avg = Average($Array);
    
      $sum = 0;
      foreach($Array as $value) {
        $sum += pow($value - $avg, 2);
      }
    
      return sqrt((1 / (count($Array) - 1)) * $sum);
    }
    

    然后,你可以调用Quartile()方法取决于你想要哪个四分位数,如果你想要第一个四分位数,那么把0.25作为$Quartile的参数值,对于第三个四分位数,它的@ 987654326@.

    Source answer

    【讨论】:

      猜你喜欢
      • 2018-02-06
      • 1970-01-01
      • 2019-12-29
      • 2021-08-25
      • 2015-08-13
      • 2017-07-11
      • 1970-01-01
      • 2021-11-05
      • 2016-08-30
      相关资源
      最近更新 更多