-
这个应该上过高中的小伙伴都听过,也都用过,那是在高中必修3中出现的知识点,考试也是会考的,可能你想不起那个公式了,但你肯定依稀的记得
aˆ,bˆ
a^,b^这两个东西,还有这个方程
yˆ=bˆx+aˆ
y^=b^x+a^,通过这个方程来预测y的值,
aˆ,bˆ
a^,b^都有它们的计算方式,但是公式有点复杂,老师可能也说过一般试卷上会给,让我们在脑海来重温一下那个知识,这里先给出计算公式:
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪bˆ=∑i=1n(xi−x¯)(yi−y¯)∑i=1n(xi−x¯)2=∑i=1nxiyi−nx¯y¯∑i=1nx2i−nx¯2aˆ=y¯−bˆx¯yˆ=bˆx+aˆ
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧b^=i=1∑n(xi−xˉ)2i=1∑n(xi−xˉ)(yi−yˉ)=i=1∑nxi2−nxˉ2i=1∑nxiyi−nxˉyˉa^=yˉ−b^xˉy^=b^x+a^
公式够复杂,但是看着公式里面需要的参数来说其实也没有什么难度,其中公式中最重要的两个参数就是
x¯,y¯
xˉ,yˉ也就分别是x,和y的平均值,计算很简单.我们要学习一个东西既要知其然也要知其所以然,不妨我们从头来推导出这个公式:
-
首先我假设
x,y
x,y为两个具有线性关系的变量,而且我们经有了回归方程模型
yˆ=bˆx+aˆ
y^=b^x+a^,而且现在还有一组原始值(就是训练数据):
(x1,y1),(x2,y2),⋯,⋯,(xn−1,yn−1),(xn,yn)
(x1,y1),(x2,y2),⋯,⋯,(xn−1,yn−1),(xn,yn),现在我们要通过我们得到的这个模型来计算出预测值,通过想模型中填入训练数据的所有
xi
xi的值, 我们又可以得到一组预测数据:
(x1,yˆ1),(x2,yˆ2),(xn−1,yˆn−1),(xn,yˆn)
(x1,y^1),(x2,y^2),(xn−1,y^n−1),(xn,y^n),现在我们要来计算训练数据与真实数据之间的拟合度,如果我们利用下面这个公式来计算拟合度看看会发生什么:
λ=∑i=1n(yi−yˆi)
λ=i=1∑n(yi−y^i)
很明显这样是错误的,因为我们预测值和真实值的波动是上下波动的,也就是说误差值可正可负,那么如果我们只有两组测试数据,
y1
y1与
yˆ1
y^1 之差为 -5,
y2
y2与
yˆ2
y^2 之差为 +5,那么通过这个公式一计算你会发现误差为0,也就是说预测值和真实值是完全拟合的,但是通过我们人去看显然波动非常大.所以我们得改进一下公式变为这样:
λ=∑i=1n(yi−yˆi)2
λ=i=1∑n(yi−y^i)2
这样一来就算是负的误差通过平方后也会变成正的,所以在叠加时也不会出现正负抵消的情况了.
再推导线性回归方程前我们先来证明一上面求
bˆ
b^为什么可以这样变形,也就是下面两个等式为什么成立(因为这两个等式在推导线性回归方程时会用到):
-
等式一:
∑i=1n(xi−x¯)(yi−y¯)=∑i=1nxiyi−nx¯y¯
i=1∑n(xi−xˉ)(yi−yˉ)=i=1∑nxiyi−nxˉyˉ
证明:
将等式左边展开
=(x1−x¯)(y1−y¯)+(x2−x¯)(y2−y¯)+⋯+(xn−x¯)(yn−y¯)
=(x1−xˉ)(y1−yˉ)+(x2−xˉ)(y2−yˉ)+⋯+(xn−xˉ)(yn−yˉ)
=(x1y1−x1y¯−x¯y1+x¯y¯)+(x2y2−x2y¯−x¯y2+x¯y¯)+⋯+(xnyn−xny¯−x¯yn+x¯y¯)
=(x1y1−x1yˉ−xˉy1+xˉyˉ)+(x2y2−x2yˉ−xˉy2+xˉyˉ)+⋯+(xnyn−xnyˉ−xˉyn+xˉyˉ)
合并同类项:
=(x1y1+x2y2+⋯+xnyn)−(x1y¯+x2y¯+⋯+xny¯)−(x¯y1+x¯y2+⋯+x¯yn)+nx¯y¯
=(x1y1+x2y2+⋯+xnyn)−(x1yˉ+x2yˉ+⋯+xnyˉ)−(xˉy1+xˉy2+⋯+xˉyn)+nxˉyˉ
=∑i=1nxiyi−ny¯(x1+x2+⋯+xnn)−nx¯(y1+y2+⋯+ynn)+nx¯y¯
=i=1∑nxiyi−nyˉ(nx1+x2+⋯+xn)−nxˉ(ny1+y2+⋯+yn)+nxˉyˉ
∵
x¯,y¯
xˉ,yˉ分别代表所有变量x和y的平均值
∴原式
=∑i=1nxiyi−nx¯y¯−nx¯y¯+nx¯y¯
=i=1∑nxiyi−nxˉyˉ−nxˉyˉ+nxˉyˉ
=∑i=1nxiyi−nx¯y¯=
=i=1∑nxiyi−nxˉyˉ=等式右端
证闭
-
等式二:
∑i=1n(xi−x¯)2=∑i=1nx2i−nx¯2
i=1∑n(xi−xˉ)2=i=1∑nxi2−nxˉ2
证明:
将等式左边展开
=(x1−x¯)2+(x2−x¯)2+⋯+(xn−x¯)2
=(x1−xˉ)2+(x2−xˉ)2+⋯+(xn−xˉ)2
=(x21−2x1x¯+x¯2)+(x22−2x2x¯+x¯2)+⋯+(x2n−2xnx¯+x¯2)
=(x12−2x1xˉ+xˉ2)+(x22−2x2xˉ+xˉ2)+⋯+(xn2−2xnxˉ+xˉ2)
合并同类项
=(x21+x22+⋯+x2n)−2x¯(x1+x2+⋯+xn)+nx¯2
=(x12+x22+⋯+xn2)−2xˉ(x1+x2+⋯+xn)+nxˉ2
=∑i=1nx2i−2nx¯(x1+x2+⋯+xnn)+nx¯2
=i=1∑nxi2−2nxˉ(nx1+x2+⋯+xn)+nxˉ2
=∑i=1nx2i−2nx¯2+nx¯2
=i=1∑nxi2−2nxˉ2+nxˉ2
=∑i=1nx2i−nx¯2=
=i=1∑nxi2−nxˉ2=等式右端
证闭
-
推导线性回归方程:
有了前面两个等式现在我们就可以来推导回归方程的来龙去脉了.
证明:
∵
λ=∑i=1n(yi−yˆi)2,yˆ=bˆx+aˆ
λ=i=1∑n(yi−y^i)2,y^=b^x+a^
∴
λ=∑i=1n(yi−bˆxi−aˆ)2
λ=i=1∑n(yi−b^xi−a^)2
展开得:
λ=(y1−bˆx1−aˆ)2+(y2−bˆx2−aˆ)2+⋯+(yn−bˆxn−aˆ)2
λ=(y1−b^x1−a^)2+(y2−b^x2−a^)2+⋯+(yn−b^xn−a^)2
=[y1−(bˆx1+aˆ)]2+[y2−(bˆx2+aˆ)]2+⋯+[yn−(bˆxn+aˆ)]2
=[y1−(b^x1+a^)]2+[y2−(b^x2+a^)]2+⋯+[yn−(b^xn+a^)]2
=[y21−2y1(bˆx1+aˆ))+(bˆx1+aˆ))2]+[y22−2y2(bˆx2+aˆ))+(bˆx2+aˆ))2]+⋯+[y2n−2yn(bˆxn+aˆ))+(bˆxn+aˆ))2]
=[y12−2y1(b^x1+a^))+(b^x1+a^))2]+[y22−2y2(b^x2+a^))+(b^x2+a^))2]+⋯+[yn2−2yn(b^xn+a^))+(b^xn+a^))2]
=(y21+y22+⋯+y2n)−{[2y1(bˆx1+aˆ)−(bˆx1+aˆ)2]+⋯+[2yn(bˆxn+aˆ)−(bˆxn+aˆ)2]}
=(y12+y22+⋯+yn2)−{[2y1(b^x1+a^)−(b^x1+a^)2]+⋯+[2yn(b^xn+a^)−(b^xn+a^)2]}
=∑i=1ny2i−{[2y1(bˆx1+aˆ)−(bˆx1+aˆ)2]+⋯+[2yn(bˆxn+aˆ)−(bˆxn+aˆ)2]}
=i=1∑nyi2−{[2y1(b^x1+a^)−(b^x1+a^)2]+⋯+[2yn(b^xn+a^)−(b^xn+a^)2]}
=∑i=1ny2i−[(2bˆy1x1+2aˆy1−bˆ2x21−2aˆbˆx1−aˆ2)+⋯+(2bˆynxn+2aˆyn−bˆ2x2n−2aˆbˆxn−aˆ2)]
=i=1∑nyi2−[(2b^y1x1+2a^y1−b^2x12−2a^b^x1−a^2)+⋯+(2b^ynxn+2a^yn−b^2xn2−2a^b^xn−a^2)]
整理并合并同类项:
=∑i=1ny2i−2bˆ∑i=1nxiyi−2aˆ∑i=1nyi+bˆ2∑i=1nx2i+2aˆbˆ∑i=1nxi+naˆ2
=i=1∑nyi2−2b^i=1∑nxiyi−2a^i=1∑nyi+b^2i=1∑nxi2+2a^b^i=1∑nxi+na^2
整理得:
=∑i=1ny2i−2naˆ⎛⎝⎜⎜⎜⎜⎜∑i=1nyin−bˆ∑i=1nxin⎞⎠⎟⎟⎟⎟⎟−2bˆ∑i=1nxiyi+bˆ2∑i=1nx2i+naˆ2
=i=1∑nyi2−2na^⎝⎜⎜⎜⎜⎛ni=1∑nyi−nb^i=1∑nxi⎠⎟⎟⎟⎟⎞−2b^i=1∑nxiyi+b^2i=1∑nxi2+na^2
=∑i=1ny2i−2naˆ(y¯−bˆx¯)−2bˆ∑i=1nxiyi+bˆ2∑i=1nx2i+naˆ2
=i=1∑nyi2−2na^(yˉ−b^xˉ)−2b^i=1∑nxiyi+b^2i=1∑nxi2+na^2
合并同类项:
=n[aˆ2−2aˆ(y¯−bˆx¯)]+∑i=1ny2i−2bˆ∑i=1nxiyi+bˆ2∑i=1nx2i
=n[a^2−2a^(yˉ−b^xˉ)]+i=1∑nyi2−2b^i=1∑nxiyi+b^2i=1∑nxi2
通过完全平方公式,对方括号内的元素进行配方:
=n[aˆ2−2aˆ(y¯−bˆx¯)+(y¯−bˆx¯)2−(y¯−bˆx¯)2]+∑i=1ny2i−2bˆ∑i=1nxiyi+bˆ2∑i=1nx2i
=n[a^2−2a^(yˉ−b^xˉ)+(yˉ−b^xˉ)2−(yˉ−b^xˉ)2]+i=1∑nyi2−2b^i=1∑nxiyi+b^2i=1∑nxi2
=n[aˆ−(y¯−bˆx¯)]2−n(y¯−bˆx¯)2+∑i=1ny2i−2bˆ∑i=1nxiyi+bˆ2∑i=1nx2i
=n[a^−(yˉ−b^xˉ)]2−n(yˉ−b^xˉ)2+i=1∑nyi2−2b^i=1∑nxiyi+b^2i=1∑nxi2
展开第二项:
n[aˆ−(y¯−bˆx¯)]2−ny¯2+2nbˆx¯y¯−nbˆ2x¯2+∑i=1ny2i−2bˆ∑i=1nxiyi+bˆ2∑i=1nx2i
n[a^−(yˉ−b^xˉ)]2−nyˉ2+2nb^xˉyˉ−nb^2xˉ2+i=1∑nyi2−2b^i=1∑nxiyi+b^2i=1∑nxi2
整理一下:
=n[aˆ−(y¯−bˆx¯)]2+(∑i=1ny2i−ny¯2)−(2bˆ∑i=1nxiyi−2nbˆx¯y¯)+(bˆ2∑i=1nx2i−nbˆ2x¯2)
=n[a^−(yˉ−b^xˉ)]2+(i=1∑nyi2−nyˉ2)−(2b^i=1∑nxiyi−2nb^xˉyˉ)+(b^2i=1∑nxi2−nb^2xˉ2)
提取公因子:
=n[aˆ−(y¯−bˆx¯)]2+(∑i=1ny2i−ny¯2)−2bˆ(∑i=1nxiyi−nx¯y¯)+bˆ2(∑i=1nx2i−nx¯2)
=n[a^−(yˉ−b^xˉ)]2+(i=1∑nyi2−nyˉ2)−2b^(i=1∑nxiyi−nxˉyˉ)+b^2(i=1∑nxi2−nxˉ2)
代入等式一,等式二进行代换:
=n[aˆ−(y¯−bˆx¯)]2+∑i=1n(yi−y¯)2−2bˆ∑i=1n(xi−x¯)(yi−y¯)+bˆ2∑i=1n(xi−x¯)2
=n[a^−(yˉ−b^xˉ)]2+i=1∑n(yi−yˉ)2−2b^i=1∑n(xi−xˉ)(yi−yˉ)+b^2i=1∑n(xi−xˉ)2
合并变换:
=n[aˆ−(y¯−bˆx¯)]2+∑i=1n(yi−y¯)2+∑i=1n(xi−x¯)2⎡⎣⎢⎢⎢⎢⎢bˆ2−2bˆ∑i=1n(xi−x¯)(yi−y¯)∑i=1n(xi−x¯)2⎤⎦⎥⎥⎥⎥⎥
=n[a^−(yˉ−b^xˉ)]2+i=1∑n(yi−yˉ)2+i=1∑n(xi−xˉ)2⎣⎢⎢⎢⎢⎡b^2−i=1∑n(xi−xˉ)22b^i=1∑n(xi−xˉ)(yi−yˉ)⎦⎥⎥⎥⎥⎤
通过完全平方公式对最后一项配方:
=n[aˆ−(y¯−bˆx¯)]2+∑i=1n(yi−y¯)2+∑i=1n(xi−x¯)2⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪bˆ2−2bˆ∑i=1n(xi−x¯)(yi−y¯)∑i=1n(xi−x¯)2+⎡⎣⎢⎢⎢⎢⎢∑i=1n(xi−x¯)(yi−y¯)∑i=1n(xi−x¯)2⎤⎦⎥⎥⎥⎥⎥2⎫⎭⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪−[∑i=1n(xi−x¯)(yi−y¯)]2∑i=1n(xi−x¯)2
=n[a^−(yˉ−b^xˉ)]2+i=1∑n(yi−yˉ)2+i=1∑n(xi−xˉ)2⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧b^2−i=1∑n(xi−xˉ)22b^i=1∑n(xi−xˉ)(yi−yˉ)+⎣⎢⎢⎢⎢⎡i=1∑n(xi−xˉ)2i=1∑n(xi−xˉ)(yi−yˉ)⎦⎥⎥⎥⎥⎤2⎭⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎫−i=1∑n(xi−xˉ)2[i=1∑n(xi−xˉ)(yi−yˉ)]2
整理得:
λ=n[aˆ−(y¯−bˆx¯)]2+∑i=1n(xi−x¯)2⎡⎣⎢⎢⎢⎢⎢bˆ−∑i=1n(xi−x¯)(yi−y¯)∑i=1n(xi−x¯)2⎤⎦⎥⎥⎥⎥⎥2−[∑i=1n(xi−x¯)(yi−y¯)]2∑i=1n(xi−x¯)2+∑i=1n(yi−y¯)2
λ=n[a^−(yˉ−b^xˉ)]2+i=1∑n(xi−xˉ)2⎣⎢⎢⎢⎢⎡b^−i=1∑n(xi−xˉ)2i=1∑n(xi−xˉ)(yi−yˉ)⎦⎥⎥⎥⎥⎤2−i=1∑n(xi−xˉ)2[i=1∑n(xi−xˉ)(yi−yˉ)]2+i=1∑n(yi−yˉ)2
因为现在我们是要求
aˆ,bˆ
a^,b^所以不含有
aˆ,bˆ
a^,b^的项全部看做常数即可,那么等式可以变形为:
λ=n[aˆ−(y¯−bˆx¯)]2+t1⎡⎣⎢⎢⎢⎢⎢bˆ−∑i=1n(xi−x¯)(yi−y¯)∑i=1n(xi−x¯)2⎤⎦⎥⎥⎥⎥⎥2−t2+t3
λ=n[a^−(yˉ−b^xˉ)]2+t1⎣⎢⎢⎢⎢⎡b^−i=1∑n(xi−xˉ)2i=1∑n(xi−xˉ)(yi−yˉ)⎦⎥⎥⎥⎥⎤2−t2+t3
因为
λ
λ 为误差系数,那么越趋近于0表明拟合程度越好,即我们需要求:
min(λ)
min(λ)
然后根据方程可以知道,前两项都有平方,所以为非负数,所以前两项如果为0,那么
λ
λ 的值就能达到最小.所以解方程即可得到:
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪bˆ=∑i=1n(xi−x¯)(yi−y¯)∑i=1n(xi−x¯)2=∑i=1nxiyi−nx¯y¯∑i=1nx2i−nx¯2aˆ=y¯−bˆx¯
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧b^=i=1∑n(xi−xˉ)2i=1∑n(xi−xˉ)(yi−yˉ)=i=1∑nxi2−nxˉ2i=1∑nxiyi−nxˉyˉa^=yˉ−b^xˉ