数学建模之局部线性回归方程

之前写过一元的和多元的线性回归,使用在预测模型上始终存在着欠拟合的缺点,这次我们打算用另外的方式来建立一套模型,使这个模型得到的效果会更好。

首先我们知道回归的一般方程组(这里的回归是广义上的包含线性的和非线性的)如下:

这里的变量都表示的是向量(如果对向量函数不理解的同学可以参考数学分析向量函数),我们假设其误差项是随机误差,且服从如上的正态分布,且随机误差和自变量(这里我们用数学中函数的定义)相互独立,所以我们得到回归方程假设的如下条件:

解释一下上述公式的意思,我们做出假设得到的方程组是正确的,所以随机误差服从正态分布,那么误差的均值为,方差(二阶矩)相同(注意这里的方差为了方便后面的表示是用各个误差项平方组成的向量乘以单位矩阵得到的),且不相关(相互独立的充分条件可知)

我们现在假设已经知道很多样本点,我们一般求回归方程的思路都是通过最小二乘法,那我们同样可以求如下权重公式:

一般情况下的回归方程我们求出来后,我们很快就可以通过代码实现这个算法过程,得到拟合这个超平面方程。

如下我们通过数据得到这样一组拟合直线

但是我们知道一般情况下我们做出的回归方程并不满足以上条件,我们知道有时候是误差项的方差并不满足线性模型,比如家庭收入和储蓄方面其误差项的方差会随着收入增加波动的很剧烈,这里我举一个例子:

如上图,假设当X1=5时,我们重复做很多次X1=5的试验,得到的误差项方差var(ε)=5,而当X1=6时,我们重复做很多次X1=6的试验得到的误差项方差var(ε)=7,那这个时候我们这样得出的模型肯定是不太准确的,而且我们发现一个惊人的事实,那就是随机误差在不同随机变量条件下具有相关性于是我们将上述假设条件放宽,我们为了纠正其误差项方差做出如下假设:

以上模型被称为广义线性模型,我们其中误差平方向量左乘一个n*n的正定对称矩阵为毛线一定要是正定的对称矩阵了?首先我们知道为了,为了纠正其方差在标准方差上的差异我们可以让局部不同的方差乘以一个常量,比如var(ε)=5要将方差改成7,乘以7/5就可以了,所以我们可以左乘一个对角矩阵,除了这原因我们还有数学推导上原因:

可以看到上述广义模型的各项系数值已经被我们推导出来了,实际上上述公式同样可以变回一般的线性回归模型是很容易的,两边同乘P的可逆矩阵就可以了

在线性回归模型中,如果某个东西越重要,那么相应的这个变量的绝对值系数也就越大,所以我们可以理解为这个系数也就是权重,不管这个权重正也好负也好,我们看到上述公式中的对角矩阵A是不是可以当成一权重了?如果这个系数比较重要那么A矩阵对应的值也比较大,同样的对应的方差波动也很大,有了这个理论后,我们就可以做一个模型叫做局部线性回归模型。

我们现在还有一个问题要解决, 这个权重怎样去衡量?我们知道KNN算法中有个思想叫做预测点和样本越近,那么这个预测点和样本同属于一类,我们同样可以运用这个思想,如果预测点和我们采集的样本的越近,那么这个样本点的权重也就越高,所以我们用远近来衡量,这个远近就可以用到核函数了,我们来看一下高斯核函数

可以看到这个效果很不错,我们就用这个函数,当然要适当的加入一个系数k,加入一个系数可以让我们去调整这个函数,使这个函数更加适用于模型:

好了,我们现在需要的数据就是样本点和测试点,首先我们来看看样本数据分布:

好了为了方便测试我假设样本数据和测试数据是一样的,我们来调整k的参数,看看不同参数下预测点的分布(注意我们加粗标红的这一段话)

K=1.0时(看到木有很神奇的一条直线):

K=0.1时(稍微有点弯曲):

K=0.03时(预测点和样本点已经很接近了):

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180902G11N7500?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券