线性模型之线性回归
线性回归(Linear Regression)主要思想
- 使用最小二乘法(least-squares)对数据拟合一条直线
- 计算R平方
- 计算R平方的P值
简单例子
使用最小二乘法计算小鼠体重与大小的线性关系,下图是直线的方程,最小二乘估计两个参数:y轴的截距和斜率。因为斜率不为0,这意味着知道一只老鼠的重量可以帮助我们预测它的大小。
下图中的黑线为平均值,我们计算数据点到平均值的距离,然后平方,然后相加。我们称之为离均差平方和,SS(mean)。SS的方差=SS(mean)/n,n为样本数。
现在回到最初的图,计算数据点到最小二乘法拟合曲线点的距离的平方和。我们称之为残差平方和,SS(fit)。残差的平均方差=SS(fit)/n,n为样本数。
下图的左图是小鼠的大小的变异(variance),右图是原始数据与回归曲线之间的变异,我们发现通过最小二乘法得到的直线的变异更小。我们说,老鼠大小的一些变化可以通过考虑老鼠的重量来“解释”。重的老鼠更大,轻的老鼠更小。R平方告诉我们老鼠大小的变化有多少可以通过考虑老鼠的重量来解释。
R平方的计算,R平方=60%,我们可以说老鼠重量“解释”了60%老鼠大小的变化。
我们可以用平方和来计算:
如果拟合曲线的变异是0,老鼠重量“解释”了100%老鼠大小的变化。
如果拟合曲线的变异很大,老鼠重量“解释”了0%老鼠大小的变化。当计算SS(mean)时,我们将点折叠到y轴上,只是为了强调我们忽略了老鼠重量的事实。我们可以画一条直线,y =老鼠体重的平均值,然后计算SS(fit)。此时SS(mean)=SS(fit)
在上面例子中,我们把R平方应用到一条直线的简单方程中,但这个概念适用于任何方程,无论它多么复杂。
- 计算SS(mean)
- 计算SS(fit)
复杂例子
假设我们想知道老鼠的体重和尾巴长度是否能很好地预测老鼠身体的长度,因此我们测量了大量老鼠。因为有体重、尾巴长度、身体长度三组数据,所以我们需要画一个三维图。现在我们做一个最小二乘拟合,我们拟合一个平面而不是一条直线。现在,如果尾部长度(z轴)是无用的,并且不会使SS(fit)变小,那么最小二乘将通过使参数=0而忽略它。在这种情况下,把尾巴的长度插入到等式中对预测老鼠的大小没有影响。这意味着参数更多的方程不会比参数更少的方程更适合SS(fit)。
换句话说:等式:老鼠大小= 0.3 +老鼠重量+硬币翻转+喜爱的颜色+星座+....,不会比等式:老鼠大小=0.3+老鼠体重 表现更差。这是因为最小二乘法将导致任何使SS(fit)变差的项被乘上0,从某种意义上说,它们将不复存在。
现在,由于随机的机会,有一个小的概率,在数据集中的小老鼠可能会比大老鼠更频繁地得到硬币头部朝上。如果出现这种情况,我们就会得到更小的SS(fit)和更好的R平方。我们在等式中添加的参数越多,随机事件就越有可能减少SS(fit)并产生更好的R平方。因此,人们报告一个“adjusted R2”值,本质上是根据参数的数量缩放R2。
R2很棒,但它缺了点什么?如果我们只有两个测量值呢?过两点有一条直线,此时R平方=100%,100%是一个很好的数字,但是任意两个随机的点都会得到同样的结果。我们需要一种方法来确定R2值是否具有统计学意义。计算p值。
计算p值
R平方主要概念:
计算F值:
现在我们已经彻底理解了R2背后的思想,让我们讨论一下计算p值背后的主要思想。R2的p值来自于F:。
分子:老鼠大小的可以用体重来解释的变异。分母:老鼠大小的可以用体重不能解释的变异
存在两个p(fit)=2,同理p(fit)=1,所以p(fit)-p(mean)=2-1=1
如果我们用老鼠的体重和尾巴长度来解释大小的变化,拟合曲线的自由度就是3,在“fit”中,分子是由鼠重量和尾巴长度解释的鼠大小的方差。
如果拟合的好,分子将会是一个很大的数字,分布将会是一个很小的数字,此时F是一个很大的数字。
下面是一组数据,我们计算出F值=2,然后在直方图中画出。
再来一组随机数据,重复以上步骤,我们会得到很多F值,绘制成直方图。X轴上对应的是F值,从左到右增大,F值越大,其得到得到的可能性越低,所以从左往右,F值的数量逐渐减少。
有一组原始数据,其F=6,p值是更极端值的数目除以所有的值。
你可以用一条线来近似直方图。在实践中,人们使用曲线来计算p值,而不是生成大量的随机数据集。对于F分布,自由度决定曲线的形状。红色和蓝色是两条不同自由度的F分布曲线,蓝色样本量更大,注意:当(n-p(fit)) = 10时,分布逐渐减小的速度更快。意味着,拟合曲线中的样本数目越多,p值越小。其实这也是F分布的原理。