线性回归,一阶拟合出来的数值不对,做了机几组数据的验证。
1、第一组,完全线性,每一个点都在线上。数据有误。
y=x+0 和 y=2x+1
Hprice = [10,9,8,7,6,5,4,3,2,1];//通过TB计算,得出的斜率:a=1,截距:b=1。正常回归计算:斜率:a=-1,截距:b=11
Hprice = [1,2,3,4,5,6,7,8,9,10];//通过TB计算,得出的斜率:a=-1,截距:b=10。正常回归计算:斜率:a=1,截距:b=0 ,不知道为啥数组是升序的计算结果是按照倒序的
Hprice = [21,19,17,15,13,11,9,7,5,3,1];//通过TB计算,得出的斜率:a=2,截距:b=1。正常回归计算:斜率:a=2,截距:b=1
2、第二组,非完全线性数据拟合,做了TB和另外统计学线性回归,数据也不一致
Hprice = [3329.6,3352,3334.8,3384.8,3397.2,3457.6,3461,3437.2];//通过TB计算,得出的斜率:a=-19.99,截距:b=3464.23。正常回归计算:斜率:a=19.99,截距:b=3304.33
具体代码如下
//------------------------------------------------------------------------
// 简称: Test
// 名称: 测试
// 类别: 公式应用
// 类型: 内建应用
//------------------------------------------------------------------------
Params
Numeric Length(9);
Numeric SlowLength(3);
Numeric SmoothLength(3);
Vars
Global Array<Numeric> Hprice;
Global Array<Numeric> Lprice;
Events
OnBar(ArrayRef<Integer> indexs)
{
Range[0:DataSourceSize() - 1]
{
Hprice = [3329.6,3352,3334.8,3384.8,3397.2,3457.6,3461,3437.2];//通过TB计算,得出的斜率:a=-19.99,截距:b=3464.23。正常回归计算:斜率:a=19.99,截距:b=3304.33
//Hprice = [10,9,8,7,6,5,4,3,2,1];//通过TB计算,得出的斜率:a=1,截距:b=1。正常回归计算:斜率:a=-1,截距:b=11
//Hprice = [1,2,3,4,5,6,7,8,9,10];//通过TB计算,得出的斜率:a=1,截距:b=10。正常回归计算:斜率:a=1,截距:b=0
Hprice = [21,19,17,15,13,11,9,7,5,3,1];//通过TB计算,得出的斜率:a=2,截距:b=1。正常回归计算:斜率:a=2,截距:b=1
//线性回归预测值
Numeric a = LinearRegSlopeArray(Hprice);//线性回归斜率
Numeric b = LinearRegInterceptArray(Hprice);//线性回归截距
Commentary(\"a:\"+Text(a));
Commentary(\"b:\"+Text(b));
}
}
//------------------------------------------------------------------------
// 编译版本 GS2010.12.08
// 版权所有 TradeBlazer Software 2003-2025
// 更改声明 TradeBlazer Software保留对TradeBlazer平
// 台每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
好的,我先看下视频里面
我看过视频了,理解没有问题。我拿的值不是序列是一个数组。但是用函数计算出来的值不对
这个我记得之前不久答疑直播刚讲过,你看过没