Location: PHPKode > projects > CrawlTrack > crawltrack/include/regression.php
<?php
//----------------------------------------------------------------------
//  CrawlTrack 3.1.0
//----------------------------------------------------------------------
// Crawler Tracker for website
//----------------------------------------------------------------------
// Author: Jean-Denis Brun
//----------------------------------------------------------------------
// Website: www.crawltrack.net
//----------------------------------------------------------------------
// That script is distributed under GNU GPL license
//----------------------------------------------------------------------
// file: regression.php
//----------------------------------------------------------------------
//  Last update: 13/12/2008
//----------------------------------------------------------------------
//Librement inspiré de la classe RegLin de Abel MILCENT
//----------------------------------------------------------------------



function GetEvol($tableau)
{

	//initialisation valeur
	$sumX=0; //somme des X
	$sumY=0; //somme des Y
	$sumX2=0; //somme des X²
	$sumY2=0; //somme des y²
	$sumXY=0; //somme des x*y

  $n=count($tableau);

	//Mise en place des abscisses

	 for($i=0;$i<$n;$i++)
	 	{
    $tAbscisse[$i]=$i;
		}
  //parcours des donnees pour récupération formule nécessaire au calcul des éléments
	for($i=0;$i<$n;$i++)	
    {
      $xVal=$tAbscisse[$i];
      $yVal=$tableau[$i];
      
      $sumX+=$xVal;
      $sumY+=$yVal;
      $sumX2+=$xVal*$xVal;
      $sumY2+=$yVal*$yVal; 
      $sumXY+=$xVal*$yVal;
    }

	$vMoyX=$sumX/$n; //moyenne X
	$vMoyY=$sumY/$n; //moyenne Y
	
	//La variance, c'est la moyenne des carrés soustrait du carré de la moyenne: Rappel
	$vVarianceX=($sumX2/$n)-($vMoyX*$vMoyX);	

	 //La covariance, la moyenne des produits moins le produit des moyennes
 	$vCovariance=($sumXY/$n)-($vMoyX*$vMoyY);
	
	//Calcul de coef directeur de la régression
  $vA=$vCovariance/$vVarianceX;
  $vB=$vMoyY-($vA*$vMoyX);
  
	//renvoi le % d'évolution par jour
	$tOpt=array();  
	foreach($tAbscisse as $i)
	{
		$tOpt[$i]=$vA*$i+$vB;
	}
	$evolution= round((($tOpt[1]-$tOpt[0])/abs($tOpt[0]))*100,2);


	
	return $evolution;  
}


?>
Return current item: CrawlTrack