Nasıl bu lineer regresyon işlevini geliştirmek mi?

0 Cevap php

Ben bir trend çizgisi çizmek için kullanıyorum şu PHP işlevi var. Ancak, bazen dağılım grafiğinin tüm puan altına çizgi çizer. Benim işlevi bir hata var mı ya da bunu yapmak için daha iyi bir yolu yoktur. Ben onu ne olursa olsun onları çizgisinin üzerinde veya altında olma gibi olumlu tüm artıklar (hattına dağılım noktalarından mesafeleri) davranır, üreten hattı ile bununla ilgili bir şey olabileceğini düşünüyorum.

function linear_regression($x, $y) {

$n = count($x);

$x_sum = array_sum($x); $y_sum = array_sum($y);

$xx_sum = 0; $xy_sum = 0;

for($i = 0; $i < $n; $i++) { $xy_sum+=($x[$i]*$y[$i]); $xx_sum+=($x[$i]*$x[$i]); }

$m = (($n * $xy_sum) - ($x_sum * $y_sum)) / (($n * $xx_sum) - ($x_sum * $x_sum)); $b = ($y_sum - ($m * $x_sum)) / $n; return array("m"=>$m, "b"=>$b);

}

0 Cevap