ESL翻译:Linear Methods for Regression分分快三计划

作者:编程技术

时间序列数据之动态线性分位数回归

library(zoo)
data("AirPassengers", package = "datasets")
ap <- log(AirPassengers)
fm <- dynrq(ap ~ trend(ap)   season(ap), tau = 1:4/5)
`
Dynamic quantile regression "matrix" data:
Start = 1949(1), End = 1960(12)
Call:
dynrq(formula = ap ~ trend(ap)   season(ap), tau = 1:4/5)

Coefficients:
                  tau= 0.2    tau= 0.4     tau= 0.6     tau= 0.8
(Intercept)    4.680165533  4.72442529  4.756389747  4.763636251
trend(ap)      0.122068032  0.11807467  0.120418846  0.122603451
season(ap)Feb -0.074408403 -0.02589716 -0.006661952 -0.013385535
season(ap)Mar  0.082349382  0.11526821  0.114939193  0.106390507
season(ap)Apr  0.062351869  0.07079315  0.063283042  0.066870808
season(ap)May  0.064763333  0.08453454  0.069344618  0.087566554
season(ap)Jun  0.195099116  0.19998275  0.194786890  0.192013960
season(ap)Jul  0.297796876  0.31034824  0.281698714  0.326054871
season(ap)Aug  0.287624540  0.30491687  0.290142727  0.275755490
season(ap)Sep  0.140938329  0.14399906  0.134373833  0.151793646
season(ap)Oct  0.002821207  0.01175582  0.013443965  0.002691383
season(ap)Nov -0.154101220 -0.12176290 -0.124004759 -0.136538575
season(ap)Dec -0.031548941 -0.01893221 -0.023048200 -0.019458814

Degrees of freedom: 144 total; 131 residual
`
sfm <- summary(fm)
plot(sfm)

分分快三计划 1

不同分位点拟合曲线的比较
fm1 <- dynrq(ap ~ trend(ap)   season(ap), tau = .25)
fm2 <- dynrq(ap ~ trend(ap)   season(ap), tau = .50)
fm3 <- dynrq(ap ~ trend(ap)   season(ap), tau = .75)

plot(ap,cex = .5,lwd=2, col = "#EE2C2C",main = "时间序列分位数回归")
lines(fitted(fm1),lwd=2, col = "#1874CD")
lines(fitted(fm2),lwd=2, col = "#00CD00")
lines(fitted(fm3),lwd=2, col = "#CD00CD")
legend("topright", c("原始拟合","tau=.25","tau=.50","tau=.75"), lty=c(1,1),
       col=c( "#EE2C2C","#1874CD","#00CD00","#CD00CD"),cex = 0.65)

分分快三计划 2

除了本文介绍的以上内容,quantreg包还包含残差形态的检验、非线性分位数回归和半参数和非参数分位数回归等等,详细参见:用R语言进行分位数回归-詹鹏(北京师范大学经济管理学院)和Package ‘quantreg’。

第3章:回归的线性方法

3.1 Introduction

A linear regression model assumes that the regression function class="math inline">(E(Ymid X)) is linear in the inputs (X_1, ldots , X_p). Linear models were largely developed in the precomputer age of statistics, but even in today’s computer era there are still good reasons to study and use them. They are simple and often provide an adequate and interpretable description of how the inputs affect the output. For prediction purposes they can sometimes outperform fancier nonlinear models, especially in situations with small numbers of training cases, low signal-to-noise ratio or sparse data. Finally, linear methods can be applied to transformations of the inputs and this considerably expands their scope. These generalizations are sometimes called basis-function methods, and are discussed in Chapter 5.

线性回归模型假设输入为(X_1,X_2,ldots,X_p)的回归函数(E(Ymid X))是线性的。虽然线性模型大部分是在前计算机统计时代发展的,但是甚至在现在的计算机时代仍然有很好的原因去学习、使用线性模型。它们简单,而且经常对于输入怎样影响输出提供充足的、可解释的描述。用作预测时有时比新奇的非线性模型表现得还要好,特别是在训练情形很少、低信噪比或者稀疏数据的情况下。最后,线性方法可以被应用到输入的变换并且在很大程度上扩大了它们的范围。这些规范化有时被称作基函数方法,将在第5章中讨论。

In this chapter we describe linear methods for regression, while in the next chapter we discuss linear methods for classification. On some topics we go into considerable detail, as it is our firm belief that an understanding of linear methods is essential for understanding nonlinear ones. In fact, many nonlinear techniques are direct generalizations of the linear methods discussed here.

在这一章中我们描述回归的线性方法,下一章我们将讨论分类的线性方法。在某些主题上我们将从细节上讨论,因为理解线性方法对理解非线性至关重要是我们坚定的信仰。事实上,许多非线性技巧是这里讨论的线性方法的直接概括。

3.2 Linear Regression Models and Least Squares

反馈与建议

chapter 3: Linear Methods for Regression

什么是分位数回归

分位数回归(Quantile Regression)是计量经济学的研究前沿方向之一,它利用解释变量的多个分位数(例如四分位、十分位、百分位等)来得到被解释变量的条件分布的相应的分位数方程。

与传统的OLS只得到均值方程相比,分位数回归可以更详细地描述变量的统计分布。它是给定回归变量X,估计响应变量Y条件分位数的一个基本方法;它不仅可以度量回归变量在分布中心的影响,而且还可以度量在分布上尾和下尾的影响,因此较之经典的最小二乘回归具有独特的优势。众所周知,经典的最小二乘回归是针对因变量的均值(期望)的:模型反映了因变量的均值怎样受自变量的影响,

(y=beta X epsilon),(E(y)=beta X)

分位数回归的核心思想就是从均值推广到分位数。最小二乘回归的目标是最小化误差平方和,分位数回归也是最小化一个新的目标函数:

(min_{xi in mathcal{R}} sum rho_{tau}(y_i-xi))

3.2 线性回归模型和最小二乘法

As introduced in Chapter 2, we have an input vector class="math inline">(X^T = (X_1,X_2, ldots, X_p)), and want to predict a real-valued output class="math inline">(Y) . The linear regression model has the form
[ f(X) = beta_0 sumlimits_{j=1}^pX_jbeta_jqquad (3.1) ]
The linear model either assumes that the regression function class="math inline">(E(Ymid X)) is linear, or that the linear model is a reasonable approximation. Here the class="math inline">(beta_j)’s are unknown parameters or coefficients, and the variables class="math inline">(X_j) can come from different sources:

  • quantitative inputs;
  • transformations of quantitative inputs, such as log, square-root or square;
  • basis expansions, such as (X_2 = X_1^2, X_3 = X_1^ 3), leading to a polynomial representation;
  • numeric or “dummy” coding of the levels of qualitative inputs. For example, if (G) is a five-level factor input, we might create class="math inline">(X_j, j = 1,ldots,5), such that (X_j = I(G = j)). Together this group of class="math inline">(X_j) represents the effect of (G) by a set of level-dependent constants, since in class="math inline">(sum_{j=1}^5X_jbeta_j), one of the (X_j)s is one, and the others are zero.
  • interactions between variables, for example, class="math inline">(X_3 = X_1cdot X_2)

正如第二章介绍的那样,我们有输入向量(X^T=(X_1,X_2,ldots,X_p)),而且想要预测实数值输出(Y)。线性模型有如下形式
[ f(X)=beta_0 sumlimits_{j=1}^pX_jbeta_j qquad (3.1) ]
线性模型要么假设回归函数(E(Ymid X))是线性的,要么假设线性模型是一个合理的近似。这里(beta_j)是位置的参数或系数,变量(X_j)可以有下列不同的来源:

  • 定量的输入
  • 定量输入的变换,比如对数,平方根或者平方
  • 基函数展开,比如(X_2=X_1^2,X_3=X_1^3),得到多项式表示
  • 定性输入变量水平的数值或“虚拟”编码。举个例子,如果(G)是5个水平的因子输入,我们可能构造(X_j,j=1,ldots,5)使得(X_j=I(G=j))。借助于一系列独立于水平的常数,整个(X_j)用来表示(G)的效应。因为在(sum_{j=1}^5X_jbeta_j)中,其中一个(X_j)的系数为1,其它的都是0。
  • 变量之间的相交,举个例子,(X_3=X_1cdot X_2)
    无论(X_j)是哪个来源,用参数表示的模型是线性的。

一般地,我们有一系列用来估计参数(beta)的训练数据((x_1,y_1),ldots,(x_N,y_N))。每个(x_i=(x_{i1},x_{i2},ldots,x_{ip})^T)是第(i)个类别的特征衡量的向量。最受欢迎的估计方法是最小二乘(least squares),我们选择参数(beta=(beta_0,beta_1,ldots,beta_p)^T)使残差平方和最小
begin{align}
RSS(beta)&=sumlimits_{i=1}^N(y_i-f(x_i))^2
&=sumlimits_{i=1}^N(y_i-beta_0-sumlimits_{j=1}^px_{ij}beta_j)^2qquad (3.2)
end{align}

从统计学的观点来看,如果训练观测值((x_i,y_i))为从总体独立随机抽取的则该标准是合理的。即使(x_i)'s不是随机选取的,如果在给定输入(x_i)的条件下(y_i)条件独立。图3.1图示了在充满实数对((X,Y))的(R^{p 1})维空间的最小二乘拟合的几何意义。注意到(3.2)对模型(3.1)的有效性没有作假设,根据数据可以简单地找到最好的线性拟合。无论数据是怎样产生的,最小二乘拟合直观上看是满意的,这个准则衡量了拟合误差的平均。

我们怎样最小化(3.2)记(mathbf{X})为(Ntimes (p 1))的矩阵,矩阵每一行为一个输入向量(在第一个位置为1),类似地令(mathbf{y})为训练集里的(N)个输出向量。然后我们可以将残差平方和写成如下形式
[ RSS(beta)=(mathbf{y}-mathbf{X}beta)^T(mathbf{y}-mathbf{X}beta)qquad (3.3) ]
这是含(p 1)个参数的二次函数。关于(beta)求导有
[ begin{array}{cc} dfrac{partial RSS}{partial beta}&=-2mathbf{X}^T(mathbf{y}-mathbf{X}beta) dfrac{partial^2 RSS}{partial betapartial beta^T}&=2mathbf{X}^Tmathbf{X} end{array} qquad (3.4) ]

假设(mathbf{X})有列满秩,因此(mathbf{X}^Tmathbf{X})是正定的,我们令一阶微分为0,即
[ mathbf{X}^T(mathbf{y}-mathbf{X}beta) ]
得到唯一解
[ hat{beta}=(mathbf{X}^Tmathbf{X})^{-1}mathbf{X}^Tmathbf{y}qquad (3.6) ]
在输入向量(x_0)下的预测值由(hat{f}(x_0)=(1:x_0)^That{beta});在训练输入下的拟合值为
[ hat{y}=mathbf{X}hat{beta}=mathbf{X}(mathbf{X}^Tmathbf{X})^{-1}mathbf{X}^Tmathbf{y}qquad (3.7) ]
其中,(hat{y}_i=hat{f}(x_i))。在式(3.7)中出现的矩阵(mathbf{H=X(X^TX)^{-1}X^T)

对向量求导的问题

图3.2展示了在(R^N)中最小二乘估计的的不同几何表示。我们记(mathbf{X})的列向量为(mathbf(x_0,x_1,ldots,x_p)),其中(x_0 equiv 1)。下文中第一列认为是跟其它的是一样的。这些向量张成了(R^N)的子空间,也被称作(mathbf{X})的列空间。我们通过选择(hat{beta})来最小化(RSS(beta)=abs(mathbf{y}-mathbf{X}beta)),则残差向量(mathbf{y-hat{y}})正交于子空间。(3.5)式描述了这种正交,然后估计的结果(hat{y})因此是(mathbf{y})在子空间的正交投影。帽子矩阵(mathbf{H})计算正交投影,因此也被称作投影矩阵。

可能会出现(mathbf{X})的列不是线性独立的,则(mathbf{X})不是满秩的。举个例子,如果两个输入是完全相关的,(比如,(x_2=3x_1))。则矩阵(mathbf{X^TX})是奇异的,并且最小二乘的系数(hat{beta})不是唯一的。然而,拟合值(mathbf{hat{y}}=mathbf{X}hat{beta})仍然是(mathbf{y})在列空间(mathbf{X})的投影;对于(mathbf{X})的列向量有多种方式表达这种投射。当一个或多个定性输入用一种冗余的方式编码时经常发现非满秩的情形。通过重编码或去除(mathbf{X})中的列,通常有一种自然的方式去分解不是唯一的表达方式。大多数回归软件包监测这些冗余并且用一些策略自动实现去除。秩缺失在信号和图像分析中经常发生,输入(p)可以超出训练的情形(N)。在这种情形下,特征经常通过滤波或由正则化控制的拟合。

截至目前我们已经对数据的真实分布做了很少的假设。为了约束(hat{beta})的取样特点,我们现在假设观测值(y_i)不相关,有恒定的方差(sigma^2),并且(x_i)是给定的(非随机)。最小二乘法的参数估计的方差-协方差阵可以很容易从式(3.6)得到
[ Var(hat{beta})=(mathbf{X}^Tmathbf{X})^{-1}sigma^2qquad (3.8) ]
经常通过下式来估计方差(sigma^2)
[ hat{sigma^2}=frac{1}{N-p-1}sumlimits_{i=1}^N(y_i-hat{y}_i)^2 ]
分母是(N-p-1)而不是(N),因为此时使得(hat{sigma}^2)为无偏估计:(E(hat{sigma}^2)=sigma^2)

为了对参数和模型进行推断,需要一些额外的假设。我们现在假设式((3.1))是均值的正确模型;则(Y)的条件期望关于(X_1,X_2,ldots,X_p)是线性的。我们也假设(Y)与其期望的偏差是可加的和高斯的。因此
begin{align}
Y&=E(Ymid X_1,ldots,X_p) epsilon
&=beta_0 sumlimits_{j=1}^pX_jbeta_j epsilonqquad (3.9)
end{align}
其中误差(epsilon)是期望值为0方差为(sigma^2)的高斯随机变量,记作(epsilonsim N(0,sigma^2))

由式(3.9),可以很简单地证明
[ hat{beta}sim N(beta,(mathbf{X}^Tmathbf{X})^{-1}sigma^2) qquad (3.11) ]
这是一个有上述均值向量和方差-协方差矩阵的多变量正态分布。同时有
[ (N-p-1)hat{sigma^2}sim sigma^2chi^2_{N-p-1}qquad (3.11) ]
是一个自由度为(N-p-1)的卡方分布。另外,(hat{beta})和(hat{sigma^2})是统计独立的。我们利用这些分布性质得到假设检验以及对于参数(beta_j)的置信区间

为了检验系数(beta_j)的这一假设,我们构造标准化因数或者Z-分数。
[ z_j=dfrac{hat{beta}_j}{hat{sigma}sqrt{v_j}}qquad (3.12) ]
其中(v_j)是((mathbf{X}^Tmathbf{X})^{-1})的第(j)个对角元。零假设为(beta_j=0),(z_j)分布为(t_{N-p-1})(自由度为(N-p-1)的t分布),因此当(z_j)的绝对值较大时会拒绝零假设。如果用已知的(sigma)值替换(hat{sigma}),则(z_j)服从标准正态分布。(t)分布和标准正态分布在尾概率之间的差异随着样本规模增大可以忽略,因此我们一般使用正态的分位数(图3.3)。

我们经常需要同时检验系数集体的显著性。举个例子,检验有(k)个水平的分类变量是否要从模型中排除,我们需要检验用来表示水平的虚拟变量的系数是否可以全部设定为0。这里我们利用(F)统计量
[ F=dfrac{(RSS_0-RSS_1)/(p_1-p_0)}{RSS_1/(N-p_1-1)}qquad (3.13) ]
其中(RSS_1)是有(p_1 1)个参数的大模型的最小二乘法拟合的残差平方和,(RSS_0)是有(p_0 1)参数的小模型的最小二乘法拟合的残差平方和,有(p_1-p_0)个参数限制为0.(F)统计量衡量了在大模型中每个增加的系数对残差平方和的改变,而且用(sigma^2)的估计值进行标准化。在高斯分布以及小模型的零假设为正确的,则(F)统计量服从(F_{p_1-p_0,N-p_1-1})分布

实例

library(quantreg)  # 载入quantreg包
data(engel)        # 加载quantreg包自带的数据集

分位数回归(tau = 0.5)
fit1 = rq(foodexp ~ income, tau = 0.5, data = engel)         
r1 = resid(fit1)   # 得到残差序列,并赋值为变量r1
c1 = coef(fit1)    # 得到模型的系数,并赋值给变量c1

summary(fit1)      # 显示分位数回归的模型和系数
`
Call: rq(formula = foodexp ~ income, tau = 0.5, data = engel)

tau: [1] 0.5

Coefficients:
            coefficients lower bd  upper bd 
(Intercept)  81.48225     53.25915 114.01156
income        0.56018      0.48702   0.60199
`

summary(fit1, se = "boot") # 通过设置参数se,可以得到系数的假设检验
`
Call: rq(formula = foodexp ~ income, tau = 0.5, data = engel)

tau: [1] 0.5

Coefficients:
            Value    Std. Error t value  Pr(>|t|)
(Intercept) 81.48225 27.57092    2.95537  0.00344
income       0.56018  0.03507   15.97392  0.00000
`

分位数回归(tau = 0.5、0.75)
fit1 = rq(foodexp ~ income, tau = 0.5, data = engel) 
fit2 = rq(foodexp ~ income, tau = 0.75, data = engel)

模型比较
anova(fit1,fit2)    #方差分析
`   
Quantile Regression Analysis of Deviance Table

Model: foodexp ~ income
Joint Test of Equality of Slopes: tau in {  0.5 0.75  }

  Df Resid Df F value    Pr(>F)    
1  1      469  12.093 0.0005532 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
`   
画图比较分析
plot(engel$foodexp , engel$income,pch=20, col = "#2E8B57",
     main = "家庭收入与食品支出的分位数回归",xlab="食品支出",ylab="家庭收入")
lines(fitted(fit1), engel$income,lwd=2, col = "#EEEE00")
lines(fitted(fit2), engel$income,lwd=2, col = "#EE6363")
legend("topright", c("tau=.5","tau=.75"), lty=c(1,1),
       col=c("#EEEE00","#EE6363"))

分分快三计划 3

不同分位点的回归比较
fit = rq(foodexp ~ income,  tau = c(0.05,0.25,0.5,0.75,0.95), data = engel)
plot( summary(fit))

分分快三计划 4

quantreg包

quantreg即:Quantile Regression,拥有条件分位数模型的估计和推断方法,包括线性、非线性和非参模型;处理单变量响应的条件分位数方法;处理删失数据的几种方法。此外,还包括基于预期风险损失的投资组合选择方法。

多元分位数回归

data(barro)

fit1 <- rq(y.net ~ lgdp2   fse2   gedy2   Iy2   gcony2, data = barro,tau=.25)
fit2 <- rq(y.net ~ lgdp2   fse2   gedy2   Iy2   gcony2, data = barro,tau=.50)
fit3 <- rq(y.net ~ lgdp2   fse2   gedy2   Iy2   gcony2, data = barro,tau=.75)
# 替代方式 fit <- rq(y.net ~ lgdp2   fse2   gedy2   Iy2   gcony2, method = "fn", tau = 1:4/5, data = barro)

anova(fit1,fit2,fit3)             # 不同分位点模型比较-方差分析
anova(fit1,fit2,fit3,joint=FALSE)
`
Quantile Regression Analysis of Deviance Table

Model: y.net ~ lgdp2   fse2   gedy2   Iy2   gcony2
Tests of Equality of Distinct Slopes: tau in {  0.25 0.5 0.75  }

       Df Resid Df F value  Pr(>F)  
lgdp2   2      481  1.0656 0.34535  
fse2    2      481  2.6398 0.07241 .
gedy2   2      481  0.7862 0.45614  
Iy2     2      481  0.0447 0.95632  
gcony2  2      481  0.0653 0.93675  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Warning message:
In summary.rq(x, se = se, covariance = TRUE) : 1 non-positive fis
`
不同分位点拟合曲线的比较
plot(barro$y.net,pch=20, col = "#2E8B57",
     main = "不同分位点拟合曲线的比较")
lines(fitted(fit1),lwd=2, col = "#FF00FF")
lines(fitted(fit2),lwd=2, col = "#EEEE00")
lines(fitted(fit3),lwd=2, col = "#EE6363")
legend("topright", c("tau=.25","tau=.50","tau=.75"), lty=c(1,1),
       col=c( "#FF00FF","#EEEE00","#EE6363"))

分分快三计划 5

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划