5、线性回归公式推导,不要以为只要2个数据点就能求a和b了

其实我们完全可以不告诉大家怎么去推导线性回归的公式,也就是y=ax+b这个公式中,怎么求a和b的值。只要告诉大家求a和b的公式就可以了。

但是如果那样,我相信很多同学就不会理解了,这就和大多数教材上的资料一样了,根本不能让我们亲爱的同学理解。我们不想让这套课程变成浪费大家时间的电子垃圾,而是真心希望能够让大家学到处理实际问题的能力,所以,我们决定坚决的给大家讲讲公式推导。

简单的线性回归,就是通过一组(x,y)数据,计算一条直线的过程。如下图是年龄和身高的关系图。

这里,我们需要计算a和b的值。

1、能通过解方程,求a和b的值吗?

学过高中数学的同学,就知道a和b其实很容易得到,只需要建立2个方程就可以了。

例如当 x = 4 的时候,y = 9

当 x = 5的时候,y =11,

那么将这两组数据带入方程y=ax+b,可以得到方程组

9 = a + b * 4

11 = a + b * 5

解这个方程得到 a =1 ,b = 2,不要告诉我这两个方程不会解,如果不会,我会怀疑你是不是人类了。 于是,我们得到了我们的线性回归模型:

y = x + 2

从这里我们可以知道,其实只需要2组数据就可以求得a和b的值,但是这样求出来的a和b,正确吗?肯定不是正确的啊。为什么呢?

我们线性回归的目的是求a和b的值,但是并不是通过解方程的方式来得到a和b。为什么呢?原因很简单,这样计算出来的值,对于 x = 4 的时候,y = 9,
x = 5的时候,y =11
的情况是非常好的,但是对于其他的已知数据,通过y=ax+b却不一定好。如下图,直线通过了2点,我们能说这条直线是通过这2个点解出来的。但是换2个点解方程,又能计算出不同的直线,这样通过任意2个样本点的直线又很多条,并不是我们要求的最优解。

我们有一组数据,如下:

x y
4 9
5 11
0.6-1 48
1-2 50
2-3 52

我们不可能得到一个方程,都满足上面所有的数据,方程满足第1,2条数据,却不满足第3,4条数据。所以,我们只能求尽可能使这些数据,带入方程,误差最小的解。也就是我们需要尽可能画出下面的直线:

上图红色的点,表示一个个样本,样本点表示实际观察中得到的真实数据。通过这些样本,我们总能设法找到一条尽可能接近所有样本(坐标点)的惟一直线y=a+bx 。 这条直线离所有样本点的距离之和最小。请反复读这句话,以准确理解。距离和最小:就是下一副图中,红色线段的长度和最小。

上面的讲解我觉得已经比较清楚了,如果不明白,请再看一遍。 Ok,对上面的那幅图有所理解后,后面就是一些稍微复杂一点的数学推理公式了。我们怎么计算最优的a和b呢?

如果对本课感到很疑惑,可以结合视频看哦,虽然有视频,但是我们还是希望您认真的把文字课程也看一看。

6、线性回归的公式推导,求系数a和b的值

我们把上面已知的一组数据:

x y
4 9
5 11
0.6-1 48
1-2 50
2-3 52

用xi,yi来表示。i表示第几组数据。那么上面的一组数据可以表示成:

x y
x1 y1
x2 y2
x3 y2
x4 y3
x5 y4

哈哈,这种用字母表示具体值的方法,就是数学中的抽象。

设ei为当x的值为xi时,样本数据yi与最终我们通过的算式(a+bxi)算出的值之间的误差。这句话高能,请反复读多次。最后用公式来表示ei,如下:

ei的意义已经很明确了,表示在下图的红色线段的差值:

怎样判断一条直线方程就是我们所要找的所有误差最小的那条直线y=a+bx 呢?可以考虑的办法有三: 1. 第一,判断所有误差的代数和是否最小。即: Σei =0 (注意,这里只是最理想的情况,实际上样本越多, ei基本上不太可能为0)。符号Σ读作佘格马,表示求和的意思。

假设有4组数据,Σei表示为e1 + e2 +e3 +e4。

那么e1 + e2 +e3 +e4是不是能够表示误差之和呢?答案是不可以的,为什么呢?我们接下来解释。

误差ei有正有负,可能相互抵消,例如

e1 = -1, e2 = 1, e3=1.5, e4=-1.5。那么e1+e2+e3+e4 =0,将e1、e2、e3、e4展开,得到如下的公式:

这里面a和b是未知数,整理这个表达式,我们可以得到

其中除了a和b,其他都是已知的系数。最终的等式可以精简为:

其中X为:

Y为:

现在问题来了,满足下面等式:

的a和b可以取无数的值,也就是最终的直线可以有无数种可能,我们无法找到唯一的一条直线,所以,我们的计算失败。

另外,值得思考的是,公式:

使用误差来进行加减,很可能会因为误差有正负,最终互相抵消。

7、使用误差平方来计算误差最小值

判断所有误差平方和是否最小。即使公式成立。这种方法能排除了正负误差的问题,

因此,可以根据误差的平方和是否达到最小,来判断直线方程y=a+bx的总误差是否达到最小。

根据上述理论,直线回归就是求能使成立的回归系数a和b的值。

由公式:

推理得到:

令上式等于0,计算出的a和b的值,就是我们最终要计算的值。

那有同学提出疑问了,为什么不可以用绝对值呢?下面是一个同学的提问:

如果我说这位同学在动脑筋,或者说这位同学问得很好,那么是不是太像老师在教育学生了呢?哈哈,所以,我不这样说。

这是因为:如果用绝对值,在柿子展开的时候,去掉绝对值符号的时候,需要根据正负来去掉绝对值,这样一个柿子会根据不同的正负条件被展开成多个柿子,那么后面的推导就麻烦了。

如果,你要问我为什么知道,因为,很多年前,我也有你这样的疑问,所以自己推导了一下,发现是不行的。

8、纯手工推导线性回归公式

为了说明清楚,我们自己手动推导了一次线性回归公式,用来计算a和b。

要看明白下面的推动,必须非常细心、耐心。我怎么感觉,大家看完这段话,就要放弃看下去了呢?哈哈,不要放弃,请自己照着这2幅图,自己来推导一下,我相信一定能够成功的。

如果确实有困难,请看视频吧,没办法,我们给你留了最后一条退路,希望您能了解我们的良苦用心。

9、线性回归公式

最终我们推导出的线性回归公式如下,其中说明了怎么求a和b的值: