写在前面的话 按照正常的顺序,本文应该先讲一些线性回归的基本概念,比如什么叫线性回归,线性回规的常用解法等。但既然本文名为《从一个R语言案例学会线性回归》,那就更重视如何使用R语言去解决线性回归问题,因此本文会先讲案例。
线性回归简介
如下图所示,如果把自变量(也叫independent variable)和因变量(也叫dependent variable)画在二维坐标上,则每条记录对应一个点。线性回规最常见的应用场景则是用一条直线去拟和已知的点,并对给定的x值预测其y值。而我们要做的就是找出一条合适的曲线,也就是找出合适的斜率及纵截矩。
SSE & RMSE
上图中的SSE指sum of squared error,也即预测值与实际值之差的平方和,可由此判断该模型的误差。但使用SSE表征模型的误差有些弊端,比如它依赖于点的个数,且不好定其单位。所以我们有另外一个值去称量模型的误差。RMSE(Root-Mean-Square Error)。
由N将其标准化,并且其单位与变量单位相同。
R2
在选择用于预测的直线时,我们可以使用已知记录的y值的平均值作为直线,如上图红线所示,这条线我们称之为baseline model。SST(total sum of squares)指是的baseline的SSE。用SSE表征模型好坏也有不便之处,比如给定SSE=10,我们并不知道这个模型是好还是好,因此我们引入另一个变量, R2 ,定义如下:
R2 用来表明我们所选的模型在baseline model的基础之上提升了多少(对于任意给定数据集,我们都可以用baseline作为模型,而事实上,我们总希望我们最后选出的模型在baseline基础之上有所提升),并且这个值的范围是[0,1]。 R2=0 意味着它并未在baseline model的基础之上有所提升,而 R2=1 (此时 SSE=0 )意味着一个一个非常完美的模型。
Adjusted R2
在多元回归模型中,选用的feature越多,我们所能得到的 R2 越大。所以 R2 不能用于帮助我们在feature特别多时,选择合适的feature用于建模。因此又有了Adjusted R2 ,它会补偿由feature增多/减少而引起的 R2 的增加/减少,从而可通过它选择出真正适合用于建模的feature。
案例
许多研究表明,全球平均气温在过去几十年中有所升高,以此引起的海平面上升和极端天气频现将会影响无数人。本文所讲案例就试图研究全球平均气温与一些其它因素的关系。
读者可由此下载本文所使用的数据climate_change.csv。