UA MATH571A 多元线性回归V 自相关与非线性模型简介
一阶误差自相关模型Durbin-Watson检验一阶自相关的消去Cochrane-Orcutt方法Hildreth-Lu方法非线性回归及其最小二乘估计神经网络简介Penalized Least Square一阶误差自相关模型
时间序列数据误差项可能存在自相关,比较简单的处理方法是假设误差项服从一阶自相关模型(First-order Auto-correlation Error Model)。假设Yt,t=1,2...,TY_t,t=1,2...,TYt,t=1,2...,T表示被解释变量的时间序列数据,XtX_tXt表示常数项以及p−1p-1p−1个被解释变量的时间序列数据
Yt=Xtβ+ϵtϵt=ρϵt−1+utY_t = X_t \beta + \epsilon_t \\ \epsilon_t = \rho \epsilon_{t-1} + u_t Yt=Xtβ+ϵtϵt=ρϵt−1+ut
其中参数ρ\rhoρ需要满足∣ρ∣<1|\rho|<1∣ρ∣<1以保证平稳性,另外ut∼N(0,σ2)u_t \sim N(0,\sigma^2)ut∼N(0,σ2),且Cov(ut,us)=0,t≠sCov(u_t,u_s)=0, t \ne sCov(ut,us)=0,t=s。误差项具有如下性质
E(ϵt)=0E(\epsilon_t)=0E(ϵt)=0Var(ϵt)=σ21−ρ2Var(\epsilon_t)=\frac{\sigma^2}{1-\rho^2}Var(ϵt)=1−ρ2σ2Cov(ϵt,ϵt−s)=ρs(σ21−ρ2)Cov(\epsilon_t,\epsilon_{t-s})=\rho^s(\frac{\sigma^2}{1-\rho^2})Cov(ϵt,ϵt−s)=ρs(1−ρ2σ2)Corr(ϵt,ϵt−s)=ρsCorr(\epsilon_t,\epsilon_{t-s})=\rho^sCorr(ϵt,ϵt−s)=ρs
假设误差项同分布,则
E(ϵt)=ρE(ϵt−1)+0⟺E(ϵt)=0,∀tE(\epsilon_t) = \rho E(\epsilon_{t-1}) + 0 \Longleftrightarrow E(\epsilon_t)=0, \forall t E(ϵt)=ρE(ϵt−1)+0⟺E(ϵt)=0,∀t
Var(ϵt)=ρ2Var(ϵt−1)+σ2⟺Var(ϵt)=σ21−ρ2,∀tVar(\epsilon_t) = \rho^2 Var(\epsilon_{t-1}) + \sigma^2 \Longleftrightarrow Var(\epsilon_t)=\frac{\sigma^2}{1-\rho^2}, \forall t Var(ϵt)=ρ2Var(ϵt−1)+σ2⟺Var(ϵt)=1−ρ2σ2,∀t
根据误差项的递推关系
ϵt=ρ(ρϵt−2+ut−1)+ut=ρ2ϵt−2+(ut+ρut−1)=...=ρsϵt−s+∑j=0s−1ρjut−j\epsilon_t = \rho(\rho\epsilon_{t-2}+u_{t-1})+u_{t} = \rho^2 \epsilon_{t-2} + (u_t+\rho u_{t-1}) \\ = ... = \rho^s \epsilon_{t-s} + \sum_{j=0}^{s-1} \rho^ju_{t-j} ϵt=ρ(ρϵt−2+ut−1)+ut=ρ2ϵt−2+(ut+ρut−1)=...=ρsϵt−s+j=0∑s−1ρjut−j
Cov(ϵt,ϵt−s)=ρsVar(ϵ),Corr(ϵt,ϵt−s)=ρsCov(\epsilon_t,\epsilon_{t-s})=\rho^s Var(\epsilon), Corr(\epsilon_t,\epsilon_{t-s})=\rho^s Cov(ϵt,ϵt−s)=ρsVar(ϵ),Corr(ϵt,ϵt−s)=ρs
Durbin-Watson检验
在使用一阶误差自相关模型之前,要先验证误差项的一阶自相关关系是否显著,Durbin-Watson检验(简称DW检验)可以达到这个目的。
H0:ρ=0Ha:ρ>0H_0: \rho = 0 \\ H_a: \rho > 0 H0:ρ=0Ha:ρ>0
首先拟合多元回归模型并计算残差et,t=1,2,...,Te_t,t=1,2,...,Tet,t=1,2,...,T,然后计算DW统计量
DW=∑t=2T(et−et−1)2∑t=1Tet2DW = \frac{\sum_{t=2}^T (e_t - e_{t-1})^2}{\sum_{t=1}^T e_t^2} DW=∑t=1Tet2∑t=2T(et−et−1)2
这个统计量的精确分布难以获得,但Durbin和Watson给出了它的上界dUd_UdU和下界dLd_LdL。若DW>dUDW>d_UDW>dU,接受原假设;若DW<dLDW<d_LDW<dL,接受备择假设;其他情况无法下结论。
一阶自相关的消去
一阶误差自相关模型可以看成是一个比较简单的两层模型,多元回归是测量方程,误差的一阶自回归是状态方程。尽管如此,这个模型还是不够直观,因此在确定误差项存在一阶自回归后可以采取一些变换使得变换后的模型是线性回归。若误差项存在一阶自回归,则被解释变量也会存在一阶自回归。定义
Yt∗=Yt−ρYt−1,Xt∗=Xt−ρXt−1Y_t^{*} = Y_t - \rho Y_{t-1}, X_t^* = X_t - \rho X_{t-1} Yt∗=Yt−ρYt−1,Xt∗=Xt−ρXt−1
根据一阶自相关误差模型,
Yt∗=Yt−ρYt−1=Xtβ+ϵt−ρ(Xt−1β+ϵt−1)=(Xt−ρXt−1)β+(ϵt−ρϵt−1)=Xt∗β+utY_t^{*} = Y_t - \rho Y_{t-1} = X_t \beta + \epsilon_t - \rho(X_{t-1} \beta + \epsilon_{t-1} ) \\ = (X_t - \rho X_{t-1})\beta + (\epsilon_t-\rho \epsilon_{t-1}) = X_t^* \beta + u_t Yt∗=Yt−ρYt−1=Xtβ+ϵt−ρ(Xt−1β+ϵt−1)=(Xt−ρXt−1)β+(ϵt−ρϵt−1)=Xt∗β+ut
这样就实现了将两层的线性模型化为多元线性回归。然而这个方法需要已知ρ\rhoρ,或者先给出ρ\rhoρ的估计量。以下给出三种具体的操作方法。
Cochrane-Orcutt方法
先直接拟合多元线性回归Yt=Xtβ+ϵtY_t=X_t\beta + \epsilon_tYt=Xtβ+ϵt得到残差ete_tet,按估计相关性系数的方法估计rhorhorho,假设估计量为rrr
r=∑t=2Tetet−1∑t=2Tet−12r = \frac{\sum_{t= 2}^T e_t e_{t-1}}{\sum_{t=2}^T e_{t-1}^2} r=∑t=2Tet−12∑t=2Tetet−1
用这个估计量对数据做变换,并估计回归模型Yt∗=Xt∗β+utY_t^{*} = X_t^* \beta + u_tYt∗=Xt∗β+ut。需要注意的是,还需要对这个回归残差做Durbin-Watson检验,如果这个变换后的回归模型误差项是否还有自相关,如果还存在自相关,就再做一个这个操作。
Hildreth-Lu方法
假设系数的估计量为β^\hat{\beta}β^,则模型的SSE为
SSE=∑t=1T(Yt∗−Y^t∗)2SSE = \sum_{t=1}^T (Y_t^{*} - \hat{Y}_t^{*})^2 SSE=t=1∑T(Yt∗−Y^t∗)2
Hildreth-Lu方法和之前说过的Box-Cox找λ\lambdaλ类似。因为SSE中数据的变换与系数估计量β^\hat{\beta}β^都取决于ρ\rhoρ,因此可以使用一些搜寻算法找使得SSE最小的ρ\rhoρ的值作为其估计量。
非线性回归及其最小二乘估计
假设回归方程为
Yi=f(Xi,γ)+ϵiY_i = f(X_i,\gamma) + \epsilon_i Yi=f(Xi,γ)+ϵi
其中γ\gammaγ是回归系数,如果fff关于γ\gammaγ是线性函数,则模型是线性回归;如果fff关于γ\gammaγ是非线性函数,则模型是非线性回归。系数γ\gammaγ的估计可以采用最小二乘法
minγQ=∑i=1N(Yi−f(Xi,γ))\min_{\gamma} Q=\sum_{i=1}^N (Y_i - f(X_i,\gamma) ) γminQ=i=1∑N(Yi−f(Xi,γ))
求解这个最优化可以得到系数的最小二乘估计量,能否找到解析解完全取决于fff的形式,但大多数时候都只能用数值方法求解。比较常用的是Gauss-Newton算法、最速下降法以及Marquardt算法等。
神经网络简介
这里介绍一下两层前馈神经网络(one-hidden-layer,feedforward NN)。Hi∈Rm,i=1,2,...,NH_i \in \mathbb{R}^m,i=1,2,...,NHi∈Rm,i=1,2,...,N表示derived predictors,fff是非线性函数,
Yi=f(Hiβ)+ϵiY_i = f(H_i \beta) + \epsilon_i Yi=f(Hiβ)+ϵi
其中HiH_iHi由被解释变量决定,定义Hi0=1H_{i0}=1Hi0=1
Hij=gj(Xiαj),j=1,2,...,m−1H_{ij} = g_j(X_i\alpha_j), j = 1,2,...,m-1 Hij=gj(Xiαj),j=1,2,...,m−1
其中gjg_jgj是激活函数。在这个模型中,假设激活函数为gj(z)=zg_j(z)=zgj(z)=z,则模型退化为非线性回归;若进一步假设fff是线性函数,则模型退化为线性回归。
Penalized Least Square
上述模型中的参数为β\betaβ与α\alphaα,共有m+(m−1)pm+(m-1)pm+(m−1)p个参数需要估计,相比多元线性回归的p个而言算是相当多了。如果样本数量无法保证N>>m+(m−1)pN>>m+(m-1)pN>>m+(m−1)p,就需要注意以下模型是否会过拟合(over fit)。通常处理方法是在最小二乘的基础上加一个惩罚项(penalty):
minβ,αQ=∑i=1N[Yi−f(g(Xα)β)]2+pλ(α,β)\min_{\beta,\alpha} Q = \sum_{i=1}^N [Y_i-f(g(X\alpha)\beta)]^2 + p_{\lambda}(\alpha,\beta) β,αminQ=i=1∑N[Yi−f(g(Xα)β)]2+pλ(α,β)
pλ(α,β)=λ(∣∣β∣∣22+∣∣α∣∣22)p_{\lambda}(\alpha,\beta) = \lambda(||\beta||_2^2 + ||\alpha||_2^2) pλ(α,β)=λ(∣∣β∣∣22+∣∣α∣∣22)
参数λ\lambdaλ的作用是在过拟合与欠拟合(under fit)之间作一个trade-off,如果λ\lambdaλ取得太小,惩罚项就没什么意义,同样可能过拟合;如果λ\lambdaλ取得太大,残差项没什么意义,相当于只是在一味地限制系数的大小而不去考虑拟合得好不好,这样就会欠拟合。