分位数回归
- 格式:doc
- 大小:887.50 KB
- 文档页数:24
条件分位数回归条件分位数回归是一种统计学方法,它可以利用多个自变量预测一个连续的因变量,并能够通过特定的分位数刻画预测结果。
这种方法可以在大型数据集中挖掘出隐藏在数据中的关系,是现代数据分析领域的热门研究课题之一。
一、条件分位数回归的概念及原理1.1 条件分位数回归的概念条件分位数回归模型是一种非参数回归分析方法,它使用了条件的分位数作为目标预测变量的方法。
它是通过对一组自变量和一个因变量的样本进行拟合函数,用于预测给定条件下的因变量的值(通常为中位数、上下十分位数等)。
具体来说,条件分位数回归的目标是通过不同条件的变量值来进行预测,例如一个明星获得社交媒体上的点赞数,主要与他最新一条动态的发布时间、是否携带图片等有一定的相关性。
1.2 条件分位数回归的原理条件分位数回归通过拟合一个基函数的线性组合来建立回归方程,该方程可以通过解决优化问题(如最小二乘法)而得到。
在条件分位数回归中,将函数的分布分为多个分位数区间,分别求出每个分位数区间的系数和常数项,用于计算预测值。
相比于普通回归方程,条件分位数回归容易排除偏大小和异常点对结果的干扰,更加鲁棒,并且对于非对称分布的数据更有效。
二、条件分位数回归的应用领域2.1 社会科学在社会科学领域中,条件分位数回归可以被用来探究不同变量对于某些特定人群的影响。
例如,条件分位数回归可以被用来分析不同收入水平的人群对于某些公共服务政策(如医疗、教育等)的接受度不同。
2.2 金融在金融领域,条件分位数回归可以被用来探讨股票价格与影响市场价格的因素之间的关系。
例如,可以利用该方法来探讨市场预期对价格变化的影响,从而规避股票交易带来的风险。
2.3 公共卫生疾病流行受到多种因素的影响,因此,条件分位数回归适用于探究这些因素对疾病的流行程度的影响。
例如,可以使用条件分位数回归来研究不同污染程度环境下婴儿出生体重的均值变化。
三、条件分位数回归的局限性3.1 可能存在模型偏差条件分位数回归模型是一种非参数模型,因此可能存在模型偏差。
分位数回归及其实例一、分位数回归的概念分位数回归(Quantile Regression):是计量经济学的研究前沿方向之一,它利用解释变量的多个分位数(例如四分位、十分位、百分位等)来得到被解释变量的条件分布的相应的分位数方程。
与传统的OLS 只得到均值方程相比,它可以更详细地描述变量的统计分布。
传统的线性回归模型描述了因变量的条件分布受到自变量X 的影响过程。
普通最dx--乘法是估计回归系数的最基本的方法,它描述了自变量X 对于因变量y 的均值影响。
如果模型中的随机扰动项来自均值为零而且同方差的分布,那么回归系数的最dx--乘估计为最佳线性无偏估计(BLUE);如果近一步随机扰动项服从正态分布,那么回归系数的最dx--乘法或极大似然估计为最小方差无偏估计(M Ⅵ甩)。
但是在实际的经济生活中,这种假设常常不被满足,饲如数据出现尖峰或厚尾的分布、存在显著的异方差等情况,这时的最小二乘法估计将不再具有上述优良性且稳健性非常差。
最小二乘回归假定自变量X 只能影响因变量的条件分布的位置,但不能影响其分布的刻度或形状的任何其他方面。
为了弥补普通最dx--乘法(0Ls)在回归分析中的缺陷,Koenkel"和Pxassett 于1978年提出了分位数回归(Quantile Regression)的思想。
它依据因变量的条件分位数对自变量X 进行回归,这样得到了所有分位数下的回归模型。
因此分位数回归相比普通最小二乘回归只能描述自变量X 对于因变量y 局部变化的影响而言,更能精确地描述自变量X 对于因变量y 的变化范围以及条件分布形状的影响。
分位数回归是对以古典条件均值模型为基础的最小二乘法的延伸,用多个分位函数来估计整体模型。
中位数回归是分位数回归的特殊情况,用对称权重解决残差最小化问题,而其他的条件分位数回归则用非对称权重解决残差最小化。
一般线性回归模型可设定如下:()((0)),(0,1).x t t I t ρττ=-<∈在满足高斯-马尔可夫假设前提下,可表示如下:01122(|)...k k E y x x x x αααα=++++其中u 为随机扰动项k αααα,...,,,210为待估解释变量系数。
分位数回归分析简介分位数回归分析(Quantile Regression Analysis)是一种统计分析方法,用来研究因变量与一个或多个自变量之间关系的非线性问题。
相比于传统的OLS(Ordinary Least Squares)回归分析,分位数回归分析更加灵活,能够提供对不同分位数的因变量条件分布的估计。
分位数回归的定义在传统的OLS回归中,我们通过找到一条线性回归方程来描述自变量和因变量之间的关系。
但是,OLS回归假设因变量在各个条件上的分布是相同的,即在不同的自变量取值下,因变量的条件分布是相同的。
而在分位数回归中,我们允许因变量在不同条件下的分布产生变化,因此可以更准确地描述不同区间的因变量与自变量之间的关系。
分位数回归的目标是找到一组系数,用于描述自变量与因变量在给定分位数时的关系。
分位数回归通过最小化残差的绝对值之和来估计这组系数。
这种方法使得我们能够探索不同分位数下自变量和因变量之间的变化。
分位数回归的优势相比于OLS回归,分位数回归具有以下优势:1.非线性建模能力:分位数回归能够对因变量和自变量之间的非线性关系进行建模,从而更准确地描述实际数据的特征。
2.探索条件分布的能力:由于分位数回归允许因变量在不同条件下的分布变化,因此可以提供对不同分位数的条件分布的估计,进一步帮助我们理解数据的性质。
3.对异常值的鲁棒性:分位数回归对异常值更加鲁棒,因为它通过最小化残差的绝对值之和来估计系数,而不是最小二乘法中常用的最小化残差的平方和。
4.考虑不完全因果关系:分位数回归可以用来研究因变量对自变量的影响程度,考虑到因变量可能由其他未观测的变量影响,从而提供了一种更加全面的因果分析方法。
分位数回归的应用分位数回归广泛应用于各个领域,以下是一些常见的应用场景:1.收入和贫困研究:分位数回归可以用来研究不同收入水平下的贫困率变化,进一步探讨收入不平等的影响因素。
2.教育研究:分位数回归可以用来研究教育水平对工资收入的影响情况,从而分析教育对个体生活水平的提高程度。
sklearn分位数回归简介1. 什么是分位数回归?分位数回归是一种统计方法,用于估计因变量在不同分位数下的条件分布函数。
与传统的最小二乘线性回归不同,分位数回归可以更好地处理数据中的异常值和离群点,并提供更具鲁棒性的回归估计。
在分位数回归中,我们不再关注因变量的平均值,而是将注意力放在因变量在不同分位数下的条件分布上。
这使得我们能够更好地了解数据的不同部分之间的关系,并更准确地预测因变量在不同条件下的取值。
2. sklearn中的分位数回归sklearn(Scikit-learn)是一个流行的Python机器学习库,提供了丰富的机器学习算法和工具。
在sklearn中,我们可以使用sklearn.quantile_regression模块来进行分位数回归分析。
2.1 安装sklearn要使用sklearn中的分位数回归功能,首先需要安装sklearn库。
可以使用以下命令在Python环境中安装sklearn:pip install -U scikit-learn2.2 分位数回归的基本用法在sklearn中,分位数回归的基本用法非常简单。
我们首先需要导入必要的模块:from sklearn.linear_model import QuantileRegressor然后,我们可以创建一个QuantileRegressor对象,并使用fit方法拟合模型:model = QuantileRegressor()model.fit(X, y)其中,X是自变量的特征矩阵,y是因变量的观测值。
通过拟合模型,我们可以得到在不同分位数下的回归系数。
接下来,我们可以使用predict方法来进行预测:y_pred = model.predict(X_new)其中,X_new是新的自变量的特征矩阵,y_pred是预测的因变量值。
2.3 分位数回归的参数设置在sklearn的QuantileRegressor模块中,我们可以通过设置不同的参数来控制分位数回归的行为。
分位数回归命令介绍分位数回归是一种统计分析方法,用于研究自变量对因变量特定分位数的影响程度。
它可以帮助我们了解不同部分数据的变动情况,并提供了一个更全面的数据分析工具。
在本文中,我们将详细介绍分位数回归的概念、原理和应用。
分位数回归的概念分位数回归是一种对统计数据进行建模的方法,它通过估计条件分布的分位数来描述自变量对因变量的影响。
与传统的OLS(最小二乘法)回归分析相比,分位数回归更注重观察数据的不同部分,而不仅仅是整体的平均水平。
分位数回归的原理分位数回归基于条件分布函数,通过估计分位数来确定自变量对因变量在不同分位数位置上的影响。
它的核心思想是对每个分位数进行截断回归分析,得到相应的系数估计。
这些估计可以告诉我们在特定分位数下,因变量受自变量影响的程度。
分位数回归的应用分位数回归在许多领域都有广泛的应用。
以下是一些常见的应用场景: 1. 经济学研究:分位数回归可以用于分析收入差距、教育对收入的影响等经济现象。
2. 医学研究:分位数回归可以用于探索各因素对特定生命指标的影响程度,例如体重、血压等。
3. 社会学研究:分位数回归可以帮助我们了解不同因素对社会问题的影响,如犯罪率、幸福感等。
分位数回归的命令对于分位数回归,我们可以使用各种统计软件来执行分位数回归命令。
以下是常见的一些命令示例: 1. Stata:使用qreg命令执行分位数回归分析,语法为qreg y x1 x2, quantile(p),其中p为所选的分位数。
2. R:使用quantreg包中的rq函数执行分位数回归分析,语法为rq(y ~ x1 + x2, tau = p),其中tau为所选的分位数。
3. Python:使用Statsmodels库中的QuantReg类执行分位数回归分析,示例代码如下:import statsmodels.api as smmodel = sm.QuantReg(y, X)result = model.fit(q=p)分位数回归的优缺点分位数回归方法具有一些优点和缺点,我们需要在应用时对其进行权衡和考虑: - 优点: 1. 提供了对数据不同部分的更详细描述。
分位数回归的起源和发展
分位数回归是一种统计学方法,用于分析变量之间的关系。
它的起源可以追溯到20世纪70年代,当时经济学家Huber和Ronchetti 提出了一种新的回归方法,称为“分位数回归”。
分位数回归的主要思想是通过对数据进行分位数分析,来确定变量之间的关系。
与传统的OLS回归方法不同,分位数回归不仅考虑了数据的平均值,还考虑了数据的分布情况。
这使得分位数回归更加适用于非正态分布的数据。
分位数回归的发展经历了多个阶段。
在20世纪80年代,分位数回归被广泛应用于经济学领域,特别是在劳动经济学和财政政策方面。
在90年代,分位数回归开始应用于其他领域,如医学、环境科学和社会科学等。
随着计算机技术的发展,分位数回归的应用范围也不断扩大。
现在,分位数回归已经成为一种常用的统计学方法,被广泛应用于各个领域。
例如,在金融领域,分位数回归被用于预测股票价格和汇率波动;在医学领域,分位数回归被用于研究药物的剂量和疗效;在环境科学领域,分位数回归被用于研究气候变化和环境污染等问题。
分位数回归是一种重要的统计学方法,它的起源可以追溯到20世纪70年代,经历了多个阶段的发展。
随着计算机技术的不断发展,分位数回归的应用范围也不断扩大,成为各个领域研究的重要工具。
前言:普通线性回归模型关注的是均值,研究的是在某些解释变量在取值固定的条件下响应变量的期望均值,模型估计方法是最小二乘法,使各个样本残差平方和(MSE)最小。
且只能够获得“在控制一系列干扰因素后,自变量增加一个单位,因变量(的均值)增加多少”这样的结果。
然而,普通最小二乘法处理异常值是将它们平方,平方会显著增加异常值对平均值等统计数据的巨大影响,如果我们不仅希望研究响应变量的期望均值,而且还想知道其对不同分位数上因变量的影响,这时候就需要分位数回归了。
1 分位数回归概述1.1 分位数概念分位数(Quantile),亦称分位点,是指将一个随机变量的概率分布范围分为几个等份的数值点,常用的有中位数(即二分位数)、四分位数(第25、50和75个百分位)、百分位数等。
1.2 分位数回归概念分位数回归既能研究在不同分位点处自变量X对于因变量Y的影响变化趋势,也能研究在不同分位点处的哪些自变量X是主要影响因素。
原理是将数据按因变量进行拆分成多个分位数点,研究不同分位点情况下时的回归影响关系情况。
比如说想要研究学习时间对学业成绩的影响,使用分位数回归我们就可以研究学习时间每增加一个单位,学生的学业成绩会如何变化,这里的学生可以是学习成绩位列前20%的好学生,也可以是位列50%的普通学生,还可以是位列后20%的后进生。
瞬间研究的范围就变大了,群体的异质性也体现出来了。
本质上,分位数回归就是一个加权最小二乘法,给不同的y值(大于分位点和小于分位点的y)不同的权重,比如现在我们有一个数据集是1到10各整数,我们希望求0.7分位数,假设这个0.7分位数是q,然后所有大于q的数都被赋上权重0.7,小于q的赋予权重0.3。
2 案例介绍建立分位数回归来分析产品质量、广告投放对产品销售的影响。
3 软件操作及结果解读3.1 软件操作可以添加需要分析的分位数,常用的分位数有四分位数、十分位数。
本例设定十分位数。
3.2 结果解读1)分位数回归结果表图表说明:上表格展示了分位数回归的参数结果,包括分位数点、变量、样本量、拟合度R²等,可从两方面来进行分析:●在不同分位数处自变量对因变量的回归系数呈现的变化趋势。
2、不同分位点拟合曲线的比较# 散点图attach(engel) # 打开engel数据集,直接运行其中的列名,就可以调用相应列plot(income,foodexp,cex=0.25,type="n", # 画图,说明①xlab="Household Income", ylab="Food Expenditure")points(income,foodexp,cex=0.5,col="blue") # 添加点,点的大小为0.5abline( rq(foodexp ~ income, tau=0.5), col="blue" ) # 画中位数回归的拟合直线,颜色蓝abline( lm(foodexp ~ income), lty = 2, col="red" ) # 画普通最小二乘法拟合直线,颜色红taus = c(0.05, 0.1, 0.25, 0.75, 0.9, 0.95)for(i in 1:length(taus)){ # 绘制不同分位点下的拟合直线,颜色为灰色abline( rq(foodexp ~ income, tau=taus[i]), col="gray" )}detach(engel)3、穷人和富人的消费分布比较# 比较穷人(收入在10%分位点的那个人)和富人(收入在90%分位点的那个人)的估计结果# rq函数中,tau不在[0,1]时,表示按最细的分位点划分方式得到分位点序列z = rq(foodexp ~ income, tau=-1)z$sol # 这里包含了每个分位点下的系数估计结果x.poor = quantile(income, 0.1) # 10%分位点的收入x.rich = quantile(income, 0.9) # 90%分位点的收入ps = z$sol[1,] # 每个分位点的tau值qs.poor = c( c(1,x.poor) %*% z$sol[4:5,] ) # 10%分位点的收入的消费估计值qs.rich = c( c(1,x.rich) %*% z$sol[4:5,] ) # 90%分位点的收入的消费估计值windows(, 10,5)par(mfrow=c(1,2)) # 把绘图区域划分为一行两列plot(c(ps,ps),c(qs.poor,qs.rich),type="n", # type=”n”表示初始化图形区域,但不画图xlab=expression(tau), ylab="quantile")plot(stepfun(ps,c(qs.poor[1],qs.poor)), do.points=F,add=T)plot(stepfun(ps,c(qs.poor[1],qs.rich)), do.points=F,add=T, col.hor="gray", col.vert="gray")ps.wts = ( c(0,diff(ps)) + c(diff(ps),0) )/2ap = akj(qs.poor, z=qs.poor, p=ps.wts)ar = akj(qs.rich, z=qs.rich, p=ps.wts)plot(c(qs.poor,qs.rich), c(ap$dens, ar$dens),type="n", xlab="Food Expenditure", ylab="Density")lines(qs.rich,ar$dens,col="gray")lines(qs.poor,ap$dens,col="black")legend("topright", c("poor","rich"), lty=c(1,1),col=c("black","gray"))上图表示收入(income)为10%分位点处(poor,穷人)和90%分位点处(rich,富人)的食品支出的比较。
从左图可以发现,对于穷人而言,在不同分位点估计的食品消费差别不大。
而对于富人而言,在不同分位点对食品消费的差别比较大。
右图反应了穷人和富人的食品消费分布曲线。
穷人的食品消费集中于400左右,比较陡峭;而富人的消费支出集中于800结果:Quantile Regression Analysis of Deviance TableModel: foodexp ~ incomeJoint Test of Equality of Slopes: tau in { 0.25 0.5 0.75 }Df Resid Df F value Pr(>F)1 2 703 15.557 2.449e-07 ***---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘’ 1其中P值远小于0.05,故不同分位点下收入对食品支出的影响机制不同。
(五)残差形态的检验也可以理解为是比较不同分位点的模型之间的关系。
主要有两种模型形式:(1)位置漂移模型:不同分位点的估计结果之间的斜率相同或近似,只是截距不同;表现为不同分位点下的拟合曲线是平行的。
(2)位置-尺度漂移模型:不同分位点的估计结果之间的斜率和截距都不同;表现为不同分位点下的拟合曲线不是平行的。
# 残差形态的检验source("C:/Program Files/R/R-2.15.0/library/quantreg/doc/gasprice.R")x = gaspricen = length(x)p = 5X = cbind(x[(p-1):(n-1)],x[(p-2):(n-2)],x[(p-3):(n-3)],x[(p-4):(n-4)])y = x[p:n]# 位置漂移模型的检验T1 = KhmaladzeTest(y~X, taus = -1, nullH="location")T2 = KhmaladzeTest(y~X, taus = 10:290/300,nullH="location", se="ker")结果:运行T1,可以查看其检验结果。
其中nullH表示原假设为“location”,即原假设为位置漂移模型。
Tn表示模型整体的检验,统计量为4.8。
THn是对每个自变量的检验。
比较T1和T3的结果(T3的原假设为“位置尺度漂移模型”),T1的统计量大于T3的统计量,可见相对而言,拒绝“位置漂移模型”的概率更大,故相对而言“位置尺度漂移模型”更加合适一些。
> T1$nullH[1] "location"$Tn[1] 4.803762$THnX1 X2 X3 X41.0003199 0.5321693 0.5020834 0.8926828attr(,"class")[1] "KhmaladzeTest"> T3$nullH[1] "location-scale"$Tn[1] 2.705583$THnX1 X2 X3 X41.2102899 0.6931785 0.5045163 0.8957127attr(,"class")[1] "KhmaladzeTest"(六)非线性分位数回归这里的非线性函数为Frank copula函数。
## Demo of nonlinear quantile regression model based on Frank copulavFrank <- function(x, df, delta, u) # 某个非线性过程,得到的是[0,1]的值-log(1-(1-exp(-delta))/(1+exp(-delta*pt(x,df))*((1/u)-1)))/delta# 非线性模型FrankModel <- function(x, delta, mu,sigma, df, tau) {z <- qt(vFrank(x, df, delta, u = tau), df)mu + sigma*z}n <- 200 # 样本量df <- 8 # 自由度delta <- 8 # 初始参数set.seed(1989)x <- sort(rt(n,df)) # 生成基于T分布的随机数v <- vFrank(x, df, delta, u = runif(n)) # 基于x生成理论上的非参数对应值y <- qt(v, df) # v 对应的T分布统计量windows(5,5)plot(x, y, pch="o", col="blue", cex = .25) # 散点图Dat <- data.frame(x = x, y = y) # 基本数据集us <- c(.25,.5,.75)for(i in 1:length(us)){v <- vFrank(x, df, delta, u = us[i])lines(x, qt(v,df)) # v为概率,计算每个概率对应的T分布统计量}cfMat <- matrix(0, 3, length(us)+1) # 初始矩阵,用于保存结果的系数for(i in 1:length(us)) {tau <- us[i]cat("tau = ", format(tau), ".. ")fit <- nlrq(y ~ FrankModel(x, delta,mu,sigma, df = 8, tau = tau), # 非参数模型data = Dat, tau = tau, # data表明数据集,tau分位数回归的分位点start= list(delta=5, mu = 0, sigma = 1), # 初始值trace = T) # 每次运行后是否把结果显示出来lines(x, predict(fit, newdata=x), lty=2, col="red") # 绘制预测曲线cfMat[i,1] <- tau # 保存分位点的值cfMat[i,2:4] <- coef(fit) # 保存系数到cfMat矩阵的第i行cat("\n") # 如果前面把每步的结果显示出来,则每次的结果之间添加换行符}colnames(cfMat) <- c("分位点",names(coef(fit))) # 给保存系数的矩阵添加列名cfMat结果:拟合结果:(过程略)> cfMat分位点delta mu sigma [1,] 0.25 14.87165 -0.20530041 0.9134657[2,] 0.50 16.25362 0.03232525 0.9638209[3,] 0.75 12.09836 0.11998614 0.9423476(七)半参数和非参数分位数回归非参数分位数回归在局部多项式的框架下操作起来更加方便。