代码改变世界

JS版一元线性回归

2011-02-26 15:45  jimhou  阅读(812)  评论(0)    收藏  举报
<script language="JavaScript">

Array.prototype.Average
= function (value){
var i;
var avg=0;
var sum=0;
for (i=0; i < this.length; i++) {
sum
+= this[i];
}
avg
= sum/this.length
return avg;
}

var xNum = new Array(187.1,179.5,157.0,197.0,239.4,217.8,227.1,233.4,242.0,251.9,230.0,271.8);
var yNum = new Array(25.4,22.8,20.6,21.8,32.4,24.4,29.3,27.9,27.8,34.2,29.2,30.0);
xa
= xNum.Average();
ya
= yNum.Average();

var Lxx = 0;
var Lxy = 0;
for(i=0;i<xNum.length;i++){
Lxx
+= ((xNum[i]-xa)*(xNum[i]-xa));
Lxy
+= ((xNum[i]-xa)*(yNum[i]-ya));
}

var a = new Number();
var b = new Number();
b
= Lxy/Lxx;
a = ya - b*xa;

document.write(
"Y="+b.toFixed(1)+"*X"+"+"+a.toFixed(1));


</script>