机器学习入门(4)| 一般线性模型

健康   2024-11-08 07:52   浙江  

引言

现在网上有很多机器学习的课程,其中不乏一些大咖课程,非常经典。

但他们的授课对象一般是具有一定基础的专业人士,不少学友表示,课程深奥,需要反复琢磨。

为此,老郑邀请了熟悉该方法的老师,用更加浅显易懂的方式为我们讲解机器学习的常用方法,让没有基础的人也能看懂!

今天是系列文章的第4篇:监督学习模型中的一般线性回归模型。

一般线性回归模型是监督学习模型中模型形式较为简单,易于理解和解释的。

事实上,该模型也属于传统统计模型,针对的是结局变量为连续型的数据的分析。

在研究中该模型一般被用来推断变量之间的定量关系,提供一个变量对另一个变量的影响大小的直观理解。

接下来,我们将通过案例结合R代码模型介绍该模型的应用并说明模型的优缺点。

一般线性回归模型包括简单线性回归模型和多变量线性回归模型
  • 简单线性回归模型也叫直线回归模型,用来描述两个变量之间的直线关系;
  • 多变量线性回归模型是以一个变量作为因变量,两个及以上变量为自变量的线性回归模型。

这么说可能没有那么直观,我们通过具体例子来理解它们。

简单线性回归模型(直线回归模型)

案例:在一个全部是套房的小区中,想要了解住房面积和房屋售价的定量关系,我们从小区中随机抽了100套房子,记录它们的房屋面积和房屋售价。

这里我们用模拟数据来演示,住房面积和房屋售价的数据生成代码如下:

> set.seed(123)> mianji <- runif(100,80,150)> jiage <- 1.5*mianji+rnorm(100,0,5) #可以看到面积每变化1个单位,房屋售价平均变化1.50万> data <- data.frame(mianji,jiage)

接着我们在坐标系中绘制出这100套房子的面积和售价的散点图,直观了解两者之间的关系。

代码如下:

> library(ggplot2)> ggplot(data, aes(x = mianji, y = jiage)) +> geom_point(color = 'blue') +> labs(title = "", x = "住房面积(平米)", y = "房屋售价(万元)") +
> theme_bw()

图1  住房面积和房屋售价的散点图

从图1可以看出,房屋售价和住房面积是呈正相关的,并且似乎用一条直线就能基本刻画出它们之间的数量依存关系。

我们也可以尝试在图上,用这样的直线来刻画它们之间可能的关系。

图2  利用直线刻画住房面积和房屋售价之间的可能关系

从图2看到这样的直线可以有很多条,这里画出三条,但这些直线的形式都可以用一个关系式来表示:

其实该式就是简单线性回归模型的模型形式。在公式中,

  • x表示自变量,在本例中是住房面积变量;

  • μ表示当自变量x固定式时,因变量y的模型期望值,在本例中是房屋售价变量的期望值;

  • 是模型系数,是截距,是斜率,表示x改变一个单位时,y的平均变化量。

√那么如何从这些可能的直线中找到相对最优的直线呢?

这里我们就需要引入残差ε的概念。残差ε的计算公式为:

表示因变量的实际值y和因变量的模型期望μ之间的差距。

我们可以在下面的图片,更直观得看到残差ε的表示图。

图3 残差的表示图

我们在用直线拟合这些数据的时候,必然是希望各个点的残差越小越好,但因为要考虑所有数据点,所以我们的目标是希望总的残差最小

考虑到各个点的残差有正有负,因此通常取所有点的残差的平方和

最小时的直线作为相对最优的直线,这种确定方式就是著名的“最小二乘法”,这也是R中lm( )函数估计线性回归模型系数的默认方法。式中表示第个数据点,n表示数据点总个数。

我们在R中进行模型拟合,得到模型的相关信息。

> fit_lm <- lm(jiage~mianji,data)> summary(fit_lm)

结果如下:

结果中我们最关注的一般是自变量系数的估计值本例约为1.49,基本等于真实值1.50,并且可以看到的假设检验结果P<0.001,表明住房面积和购房价格之间的相关性是具有统计学显著性的,也就是说由于偶然因素导致出现这种联系的可能性很小。同时也可以看到截距项的估计值约为0.47。因此房屋售价和住房面积之间的关系可以表示为:

通过这样一个简单的表达式,就基本可以准确描述房屋售价和住房面积之间的定量关系。

多变量线性回归模型

继续思考这样的一个问题:如果这个小区中既有套房又有别墅这两种房屋类型,别墅的住房面积明显要比套房大,并且买别墅要收额外的管理费,那么可以直接用简单线性回归模型估计该小区住房面积和房屋售价之间的定量关系吗?
我们同样用模拟数据来演示,房屋类型、住房面积和房屋售价的数据生成代码如下:

> set.seed(123)> bieshu <- rbinom(100,1,0.3)> mianji <- runif(100,80,150)+100*bieshu> jiage <- 1.5*mianji+75*bieshu+rnorm(100,0,5) #可以看到面积每变化1个单位,房屋售价平均变化1.5万> data <- data.frame(bieshu,mianji,jiage)
模拟数据中住房面积对房屋售价的单位真实影响大小依然为1.50
我们在坐标系中绘制出这100套房子的面积和售价的散点图。

图4 小区中同时有套房和别墅的情况下住房面积和房屋售价的散点图

如果我们直接用直线回归模型来拟合数据,我们得到以下关系式:
住房面积对房屋售价的单位影响大小的估计值为2.12,明显大于真实值1.50。
结果表明这种情况下用直线回归模型来分析住房面积和房屋售价之间的关系是不合适的。因此我们要控制住房类型对房屋售价的影响才能得到住房面积和房屋售价之间的真实关系。
实现上述效果的一种方式是利用多变量线性回归模型进行分析。多变量线性回归模型的模型形式为

在式子中,m≥2表示自变量个数;为截距,称为偏回归系数,偏回归系数的含义是在除以外的其它自变量取值固定的情况下,改变一个单位时因变量y的平均变化量。
我们将房屋售价作为因变量,将住房面积和房屋类型作为自变量构建多变量线性回归模型,模型形式为

通过软件进行模型拟合,模型系数的估计方式依然为最小二乘法。
> fit_mlm <- lm(jiage~mianji+bieshu,data)> summary(fit_mlm)
结果如下:
结果显示房屋面积的偏回归系数估计值约为1.50,几乎等于真实值1.50,并且这种联系具有显著性。同时也可以看到截距项的估计值和房屋类型的偏回归系数估计值分别约为-0.2275.19因此三者的关系式为
可以看到通过多变量线性回归模型分析,我们得到了房屋面积和房屋售价之间准确的定量关系。

本文通过例子,结合R代码给出了简单线性回归模型和多变量线性回归模型的应用并说明了模型系数的估计原理,希望对大家的模型理解有帮助。

√最后,我们总结下一般线性回归模型的优缺点。

优点

1.简单易懂:模型形式直观,易于解释自变量与因变量之间的关系。

2.计算效率高:模型计算速度快,适用于大规模数据集。

3.假设检验:可进行假设检验和置信区间估计,提供统计显著性的信息。

缺点

1.线性假设:假设自变量与因变量之间关系是线性的,很多实际数据可能不满足这一要求。
2.敏感性:对异常值和多重共线性敏感,可能影响模型稳定性。

3.残差假设:要求残差独立同分布,且具有常数方差,若不满足可能影响结果准确性。

4.需要人为指定模型具体形式:无法自动捕捉非线性关系等,当自变量间关系较复杂时,例如存在较多交互项、非线性项,正确指定模型的形式将十分困难。

今天的文章就介绍到这里,下一篇我们将继续讲解线性回归模型中的对数几率回归模型!大家敬请期待!


关于郑老师统计团队及公众号

全国最大的线上医学统计平台,专注于医学生、医护工作者学术研究统计支持,我们是你们统计助理!

我们提供以下科研与统计服务:
研究者发起的临床、护理试验项目
医院回顾性数据分析与预测模型
医学数据库SEER、NHANES、GBD、孟德尔随机化等挖掘发表级数据
预测模型、GBD、NHANES医学数据库挖掘1对1R语言指导
联系助教小董咨询(微信号aq566665

医学论文与统计分析
本号为高校统计学老师所设,介绍医学论文进展与统计学方法,SPSS分析方法、真实世界研究、R语言与数据挖掘。关注后,发送关键词“33”到公众号就可以获取常见的统计软件比如Spss,sas,PASS(绝对无毒)等
 最新文章