译者 钱亦欣
基于最小二乘法的线性回归是你在学习数据科学和机器学习时最先遇到的模型之一,它不仅简单易懂,还能在很多问题中发挥作用,并且已经集成在了很多种编程语言之中。大部分用户对R语言中的lm()函数肯定不陌生,它让你能简易而快速地拟合一个线性回归模型。然而,这个函数并不现实参数估计和很多检验统计量的计算过程,所以本文就打算手把手地计算实现线性回归模型的参数估计。
本文中,我只会使用矩阵、向量和矩阵操作符来获得参数估计(基于最小二乘法的线性回归模型的参数估计有解析表达式)。在读完本文之后,你会发现自己动手也很简单,并且你可以把这个过程套用在任何数据集之上(尽管使用lm()函数会更快更稳健)。
我将使用MASS包中大名鼎鼎的Boston数据集作为例子,它包含了14个关于经济,地理和人口方面的变量,一共有506个观测值。每个观测代表1990年代波士顿某个地区的特征。我们的被解释变量将会是每个地区的房价的中位数,对应列名是'medv',让我们先看看数据集长什么样:
library(MASS)
str(Boston)
## 'data.frame': 506 obs. of 14 variables:
## $ crim : num 0.00632 0.02731 0.02729 0.03237 0.06905 ...
## $ zn : num 18 0 0 0 0 0 12.5 12.5 12.5 12.5 ...
## $ indus : num 2.31 7.07 7.07 2.18 2.18 2.18 7.87 7.87 7.87 7.87 ...
## $ chas : int 0 0 0 0 0 0 0 0 0 0 ...
## $ nox : num 0.5