【发布时间】:2018-07-04 05:07:48
【问题描述】:
对于给定的一组x 和y 值,以下将输出slope、intercept 和相关系数R^2。
let linearRegression = (y,x) => {
let lr = {}
let n = y.length
let sum_x = 0
let sum_y = 0
let sum_xy = 0
let sum_xx = 0
let sum_yy = 0
for (let i = 0; i < y.length; i++) {
sum_x += x[i]
sum_y += y[i]
sum_xy += (x[i]*y[i])
sum_xx += (x[i]*x[i])
sum_yy += (y[i]*y[i])
}
lr['slope'] = (n * sum_xy - sum_x * sum_y) / (n*sum_xx - sum_x * sum_x)
lr['intercept'] = (sum_y - lr.slope * sum_x)/n
lr['r2'] = Math.pow((n*sum_xy - sum_x*sum_y)/Math.sqrt((n*sum_xx-sum_x*sum_x)*(n*sum_yy-sum_y*sum_y)),2)
return lr
}
如何调整它以接受两个独立变量 x1, x2 而不是一个?
此页面进入修改后的公式:
http://faculty.cas.usf.edu/mbrannick/regression/Reg2IV.html
但我一直在努力使其适应上述功能。
【问题讨论】:
标签: javascript math statistics regression