0
对于机器学习/数据科学的研究者而言,回归分析是最基础的功课之一,可以称得上是大多数机器学习/数据科学研究的起点。
本文作者 Kevin Hannay 是一位从生物学跨界到数学、数据科学的研究者,而他之所以选择“跨界”的原因便是数学学科能够让他脱离死记硬背的苦海,完全以像回归分析这样的方式来推导结论。
在他看来,基本上所有的问题都能够用回归分析的思维来解决。他认为,在机器学习/数据科学的模型创建中,应该从停止死记硬背开始,而更多地借用回归分析的思维。
相信他的分享能够给大家一些启发,下面来看他的分享:
我记性很差。
在大学,我的“初恋”是生物学,但最终我被这些课程拒之门外,因为它们强调记忆。后来我对数学这门学科“一见钟情”,因为我不必死记硬背任何知识。数学的魅力在于它关注我们以何种方式得出结论,如果自己不能证明一个结论,那就说明你还不理解它。
出于某种原因,统计学仍然经常通过列出各种场景中应用的检验来授课。例如下图所示的复杂流程图和更加具体的统计检验。
检验平均数假设的统计流程图
这会导致统计检验的混乱和误用。不过没关系,因为我将给大家带来一个好消息。基础统计学可以分为三个部分来阐释:采样、置信区间和回归。
对于有数据科学和/或机器学习背景的人来说,这是个好消息。由于回归是大多数机器学习研究的起点,这意味着你可能在还没意识到的情况下,就已经在做统计假设检验了。
在本文中,我将通过举例说明如何从回归的角度来考虑常见的统计检验,从而集中讨论统计检验的最后一步。
在线性回归中,我们建立特征x和响应变量y之间关系的线性模型。
这个模型具有统计学意义,因为被设为随机参数。
普通最小二乘法(OLS)中噪声项假设为正态分布
这是一个数学模型,这也是一种精确表示我们对数据集进行假设的方法。每当我们建立一个模型时,记住George Box这句名言大有裨益:
所有模型都是错的,但其中有一些是有用的。(All models are wrong, but some are useful)
模型是对现实世界复杂性的抽象和简化,正因为是一种简化,所以模型总是不能完全反映现实问题,但利用它们可能捕捉到一些重要的想法。
让我们先看一个1991至2018年 NBA选秀的数据集案例。我们可以看看选秀次数和每场比赛平均职业积分之间的关系,下面的散点图以及数据的最佳拟合回归线显示了这一关系。
1991-2018年737个NBA球员的选秀次数及其职业场均得分(PPG)平均值的线性回归分析
注意,这些点随机抖动以避免在散点图上重叠
最佳拟合回归方程如下:
最佳拟合线性回归模型
线性回归的最佳拟合通常是通过最小化残差项的平方来实现的。
N个数据点的线性回归成本函数
这里我不再讨论成本函数的实际最小化原理。可以说,利用线性代数的一些技巧,能够很快找到此成本函数的全局最小值,这为我们提供了一些最佳的斜率和截距拟合参数。
我们也可以对本质上是分类的特征进行回归,这里的诀窍是对分类变量进行所谓的独热编码,其思想是将分类级别转换为指标变量()。如果输入属于指定的级别,则这些值为 1,否则为 0。
例如,对于NBA选秀数据,可以将“选秀号码”列拆分为乐透区选秀(≤14)和非乐透区选秀(NL)。
然后我们可以找出这两组球员每场平均分的差异。
编码回归模型,如果不是乐透区方式指标变量为0,否则为1
下面是显示回归线的数据图。
斜率项 β 反映了每场比赛中非乐透区选秀(x=0)和乐透区选秀(x=1)之间的平均分差异。这里的小幅上升趋势意味着,我们有证据表明乐透区选秀者在职业生涯中的平均分数往往更高。
当然,这一趋势分析是基于随机抽样的球员,所以如果我们收集了一个新的样本,这种上升趋势可能会消失。为了解决由于随机采样而引起的这种变化,我们可以形成斜率的置信区间。
对于上面的乐透区选秀示例,我们找到以下参数置信度为95%的置信区间:
这告诉我们,乐透区选秀球员职业 PPG 减去非乐透区选秀球员的职业PPG,其平均值可能在3.48到4.78之间。这使我们对结果的趋势(正)和结果的大小(3.5-4.8点)都有一个了解。
我们可以看到斜率区间不包含0,这说明如果重新采样数据,不太可能看到这种趋势的逆转。如果将置信水平从95%提高到99%,将看到置信区间的间隔宽度增加。为了减少错误,需要更大范围的置信水平值。
我们可以玩增加置信区间的置信水平(100-p)%的游戏,直到区间的左侧刚好达到0,此时的参数值叫做p值。
零假设斜率为零的p值可以通过稳定增加置信区间的宽度,直到接触零假设区域确定
P值给出了原假设为真(即Ho:β=0)时观察数据的概率P(D|Ho)。
在某些情况下,我们可能只关心结果的趋势,而不关心结果的大小,这属于双样本 t 检验的统计检验范畴。在基础统计学课程中,我们学过使用双样本t检验来评估这两种条件下收集的数据,以证明平均值的差异:控制组和实验组。
为了在 R 语言中执行这个检验,首先要从相当大的选秀数据集中创建一个较小的数据集。下面的命令只生成包含100个球员的随机子集供我们比较,还在数据集中创建一个乐透区列以便进行良好的计算。
设置两个组进行双样本t检验,使用相同的随机种子值可以得到与我一样的结果
现在已准备好用R语言运行 t 检验。
进行双样本t检验以寻找乐透区和非乐透区选秀的NBA球员的每场比赛平均职业积分的差异
现在注意结果中的 p 值,这里相对较小的值表明,在原假设的情况下数据不太可能达到P值。
现在,将其作为具有分类特征的线性回归进行检验。
下面将用R语言显示简单线性回归的summary命令结果。
上面已经强调了重要的一点,将其与我们使用双样本t检验得到的结果进行比较,t值(直到符号)和p值是一样的!
另外,使用R语言查看回归的summary结果时,注意到summary结果的最后一行重复了相同的p值,这是在整个回归模型上运行 F 检验的结果。
通过检验,可以知道模型中的任何特征是否在统计学意义上偏离零。在这个简单的例子中只有一个特征,因而基于模型的F检验和基于乐透区特征的T检验等价,但两者在多元回归(超过1个特征)中将有所不同。
假设我们想评估球员位置对他们职业平均得分的影响。首先,我们应该清理数据集中位置列的级别。
使用R中的forcats包清理位置(Pos)列的级别,这里把一些类别合并在一起,得到C,F,G作为位置
然后,我们可以绘制按位置划分的职业得分箱形图:
位置对NBA球员职业得分影响的箱形图
我们可能想知道这些组的均值是否确实不同,或者观察到的差异是否也可以通过抽样误差来解释。在经典统计中,我们通常会进行单向方差分析(方差分析)。利用R语言很容易实现:
利用R语言做方差分析,注意p值在最右边且p=0.0813
现在也可以将其作为回归问题来处理,回归模型有以下形式:
通过α截距值可以得知中心的平均值,通过两个斜率可以得知相对于中心值的点。
以上操作在R语言底层完成,下面是输出:
雷锋网雷锋网
比较回归输出和方差分析输出中的最后一行(F检验),我们再次看到同样的结果!
由此得知单向方差分析只是具有两个以上级别分类特征的线性回归模型。使用的检验有一个原假设,即所有斜率都为零。
在双因素方差分析中,使用两个分类特征来预测连续响应变量。
使用Tm(选秀团队)列和Pos(位置)列来处理选秀数据集,双因素方差分析需要更多的数据来拟合模型,因此我们将使用完整的数据集,而不是经过删减的数据集。首先运行下面的两个命令来清理两个分类特征级别。
利用forcats包清理整个选秀数据集的团队列和位置列
在这种情况下,线性模型的形式是:
第一个总和是虚拟编码的团队变量叠加形成,第二个总和是位置类别叠加形成,上述结果很好地在R语言底层完成,要进行分析,我们可以使用以下方法构建线性模型:
建立双因素方差分析线性模型
这里唯一的变化是应该在模型上使用anova( )命令,而不是通常的summary( )命令,这将显示以下结果:
Tm和Pos所在行的数据证实了位置与职业积分有密切关系,但没有足够的证据证明团队与职业积分有关。现在可以看到如何使用多元回归进行多因素方差分析。
如果在回归中添加一个连续的特征,那么就会变成协方差分析(ANCOVA)。进行协方差分析的目的是,已知位置与NBA球员的PPG相关性大,但是这可能只是因为某些位置的球员比其他位置的球员的上场时间更多。
可以通过在模型中包含此特征来控制上场分钟数的作用效果。首先,重新缩放上场分钟数(MP)列,使平均值为零,标准差设为1。这样设置的目的是,因为线性模型中的截距会给平均每场比赛0分钟的中锋带来职业PPG,在其他方面真的没有作用。
现在,通过截距信息可以解释每场比赛中平均上场时间的中锋的平均PPG含义。也许只能解释一小部分,但对于模型理解更有意义。
缩放“上场分钟数”列
这是一个比赛时间和每场得分之间的关系图,位置以颜色显示。
现在来建立线性模型:
将产生以下结果:
通过第一行数据可以得知即使在控制了上场时间后,位置对职业PPG也有着统计上的显著影响。
我们也可以将其他基本的统计过程表述为回归。然而,我们还需要利用所谓的广义线性模型(GLM)来进行更进一步的研究。
首先要生成一个伪数据集。下面的命令生成一个R数据框,用于存储假想比赛的罚球结果和球员姓名,其中球员A和B各投100个罚球。
球员B的命中率仅为77%,而球员A的命中率则为80%,尽管这有抽样误差。可以使用R语言中的table命令查看随机绘制的结果:
这里可能需要进行两个样本的比例检验,以检验两位球员百分比不同的假设。
可以使用R语言中 prop.test 命令完成检验。
用R语言进行双尾比例检验的结果,这里简单地使用两个比例相等的原假设进行检验,也可以作为具有相同p值的卡方检验来完成。
现在是回归方法,如上所述,由于响应变量不再是连续的,需要调整回归来处理二进制输出。实际上,我们希望模型产生一个概率。
这里可以使用逻辑回归来实现,通常的回归形式是:
在逻辑回归中,输出应该给出给定特征时取值是1的概率。如上所述,我们会有疑问,因为模型的右侧输出范围的值,而左侧应该位于[0,1]范围内。
因此,要使用上述模型就需要将输出从[0,1]转换为整个实数R范围。logit 函数是最佳选择,因为它的逻辑回归映射为:[0,1]→R。
因此,如果输出是由logit函数产生的,可以使用多元回归技术。这是逻辑回归的基本思想:
最后,可以利用logit函数的倒数,得到实际的概率:
其中,通过以下方式给出:
逻辑回归是广义线性模型(GLM)一系列技术中的一个实例。广义线性模型包括一个线性预测函数
和一个将线性预测函数映射到响应变量的链接函数g( ):
这用R语言很容易实现,只需将lm( )函数改为glm( )函数,并指定要使用的链接函数。
使用logistic回归和模型比较进行两样本比例检验,注意p值与上面得到的结果相匹配
在上述情况下,我们实际拟合了两个逻辑回归,第一个是实际想要建立的模型,第二个与双样本比例检验的原假设等价。仅拟合截距(〜1以上),两个球员的罚球百分比必须相同。
然后使用anova( )函数来比较建立的模型和原假设模型,指定方差分析使用似然比检验(LRT)。当然,通常要注意取与上面的比例检验相同的p值。
另外,通过这个例子展示了如何使用回归模型和anova命令来进行模型选择。实际上,这是我们一直努力的方向,因为原假设一直是一个模型,以前不需要在anova命令中指定它,这也向我们展示了如何开始将建立的模型与更复杂的原假设模型进行比较。
通过模型选择可以比较模型并超越普通的原假设模型。
数学模型自然级数的花式图解如下所示:
RIP模型,让此成为研究深度学习的警示!
当我们被迫将统计检验视作数学模型时,假设就成为了最核心的部分。研究者所希望的,是能在模型生命周期的前两个阶段维持更长的时间。而且,这就意味着我们可以停止记忆一堆统计检验知识。
创建模型,从停止死记硬背开始。
大家如果想继续学习该主题,强烈建议查看 Jonas Lindeløv 的网站:
https://lindeloev.github.io/tests-as-linear/
教科书方面,我推荐《Statistical Rethinking》,另外基础统计学类的书籍,大家可尝试阅读下《All of Statistics》;而一些更高级的回归分析方面的书籍,我建议大家关注一下Gelman和Hill两位学者。
via https://towardsdatascience.com/everything-is-just-a-regression-5a3bf22c459c?gi=fdba1e4d53ca 雷锋网雷锋网雷锋网
雷峰网原创文章,未经授权禁止转载。详情见转载须知。