Guest User

Untitled

a guest
May 24th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.30 KB | None | 0 0
  1. <?php
  2.     /**********************************************************************************************
  3.    
  4.     Title: Experimental Exponential Smoothing Modification A
  5.    
  6.     ***********************************************************************************************
  7.    
  8.     /* Модификация экспоненцианльного сглаживания для прогнозирования следующего значения
  9.     -----------------------------------------------------------------------------------------------
  10.     ===============================================================================================*/
  11.    
  12.     class ExperimentalExponentialSmoothingModificationA {
  13.        
  14.         /**
  15.          * Получение предсказания
  16.          *
  17.          * @param Array $data (напр. array(80, 100, 150))
  18.          * @return Integer (напр. 168)
  19.          */
  20.         public function prediction($data) {
  21.             $c = count($data);
  22.             $progression = array(0.20, 0.10, 0.05, 0.025, 0.0125, 0.00625);
  23.             $summ = array_sum($progression);
  24.             $newVal = 0;
  25.             $newVal += 0.3*($data[($c-1)]-$data[0]);
  26.             $data = array_reverse($data);
  27.             foreach ($data as $k => $v) {
  28.                 if ($k == 0) {
  29.                     $newVal += 0.5*$v;
  30.                 } elseif (isset($progression[($k-1)])) {
  31.                     $newVal += $progression[($k-1)]*$v;
  32.                 }
  33.             }
  34.             return $newVal;
  35.         }
  36.     }
  37. ?>
Add Comment
Please, Sign In to add comment