PHP线性回归直线方程
线性回归方程有什么用?
1、如果目标是预测或者映射,线性回归可以用来对观测数据集的和X的值拟合出一个预测模型。当完成这样一个模型以后,对于一个新增的X值,在没有给定与它相配对的y的情况下,可以用这个拟合过的模型预测出一个y值。
2、给定一个变量y和一些变量X1,...,Xp,这些变量有可能与y相关,线性回归分析可以用来量化y与Xj之间相关性的强度,评估出与y不相关的Xj,并识别出哪些Xj的子集包含了关于y的冗余信息。
3、趋势线。一条趋势线代表着时间序列数据的长期走势。它告诉我们一组特定数据(如GDP、石油价格和股票价格)是否在一段时期内增长或下降。虽然我们可以用肉眼观察数据点在坐标系的位置大体画出趋势线,更恰当的方法是利用线性回归计算出趋势线的位置和斜率。
4、资本资产定价模型利用线性回归以及Beta系数的概念分析和计算投资的系统风险。这是从联系投资回报和所有风险性资产回报的模型Beta系数直接得出的。
5、线性回归是经济学的主要实证工具。例如,它是用来预测消费支出,固定投资支出,存货投资,一国出口产品的购买,进口支出,要求持有流动性资产,劳动力需求、劳动力供给。
线性回归方程怎么算?
例如:X轴:1,2,3,4,5,6
Y轴:11,12,13,14,15,16
第一步:先求X、Y的平均数,这里分别用Xi和Yi表示了。
第二步:计算出回归系数,也叫斜率,字母B。B=(x1y1+x2y2+...xnyn) - xi*yi / (x12+x22+...xn2) - xi2 。 x1的平方,,上标不显示。。
第三步:计算出回归方程的误差A。A=Yi - BXi,把数据代入就可以计算出A。
最后,线性回归直线方程就是 y=Bx + A。
用PHP写出回归方程:
/**
* 线性回归直线
* @params array $x_arr X轴
* @params array $y_arr Y轴
* @return array(fun,start_x,start_y,end_x,end_y)
*/
function linearRegression($x_arr,$y_arr){
$num_x=count($x_arr);
$avg_x=array_sum($x_arr)/$num_x;
$avg_y=array_sum($y_arr)/count($y_arr);
$numerator=$denominator=0;
for($i=0;$i<$num_x;$i++){
$numerator+=(($x_arr[$i]-$avg_x)*($y_arr[$i]-$avg_y));
$denominator+=pow(($x_arr[$i]-$avg_x),2);
}
$b=$denominator == 0 ? 0 : $numerator/$denominator;
$a=$avg_y-$b*$avg_x;
return array("fun"=>"y=".round($b,2)."x+".round($a,2),"start_x"=>1,"start_y"=>round(($b+$a),2),"end_x"=>$num_x,"end_y"=>round(($b*$num_x+$a),2));
}
$x=array(1,2,3,4,5,6);
$y=array(123,343,234,344,235,567);
print_r(linearRegression($x,$y));
有 0 位网友评论: