StatQuest学习笔记21——逻辑回归

前言——主要内容

这篇笔记是StatQuest系列视频教程的第56小节,主要内容是逻辑回归(Logistic Regression)。

回顾线性回归

在讲逻辑回归之前,我们先回顾一下线性回归。

例如我们有一批数据,研究的是体重与小鼠的大小之间的关系,如下所示:

我们可以找到一条回归曲线,来研究这两者之间的关系,通过这条曲线,我们可以得到以下信息:

  1. 计算出${R}^2$,这个数值可以看出体重与大小之间的相关程度,数值越大,就越能表明这两者关系密切;
  2. 计算出p值,这个p值可以看出${R}^2$是否有统计学上的意义;
  3. 计算出这个曲线的方程,利用体重来预测小鼠的大小。

如下所示:

例如,我们有一个新的小鼠体重,如下所示:

通过这个点向做一条垂直于x轴(也就是体重)的直线,然后找到这个直线与前面回归曲线的交点,再通过这个交点做一条平行于x轴的直线,与y轴交叉的地方就是小鼠的大小,如下所示:

这种用某个数据预测另外一个数据的方法其实就是机器学习的范畴了,如下所示:

现在我们再回顾一下多元线性回归,现在我们利用体重(weight),血量(blood volumne)来预测小鼠的大小(size),如下所示:

多元线性回归的计算与二元线性回归的计算一样,计算出${R}^2$,再计算出${R}^2$的p值,然后利用线性回归的方程通过体重和血量来预测小鼠的大小,如下所示:

此外,我们还提到了通过不同的检测指标,例如表型(genotype)来预测小鼠的大小,如下所示:

现在我们比较一下二元线性回归与多元线性回归,如下所示:

通过比较这两种线性回归,我们知道,如果我们使用更多的变量(例如在多元线性回归中,我们添加了血量这个变量)来预测大小,结果会更加精确,如下所示:

逻辑回归简介

现在要学习另外一种回归,就是逻辑回归。逻辑回归与线性回归比较类似,如下所示:

逻辑回归预测的结果并不是具体的某个数据,而某个结果是True还是False,如下所示:

例如,在上面的案例中,有9只小鼠,最上面的5只小鼠是肥胖小鼠,下面的4只小鼠是非肥胖型小鼠,如下所示:

此时,我们要找一条曲线来拟合这些数据,不过这条曲线与线性回归的直线不同,它是S型的,如下所示:

其中纵坐标的范围是0到1,如下所示:

这就说明,我们最终计算的结果是一个概率,就是由小鼠的体重来预测这个小鼠是否是肥胖小鼠的概率,如下所示:

如果一个小鼠的体重很重,如下所示:

那么,通过这个点做一条垂直于横坐标的直线,与逻辑回归的曲线相交,我们就可以发现,这个小鼠有很大的概率是肥胖小鼠,如下所示:

如果一个小鼠的体重处于中间地带,如下所示:

那么这只小鼠可能只有50%的可能性是肥胖小鼠,如下所示:

如果一只小鼠的体重很小,那么它就不太可能是肥胖小鼠,如下所示:

虽然逻辑回归会告诉我们一只小鼠是否是肥胖小鼠,但是逻辑回归在多数情况下,是用于分类的,如下所示:

同理,如果一只小鼠是肥胖小鼠的概率是50%,那么我们就会把它归于肥胖小鼠这一类,否则,我们会把这只小鼠归于非肥胖小鼠这一类,如下所示:

逻辑回归简单案例

现在我们来看一个逻辑回归的简单案例,在这个案例中,我们使用小鼠的体重来预测是否是肥胖小鼠,如下所示:

我们还有可能会涉及一个更复杂的案例,例如通过体重和表型来预测小鼠是否是肥胖小鼠,如下所示:

或者是更加复杂的案例,例如使用体重,表型,年龄来预测小鼠是否是肥胖小鼠,如下所示:

或者说,还要复杂,例如通过体重,表型,年龄,星座(astrological sign??)来预测小鼠是否是肥胖小鼠,如下所示:

换句话说,逻辑回归与线性回归相同之处在于,逻辑回归也可以使用连续型变量(例如体重与年龄),,与离散型变量(例如表型与星座)来进行计算,如下所示:

我们还检测一下每个变量是否能够用于预测小鼠是否是肥胖小鼠,如下所示:

但是,逻辑回归与线性回归不同,我们不太容易比较复杂回归与简单回归,如下所示:

相反,我们不会直接比较复杂回归与简单回归,而是通过Wald方法检验一下,一个变量是否能够对预测结果产生明显的影响(与0相比),如果这个变量对预测结果没有什么影响,那么此变量就无法为预测提供相应的信息,这种如下所示:

如果我们检验了这些变量的话,那么我们就发现,星座这个变量对预测小鼠是否肥胖没什么帮助,如下所示:

这就说明,我们在计算逻辑回归的方程时,就可以不使用星座这个变量,从而节省时间与空间,如下所示:

逻辑回归使用连续型变量和离散型变来来计算概率,它能对一个新的样本进行分类,这是一种常用的机器学习方法,如下所示:

线性回归与逻辑回归的一个最大的区别在于,如何找到一条拟合这些数据的曲线,如下所示:

在线性回归中,我们通常使用最小二乘法来寻找拟合这些数据的曲线,如下所示:

换句话说,我们找到的这条曲线,每个点到这条曲线的距离平方和(残差)最小,如下所示:

我们还要利用残差来计算${R}^2$,用于比较简单线性回归与复杂线性回归,如下所示:

逻辑回归没有线性回归中“残差”的概念,因此,我们无法使用最小二乘法来计算曲线,也无法计算${R}^2$,如下所示:

计算逻辑回归曲线方程的方法是“最大似然法”,如下所示:

最大似然法以前讲过,在这里,只是用一种比较简单粗糙,不严谨的语言来描述一下。

首先,把小鼠的体重经过缩放(scaled),先拟合出一条曲线,此时,这条曲线只是初步的一条曲线,不是最终的曲线。找到第1只小鼠(这只小鼠是非肥胖小鼠)的体重在这条曲线上对应的概率,如下所示:

此时,计算一下这个非肥胖小鼠(也就是第1只小鼠)与这条曲线上小鼠对应的概率的相符的似然性(likelihood),如下所示:

然后,再找到第2只小鼠在这条曲线上对应的概率,以及计算第2只小鼠与这个概率的似然性,如下所示:

所有的小鼠都这么计算,如下所示:

最终,把这些小鼠的所有似然性都相乘,就是这条曲线与这些数据的似然性,如下所示:

此时,我们已经计算了第1条曲线了的似然性了,此时,还转换一下曲线,计算这条新的曲线的似然性,如下所示:

还有第3条曲线,也是如此计算,如下所示:

最终,我们会通过极大似然法找到最适合的这条曲线,如下所示:

现在总结一下,逻辑回归是用于对样本分类的算法,如下所示:

它可以使用不同的数据类型(例如大小和表型)来对数据进行分类,如下所示:

这种方法还可以用评估哪些变量可以用于分类(例如星座就无法用于分类),如下所示:

总结

上面只是一种非常精浅的逻辑回归的描述,并没有涉及到如何计算,如果看结果。如果真正要运用的话,还需要看其他的统计学书籍。