MLRS这个函数,按照官方帮助文档的解释,目标方程是ax+res=b,也就是x是线的斜率,res是y轴的截距。
其例子里面使用的:
Array<Array<Numeric>> a = [[30.2,33.1],[31.9,34.8],[32.7,35.6]];
Array<Array<Numeric>> b = [[13.5],[12.4],[11.3]];
Array<Array<Numeric>> x;
Array<Numeric> tvalues;
Array<Numeric> res;
Numeric ret = MLRS(a,b,x,tvalues,res);//多元线性回归求解
Print("MLRS,ret:" + Text(ret) + ",x:" + TextArray(x) + ",tvalues:" + TextArray(tvalues) + ",res:" + TextArray(res));
以上的a和b构成两组关于x轴和y轴的点,他们分别是
第一组点:
x=30.2, y=13.5
x=31.9, y=12.4
x=32.7, y=11.3
第二组点:
x=33.1, y=13.5
x=34.8, y=12.4
x=35.6, y=11.3
那么针对第一组和第二组的点的回归线的斜率应该是都是-0.843558,如下:
但是看MLRS的计算结果:
MLRS,ret:0,x:[[-14.311297],[13.467739]],tvalues:[-6.858083,7.04551],res:[-0.080982,0.253067,-0.172086]
MLRS计算出来的第一组点的斜率是-14.311297,第二组点的斜率是13.467739,res结果也对不上。
所以,MLRS的计算逻辑到底是什么?有人可以详细说明一下吗?
这是多元线性回归,A是3*2,b是3*1,x是2*1,res是3*1。看一下基础知识再用这个函数。
顶一下,同问,有没有线性回归的例子?