一、广义线性回归的概念
通过前面9讲的学习,我们了解了线性回归模型的结构,以及如何估计参数和假设检验。总结来说,线性回归结构的基本假定是,响应变量的期望值可以由自变量的线性预测子得到,即满足:
EY=Xβ
在现实应用当中,要满足这个假定其实很苛刻。一方面,某组自变量对应的响应变量取值的分布不一定是正态分布,可以是偏态的、拖尾的;另一方面,响应变量的取值可以是离散的。在这些情况下,线性回归模型就不再适用了。那应该如何处理呢?
既然是响应变量的问题,那么我们可以考虑,保留自变量的线性结构,但是和响应变量连接时套上一层函数进行转换,也就是满足:
g(EY)=Xβ
这里的g()被称为联系函数(link function),是已知且单调光滑的。联系函数,顾名思义,就是通过一个函数把响应变量和线性预测子联系起来,这样既处理了响应变量,也保留了线性成分。
显然,如果我们定义h=g−1(t),那么就有EY=h(Xβ)。不难猜测,如果g(t)=t,那么就变成了一般的线性回归模型,通过这种方式我们就可以把广义线性回归和一般线性回归统一起来。
虽然这类模型的名称是广义线性回归,但是参数不是线性的,不过我们仍然称为广义线性回归模型,因为它可以和一般的线性回归模型联系起来。
解决了模型的结构,我们还需要确定响应变量的分布。通常我们假定响应变量服从指数分布族。如果你忘了第1讲学过的指数分布族,那么这里我再展示一下:
f(y∣θ;ϕ)=exp[ϕθy−b(θ)+c(y;ϕ)]
θ称为自然参数(Natural Parameter),是我们感兴趣的参数;ϕ称为散布参数/尺度参数/讨厌参数(Dispersion Parameter),在特定的分布下应当已知;b(θ)和c(y;ϕ)在具体分布确定后已知表达式。
指数分布族有两条重要的性质:
EYVar Y=b(θ)˙=ϕb(θ)¨
最后一个问题是,为什么要假定响应变量服从指数分布族?
这个问题其实无法回答得很完美,但是可以提供几个使用指数分布族的好处:
- 期望和方差的结构较为统一
- 估计方程具有封闭形式,求解高效
- 可选的连接函数非常自然且符合实际
二、广义线性回归的参数估计
假定模型之后,接下来的工作就是估计参数。由于响应变量服从指数分布族,所以不能直接使用最小二乘法。因此,我们考虑使用极大似然估计来完成。
为什么广义线性回归的参数估计不能使用最小二乘法?
线性回归中,最小二乘法的原理是最小化平方损失,也就是最小化∣∣Y−XTβ∣∣2。如果你使用极大似然估计,你会发现线性回归的对数似然函数是平方损失的一个线性函数,所以在求解优化时是等价的。而广义线性回归不满足这样的性质,且响应变量的方差要随均值变化而变化,所以只能使用极大似然估计。
2.1 极大似然估计与Fisher信息阵
根据极大似然估计的方法,首先我们需要构造对数似然函数:
li=ϕiθiyi−b(θi)+c(yi;ϕi),i=1,⋯,nl=i=1∑nli=i=1∑n[ϕiθiyi−b(θi)+c(yi;ϕi)]
为了求导后表示方便,我们定义得分统计量(score statistic)为:
Ui=∂θi∂li=ϕiyi−b(θi)˙=ϕiyi−Eyi
不难看出,得分统计量的期望和方差满足:
EUiVar Ui=ϕi1E(yi−Eyi)=0=EUi2=ϕi21E(yi−Eyi)2=ϕib(θ)¨
我们称Ui的方差为信息(information),记作Ii=Var Ui。注意到一个重要性质,即I=−E(U′)。
既然我们的对数似然函数是要对β求导,那么一定需要进行转换。由于对数似然函数无法直接对β求导,那么我们可以根据链式法则展开:
∂βj∂l=Uj=i=1∑n[∂βj∂li]=i=1∑n[∂θi∂li⋅∂μi∂θi⋅∂βj∂μi]
其中μi=Eyi,g(μi)=g(Eyi)=xiTβ,μi=h(xiTβ)。
接下来我们依次计算每一项。首先,
∂θi∂li=ϕiyi−b(θi)˙=ϕiyi−μi
其次:
∂μi∂θi=1/(∂θi∂μi)=1/(∂θi∂b(θi)˙)=b(θi)¨1
最后:
∂βj∂μi=∂g(μi)∂μi⋅∂βj∂g(μi)=∂g(μi)∂μixij
因此整合起来:
Uj=i=1∑n[Var yiyi−μixij∂g(μi)∂μi]
那么只需解方程Uj=0即可求得回归系数的估计。
你一定注意到这里保留了∂g(μi)∂μi项,这是因为我们还不确定联系函数的表达式,一旦确定了联系函数就能求解了。
当然,这个似然方程不一定有解,或者解不唯一。理论上来说:
- limn→∞P(有解)=1
- 存在解β^n使得P(limn→∞β^n=β0)=1,其中β0是β的真值
得到估计方程还不够。作为一种统计学的估计方法,我们还需考虑估计是否准确。对于广义线性回归来说,因为似然方程就是求解关于得分统计量的方程,因此我们可以使用得分统计量的方差来描述。这个方差又被称为信息,所有似然方程的联合信息就构成了Fisher信息矩阵,记作:
Ijk=Cov(Uj,Uk)=E(UjUk)
可以计算得到广义线性回归的Fisher信息阵为:
Ijk=i=1∑nVar(yi)xijxik(∂g(μi)∂μi)2≡F(β)
由于在一定条件下有:
F21(β0)(β^n−β0)→N(0,Ip),p=β0维数
所以Fisher信息阵包含的方差越大,说明信息越多,那么参数估计也就越准确。
2.2 Fisher-Scoring算法
在2.1小节中,我们只搭建了估计方程,考察了估计准确性,但是还没有具体求解。事实上,对于这样的估计方程组来说,要求出解析解非常困难。不过,计算机的发展给我们带来了新的观点——迭代法。迭代思想一举成为几乎所有优化问题的解决办法。
如果你了解过优化问题的求解方法,你或许知道Newton-Raphson算法,这是非常经典的一种求解办法(这里不展开介绍)。这个算法更新很快,但是容易出现震荡或发散的问题。对于广义线性回归来说,统计学家开发了一种类似Newton-Raphson的算法,更新更平滑,收敛性更稳定——Fisher Scoring算法。
Fisher Scoring算法是一种基于得分函数和Fisher信息阵的方法,其基本思想是:
b(m)=b(m−1)+[I(m−1)]−1U(m−1)
其中b(m)是指第m次迭代时参数向量(β1,⋯,βp)的估计值。
为了求解方便,我们做一下简单变换:
I(m−1)b(m)=I(m−1)b(m−1)+U(m−1)
信息阵可以改写为二次型的形式,即:
I=XTWX
其中W是一个n×n的对角阵,其对角元为:
wii=Var(yi)1(∂g(μi)∂μi)2
于是Fisher scoring算法的左侧可以改写为:
XTWXb(m)
同时,为了引入上面的W,Fisher scoring算法的右侧可以改写为:
k=1∑pi=1∑nVar(yi)xijxik(∂g(μi)∂μi)2bk(m−1)+i=1∑nVar(yi)(yi−μi)xij(∂g(μi)∂μi)
提取公因式xijwii,我们再令:
zi=k=1∑pxikbk(m−1)+(yi−μi)(∂μi∂g(μi))
于是右侧可以改写为:
XTWz
最终,Fisher score算法可以改写为:
XTWXb(m)=XTWz
你会惊奇地发现,从形式上看,这个方程类似于线性回归中的正规方程,仅仅只有两个区别:
- 带上了权重;
- z,W都只与b有关,可以参与迭代。
因此,上述这种改写后的方法又被称为迭代加权最小二乘法(Iterative weighted Least Square, IRWLS),是Charnes等人在1976年提出来的方法,如今依然是广义线性模型参数估计当中最主流的方法。
如果进一步观察zi,我们还可以发现:
zi=g(μi)+g(μi)˙(yi−μi)
因此,zi是g(yi)在μ=Eyi处的一阶泰勒展开,于是我们把zi称为工作变量/调整响应变量,那么Fisher scoring算法也可以被看成调整响应变量转化版本的IRWLS,迭代步骤为:
- 每一步在当前β下根据一阶泰勒展开计算新的z以及w;
- 以z为新的响应变量,对X做权重为w的最小二乘法,更新β;
- 重复上述步骤,直至收敛。
三、广义线性回归的假设检验
在得到参数估计后,就要对模型和参数进行统计推断和假设检验。
3.1 回归系数的检验统计量
我们先看回归系数如何检验。通过2.1小节的学习我们知道,广义线性回归的得分统计量为:
Uj=∂βj∂l=i=1∑n[Var(yi)yi−μixij(∂g(μi)∂μi)]
其中g(μi)=g(Eyi)=xiTβ。
我们也知道得分统计量的两个性质:E(Uj)=0,j=1,⋯,p,Ijk=E[UjUk]。根据统计学的基本知识不难发现:
IU∼N(0,1)
或者说:
IU2∼χ12
如果写成向量形式,那么:
U∼Np(0,I)UTI−1U∼χp2
进一步,我们根据得分统计量,通过泰勒展开获取在极大似然估计β^=b处的展开式:
U(β)=U(b)+(β−b)U′(b)
对于U′(b),我们使用期望值E(U′)=−I来代替:
U(β)=U(b)−I(b)(β−b)
由于b是极大似然估计,那么U(b)=∂β∂lβ=β^=b=0,所以化简得到:
(b−β)=I−1U
假设I非奇异且为常数,那么E(b−β)=0,反映了b就是β的极大似然估计。又因为:
E[(b−β)(b−β)T]=I−1E(UUT)I−1=I−1
所以:
(b−β)TI(b)(b−β)∼χp2
左侧这个二次型被称为广义线性回归中的wald统计量。于是:
b∼N(β,I−1)
你会发现,这个结论和线性回归的结论很像。事实上你可以自己尝试,令b=(XTX)−1XTy,可以求解得到var(b)=σ2(XTX)−1=I−1,和我们之前学过的结论完全一致。
3.2 模型整体显著性检验
在一般线性回归模型中,我们构造了F统计量来检验模型的显著性。而在广义线性回归中,由于响应变量服从指数分布族,F统计量便不再适用。但是,我们在构建F统计量时用到了一个思想,就是构造似然比。如果能够从似然比出发构建似然比检验(Likelihood Ratio Test, LRT),就可以实现检验了。
事实上是可以的,我们来尝试导出。我们从对数似然函数出发,先用泰勒展开的前三项来表达β^=b处的对数似然函数:
l(β)=l(b)+(β−b)U(b)+21(β−b)2U′(b)
对于U′(b),我们使用期望值E(U′)=−I来代替,写成矩阵形式:
l(β)=l(b)+(β−b)TU(b)−21(β−b)TI(b)(β−b)
3.1小节中我们提到U(b)=0,所以:
l(β)−l(b)=−21(β−b)TI(b)(β−b)
做一下变换:
2[l(b)−l(β)]=(β−b)TI(b)(β−b)∼χp2
也就是说对数似然函数的差的两倍服从卡方分布。我们假定似然比:
Λ=supL(bH0;y)supL(bH1;y)
其中H0代表一个更小的模型(原假设),H1代表更大的模型(备择假设)。于是有:
LRT=2[l(bH1;y)−l(bH0;y)]=2[l(bH1;y)−l(βH1;y)]−2[l(bH0;y)−l(βH0;y)]+2[l(βH1;y)−l(βH0;y)]
其中第一项是备择假设下的统计量,服从χp2,p是参数量;第二项是原假设下的统计量,服从χm2,m是参数量;第三项是个未知的常数。因此,LRT应当渐近服从卡方分布:
LRT=2logΛ∼χp−m,v2
其中v是一个非中心化参数。如果Yi服从正态分布,那么LRT就精确服从卡方分布。
3.3 模型结构检验
在一般线性回归中,我们通过偏回归图和偏残差图检验了线性结构的存在。而在广义线性回归中,我们的主要检验目标是是否存在联系函数,即:
- 原假设H0:存在g使得g(μi)=xiTβ
- 备择假设H1:没有这样的g使得g(μi)=xiTβ
要想检验这一点,我们需要先介绍全模型的概念。全模型/饱和模型(saturated model)是指相对于数据集来说包含的参数量最多的模型。例如,如果N个随机变量的样本Yi都服从正态分布N(μi,σ2),那么全模型就是参数量为N的模型,因为每一个观测值yi都是μi的极大似然估计。如果拟合为线性回归模型,那么参数量就会缩减变为自变量的个数p,因为μi的极大似然估计变为xiTβ。
也就是说,全模型是不考虑任何模型结构的模型,单纯从样本数值直接推断总体。
有了全模型的概念,那么模型结构检验也就很明显了:检验拟合模型和全模型有显著差异。那么很自然地想到用3.2小节学习的似然比检验方法。设全模型的回归系数是bmax,拟合模型是b,那么我们可以构造似然比:
Λ=supL(b;y)supL(bmax;y)
Nelder和Wedderburn在1972年定义了一个统计量Deviance,转换似然比使其服从卡方分布:
D=2logΛ=2logL(b;y)L(bmax;y)=2[l(bmax;y)−l(b;y)]
这个检验被称为Deviance检验。不过你一定看出来了,这个Deviance统计量就是上面的似然比检验统计量,二者其实是一回事。
那么对于广义线性模回归来说,其全模型为g(μi)=ψi,即模型结构未知,那么似然比为:
Λ=L(Y,β^)L(Y,ψ^)
因此有
2logΛ∼χr2
其中r为自由度。当然,这种服从也是渐近的。
最后我们来看两个例子,学习如何计算Deviance。
例1:设一组独立样本y1,⋯,yn,且yi∼Possion(λi),即泊松分布。
对于广义线性回归来说,取logλi=xiTβ,此时为我们后续要学习的泊松回归,那么对数似然为:
l(Y,β)=i=1∑nyixiTβ−i=1∑nexiTβ−i=1∑nlogyi!
并且在β=β^处取得极大值。
对于全模型来说,对数似然为:
l(Y,ψ)=i=1∑nyiψi−i=1∑neψi−i=1∑nlogyi!
由于在eψi=yi时取得极大值,于是当yi>0时,取ψi=logyi;其他情况下eψi=0,于是极大值为:
maxl(Y,ψ)={i∣yi>0}∑(yilogyi−yi)−i=1∑nlogyi!
于是:
D=2i=1∑n[yilogλ^iyi−(yi−λ^i)],λ^i=exiTβ
例2:设一组独立样本y1,⋯,yn,且yi∼N(μi,σ2),即正态分布。
对于广义线性回归来说,以g(t)=t为例,此时为一般线性回归模型,对数似然为:
l=i=1∑n[σ2yi(xiTβ)−21(xiTβ)2+c(yi;σ2)]
并且在β=β^=(XXT)−1XTY处取得极大值。
对于全模型来说,每一个yi都是对μi的极大似然估计,因此似然函数为:
l=i=1∑n[σ2yiψi−21ψi2+c(yi;σ2)]
并且在ψi=yi处取得极大值。
于是:
D=σ2∑i=1n(yi−xiTβ)2
你会发现这个就是我们之前的结论:
D=(n−r)σ2(n−r)∑i=1n(yi−xiTβ)2=σ2(n−r)σ^2∼χn−r2