|
"Content-Type" content="text/html; charset=utf-8">
"GENERATOR" content="Microsoft FrontPage Express 2.0"> 线性回归 Linear Regression计算线性回归方程式 Y = a + bX 如果两组数据相关系数很高, 可以用一条近似直线Y=a + bX 来预估, 谓之线性回归
根据统计学理论, Y = a + bX 中
斜率 b = X,Y 离均差交乘积和 / X离均差平方和
常数项 a = Y平均值 - b * X平均值
header("Content-Type: text/html; charset=utf-8");if (empty($_REQUEST["X"])) { ?> } else { $X = explode(",",$_REQUEST["X"]); $Y = explode(",",$_REQUEST["Y"]); $xavg = array_sum($X)/count($X); $yavg = array_sum($Y)/count($Y); $XMD = Array(); $YMD = Array(); $mdcross_sum = 0; $xdif_square_sum = 0; $count = count($X); for ($i=0; $i$count; $i++) { $xdif = (float)$X[$i]-$xavg; $ydif = (float)$Y[$i]-$yavg; $XMD[$i] = $xdif; $YMD[$i] = $ydif; $mdcross_sum += $xdif*$ydif; $xdif_square_sum += pow($xdif, 2); } $b = round($mdcross_sum/$xdif_square_sum, 2); $a = round($yavg-$b*$xavg, 2); echo "X = ".join(", ",$X)." "; echo "Y = ".join(", ",$Y)." "; echo "常数项 a = ".$a." "; echo "斜率 b = ".$b." "; echo "线性回归方程式 Y = ".$a." + (".$b.")X "; echo "X 平均值 = ".$xavg." "; echo "Y 平均值 = ".$yavg." "; echo "X 离均差 = ".join(", ",$XMD)." "; echo "Y 离均差 = ".join(", ",$YMD)." "; echo "X,Y 离均差交乘积和 = ".$mdcross_sum." "; echo "X 离均差平方和 = ".$xdif_square_sum." ";} echo ' '; echo '计算两点之间的角度。';$a = array('x' => 10, 'y' => 0);$c = array('x' => 80, 'y' => 80);$pi_v = atan2($c['y'] - $a['y'], $c['x'] - $a['x']);$n_v = rad2deg($pi_v);echo '弧度:',$pi_v,' 角度:',$n_v; ?>
|