回归分析第16讲——稳健回归模型
通过前面的学习,我们已经了解了各种经典回归模型的架构。然而,无论哪种回归模型,都存在一个问题:对数据集中的异常值过于敏感。如果数据集中出现了异常值,就会使得回归平面向异常值偏移,造成拟合偏差。你或许想把这些异常值剔除掉,但是在实际应用中,有些异常值是真实观测值而非仪器、人为等原因造成,这些点不能简单剔除,否则会影响模型的泛化性。因此,我们需要在不改变模型结构的情况下使得模型能够“容忍”异常值,削弱异常值对回归平面的影响。这就是本讲要介绍的稳健回归(Robust Regression)模型。 泛化性(Generalization),是指已完成训练的模型在遇到没有见过的新数据时也能够表现出良好的能力,这是所有模型都希望做到的一点。如果模型对异常值的容忍度很差,那么在遇到新数据时表现就会很差,即出现很大的预测误差。 本讲中,我们先补充稳健统计的预备知识,之后再介绍一些常见的稳健回归模型。 一、稳健统计简介 1.1 稳健统计量的概念 稳健(Robustness),是指统计量在遇到异常值时仍然能够保持精度(Precision)和准度(Accuracy),而不会因为异常值的出现使得统计量...
回归分析第15讲——连续正值型回归模型
在这个系列中,我们一开始学习的是一般的线性回归模型,它处理的是连续的实数值;到后来我们又学习了逻辑回归模型和泊松回归模型,使得我们可以处理离散的正值。最后还剩一种情况我们没有讨论,就是连续的正值,也就是说,响应变量只能取大于0的连续实数。要处理这一类响应变量,我们需要引入新的分布和模型。 注意,本讲我们只介绍相应的分布以及回归的拟合方法,对于模型的检验和诊断方法与之前的内容完全一致,这里不再反复叙述。 一、Beta回归 1.1 Beta分布 要讲清楚Beta回归,首先要了解Beta分布。 Beta分布要从二项分布开始说起。我们已经知道,如果随机变量XXX服从二项分布,即X∼B(n,π)X\sim B(n,\pi)X∼B(n,π),那么其概率质量函数可以写作: Pr(X=x)=Cnxπx(1−π)n−x\Pr(X=x)=C_n^x\pi^x(1-\pi)^{n-x} Pr(X=x)=Cnxπx(1−π)n−x 事实上,二项分布假定了π\piπ为一个定值,也就是说,二项分布是一个条件分布Pr(X=x∣π)\Pr(X=x|\pi)Pr(X=x∣π)。那么自然想到,对于参数π\pi...
回归分析第14讲——基于R语言实现泊松回归
这一讲为实践内容,我们将学习如何使用R语言建立和拟合泊松回归模型,并对模型和参数进行假设检验。 本讲默认读者已经了解R语言的基本语法,能够在自己的电脑中成功编写和运行R脚本。 一、泊松回归模型 1.1 无偏移量的泊松回归模型 我们先从无偏移量的泊松回归开始讲起。与逻辑回归类似,我们同样使用R内置的glm()函数来拟合,只需指定family=poisson即可。 接下来我们使用faraway中的gala数据集来进行测试,该数据集描述了加拉帕戈斯群岛的物种信息,每行代表一座岛屿(共30座),列分别代表物种数量(Species)、岛屿面积(Area)、最高高地(Elevation)、最近岛屿距离(Nearest)、到Santa Cruz岛的距离(Scruz)、邻接岛面积(Adjacent)。这里我们考察岛屿的物种数量和剩余变量之间的关系。 如果你看过回归分析第4讲的内容,你会发现这是我们在拟合一般线性回归模型时使用的数据集。然而,当时的结果是不佳的,这是因为我们把响应变量Species作为了连续变量。事实上,物种数量是正整数,是离散的正值,不应该使用一般线性回归。因此,在学习了泊松回归...
回归分析第13讲——泊松回归模型
在第11讲中,我们介绍了响应变量是二分类变量而采取的逻辑回归模型,以及多分类情况下的广义逻辑回归模型。然而,除了考虑二分类的响应变量,我们还有一类重要的变量——计数变量。这类变量的特点是,其取值是离散的,但是又具有次序大小之分,同时我们研究的目标不是概率而是响应变量的具体计数,尤其是一段时间内事件发生的平均次数。要处理计数变量,建立回归模型,首先我们需要解析泊松分布。 一、泊松回归的基本模型 1.1 计数随机变量与泊松分布 计数随机变量,是指随机变量的取值是离散的可数整数,即X=0,1,2,⋯X=0,1,2,\cdotsX=0,1,2,⋯。要描述计数随机变量的分布情况,就需要使用泊松分布。泊松分布是一个含有参数λ\lambdaλ的分布: P(Y=y)=λyy!e−λ≡f(y;λ)P(Y=y)=\frac{\lambda^y}{y!}e^{-\lambda}\equiv f(y;\lambda) P(Y=y)=y!λye−λ≡f(y;λ) 这里的λ\lambdaλ就表示事件发生的平均次数。 泊松分布也属于指数分布族,因为如果令θ=logλ\theta=\log\lambdaθ=...
回归分析第12讲——基于R语言实现逻辑回归
这一讲为实践内容,我们将学习如何使用R语言建立和拟合逻辑回归模型,并对模型和参数进行假设检验。 本讲默认读者已经了解R语言的基本语法,能够在自己的电脑中成功编写和运行R脚本。 一、单个0-1响应的逻辑回归模型 1.1 数据集介绍与模型建立 我们先从最简单的情况开始。这里我们使用faraway包中的wcgs数据集,该数据集的收集过程是:在1960年挑选了约3000个年龄在39到59岁的健康男性作为受访者,随访调查八年半,其间记录每个人每天的抽烟量,最后检查他们是否患上了心脏病。 这个数据集涉及的变量很多,这里我们只看这几列:chd是二分变量,表示是否患病;height是身高(英寸),cigs是每日吸烟量(支): > data(wcgs, package = "faraway")> summary(wcgs[,c("chd","height","cigs")]) chd height cigs no :2897 Min. :60.00...
回归分析第11讲——逻辑回归模型
逻辑回归模型是广义线性回归中一个非常经典的模型,其架构在今天很多研究当中也在使用。由于逻辑回归模型中的响应变量是二分类随机变量,因此我们先从二分类随机变量开始讲起,逐步过渡到逻辑回归。 一、逻辑回归模型的建立 1.1 二分类随机变量与二项分布 二分类随机变量(Binary Random Variable)是指一个随机变量只取两个数,一般是0和1。二分类随机变量在实际生活中很常见,比如你可以用二分类随机变量描述一个人患病还是没患病: Z={1,患病0,未病Z=\begin{cases} 1,&患病\\ 0,&未病 \end{cases} Z={1,0,患病未病 根据概率论的知识我们知道,二分类随机变量是离散的随机变量,因此我们只能用分布律来描述,即: Z 1 0 Pr π\piπ 1−π1-\pi1−π 显然,ZZZ服从二项分布(伯努利分布),记作Z∼B(1,π)Z\sim B(1,\pi)Z∼B(1,π),π=Pr(Z=1)\pi=Pr(Z=1)π=Pr(Z=1)。这里的π\piπ就可以相当于患病率。 进一步地,由于我们调查的人数不止1个,...
回归分析第10讲——广义线性回归导论
一、广义线性回归的概念 通过前面9讲的学习,我们了解了线性回归模型的结构,以及如何估计参数和假设检验。总结来说,线性回归结构的基本假定是,响应变量的期望值可以由自变量的线性预测子得到,即满足: EY=XβEY=X\beta EY=Xβ 在现实应用当中,要满足这个假定其实很苛刻。一方面,某组自变量对应的响应变量取值的分布不一定是正态分布,可以是偏态的、拖尾的;另一方面,响应变量的取值可以是离散的。在这些情况下,线性回归模型就不再适用了。那应该如何处理呢? 既然是响应变量的问题,那么我们可以考虑,保留自变量的线性结构,但是和响应变量连接时套上一层函数进行转换,也就是满足: g(EY)=Xβg(EY)=X\beta g(EY)=Xβ 这里的g()g()g()被称为联系函数(link function),是已知且单调光滑的。联系函数,顾名思义,就是通过一个函数把响应变量和线性预测子联系起来,这样既处理了响应变量,也保留了线性成分。 显然,如果我们定义h=g−1(t)h=g^{-1}(t)h=g−1(t),那么就有EY=h(Xβ)EY=h(X\beta)EY=h(Xβ)。不难猜测,如果g(...
回归分析第9讲——基于R语言实现方差分析
这一讲为实践内容,我们将学习如何使用R语言处理模型中的哑变量,并实现方差分析。 本讲默认读者已经了解R语言的基本语法,能够在自己的电脑中成功编写和运行R脚本。 一、哑变量处理 当回归模型中出现属性变量时,我们应当考虑使用哑变量进行处理。我们来看看如何在R语言中引入哑变量。 1.1 二分类变量的哑变量处理 二分类变量,即属性变量只有两个状态,例如患病与否、质量好坏等等。我们使用faraway包中的sexab数据集进行示例,这是一个描述成年女性在儿童时期受到性别霸凌后的创伤后应激障碍(PTSD)的情况,其中ptsd列表示PTSD的值,cpa列表示身体霸凌的标准尺度值,csa列表示是否遭受过性别霸凌: > data(sexab,package = "faraway")> head(sexab,3) cpa ptsd csa1 2.04786 9.71365 Abused2 0.83895 6.16933 Abused3 -0.24139 15.15926 Abused> tail(sexab,2) cp...
回归分析第8讲——方差分析模型
一、从哑变量到方差分析 1.1 哑变量的引入 在前面的学习中,我们已经掌握了线性回归模型的基本形式,即通过线性组合的方式,用一个或多个自变量去解释响应变量的变化。当自变量是连续变量时,线性回归能够直接刻画变量之间的线性关系。然而,在许多实际研究中,自变量可以不是连续变量,它可以是离散变量/属性变量,比如病情的描述可以是“良好”,“中等”,“较差”,“恶化”。如果遇到这样的属性变量,该如何运用到线性回归中呢? 此时,我们仍然可以利用线性回归的框架,只需要引入哑变量(dummy variable)来将其编码为可计算的数值即可。哑变量是通过0-1编码来表征变量所处的状态或属性,从而能够在拟合时使用某一个状态来参与建模。 具体来说,如果一个属性变量有kkk个状态,那么我们向模型中添加k−1k-1k−1个哑变量x(1),⋯ ,x(k−1)x_{(1)},\cdots,x_{(k-1)}x(1),⋯,x(k−1),这些哑变量的取值是: x(i)={1,处于状态i0,其他状态x_{(i)}=\begin{cases} 1,&处于状态i\\ 0,&其他状态 \end{case...
回归分析第7讲——基于R语言优化线性回归
这一讲为实践内容,是对回归分析第6讲的延伸,我们将学习如何使用R语言对欠佳的线性回归模型进行优化。 本讲默认读者已经了解R语言的基本语法,能够在自己的电脑中成功编写和运行R脚本。 一、残差问题优化 1.1 残差不独立的情形 残差不独立,也就是说模型的协方差阵不满足GM条件。我们假设Cov(e)=σ2ΣCov(e)=\sigma^2\SigmaCov(e)=σ2Σ。在这种情况下,我们可以选择Aitken模型来进行建模。该模型的求解使用广义最小二乘法,我们可以得到解为: β^=(XTΣ−1X)−XTΣ−1Yvar(β^)=σ2(XTΣ−1X)−\begin{aligned} \hat\beta&=(X^T\Sigma^{-1}X)^-X^T\Sigma^{-1}Y\\ var(\hat\beta)&=\sigma^2(X^T\Sigma^{-1}X)^- \end{aligned} β^var(β^)=(XTΣ−1X)−XTΣ−1Y=σ2(XTΣ−1X)− 举一个实际例子。我们导入faraway包中的globwarm数据集,使用线性回归模型进行拟合: >...