-
2021-09-06 20:14:27更多相关内容
-
实证操作:R语言实现分位数回归的介绍
2022-04-04 23:27:03“分位数回归是估计一组回归变量X与被解释变量Y的分位数之间线性关系的建模...这里以R里面分位数回归程序包(quantreg)自带的数据barro为例,来展示R语言如何进行分位数回归的操作。 library(quantreg)data“分位数回归是估计一组回归变量X与被解释变量Y的分位数之间线性关系的建模方法。从最小二乘法可以看出,传统回归中最小化残差的平方极易受极端值的影响,而且属于均值回归,这种方法不能得到不同分布下的数据关系
导入程序包与数据
分位数回归不考虑同方差、正态分布的假设,具有异常点抗耐性、捕捉分布尾部特征等特点,回归结果更加稳健。这里以R里面分位数回归程序包(quantreg)自带的数据barro为例,来展示R语言如何进行分位数回归的操作。
library(quantreg)
data(barro)
library(quantreg)就是导入分位数回归的程序包,data(barro)是该程序包自带的数据,它是Barro 和 Lee,1994研究使用的数据,主要是161个国家的经济增长、人均GDP、滞后5年的投资占GDP比重、滞后5年的政府开支(国防和教育)占GDP比重、黑市外汇升水(对数形式)等,部分数据展示如下:
02
—
数据处理与变量选择
对barro数据进行描述性统计,并选取因变量y与自变量x。
##描述性统计
summary(barro)
##选取变量作为y、x
y <- barro$y.net
x<- cbind(barro$lgdp2,
-
基于R语言的分位数回归(quantile regression)
2017-12-18 17:45:21分位数回归(quantile regression) 这一讲,我们谈谈分位数...到2005年的时候,分位数回归的创立者Koenker R写了一本分位数回归的专著,剑桥大学出版社出版的。今年本来老爷子要出一本《handbook of quantile regres分位数回归(quantile regression)
这一讲,我们谈谈分位数回归的知识,我想大家传统回归都经常见到。分位数回归可能大家见的少一些,其实这个方法也很早了,大概78年代就有了,但是那个时候这个理论还不完善。到2005年的时候,分位数回归的创立者Koenker R写了一本分位数回归的专著,剑桥大学出版社出版的。今年本来老爷子要出一本《handbook of quantile regression》,还没有正式出来呢,目前来看,分位数回归应用的范围非常广。在金融领域尤为重要。下面先给大家简单介绍一下,分位数回归的基本原理,完后拿R做一个完整的案例。为什么拿R软件,因为分位数回归的发明者最早拿R写了一个包,叫quantreag,是当时唯一一个分位数回归的包,现在的话,看到python,julia也有相关的包了。但是感觉这个R的还是最好的。
那么什么是分位数回归呢,这个就要从传统的回归说起,传统回归呢,一般叫最小二乘回归,也叫均值回归。这个均值是指条件均值。比较抽象,在前面有一篇博文中,我比较详细地解释过。那么分位数回归就是均值回归的拓展,也就是它可以拟合均值以外的其它分位点,形成多条回归线,这里首先需要强调的是分位数回归的分位点是指因变量y的分位点,不是x的。这样我们如果设定多个分位点就得到了多条回归直线。当然分位数回归现在也发展出来非线性分位数回归,就是可以拟合出多条曲线,或者和广义线性回归模型一样可以适用二值变量。要说分位数回归具体的原理,后面有空再细谈。下面我们拿R语言做一个案例,大家就可以逐渐感受到分位数回归具体的含义了。案例所用的数据呢,大家应该都比较熟悉,就是收入和食品消费支出的数据,下面看代码。#导入分位数回归的包 library(quantreg) # 引入数据 data(engel) #查看数据格式 mode(engel) [1] "list" #查看变量名 names(engel) [1] "income" "foodexp" #查看格式 class(engel) [1] "data.frame" #查看数据的前五行 head(engel) income foodexp 1 420.1577 255.8394 2 541.4117 310.9587 3 901.1575 485.6800 4 639.0802 402.9974 5 750.8756 495.5608 6 945.7989 633.7978 #画个散点图看看数据 plot(engel$income, engel$foodexp, xlab='income', ylab='foodexp')
图是这样的
下面我们继续简单查看一下数据#查看foodexp的变化范围 boxplot(engel$foodexp, xlab='foodexp') #简单验证一下因变量foodexp是否服从正态分布 qqnorm(engel$foodexp, main='QQ plot') qqline(engel$foodexp, col='red', lwd=2)
结果如下:
下面是QQ图
结果表明,因变量y明显不服从正态分布,但是呢,分位数回归不要求y服从正态分布,不仅如此,而且分位数回归还对异常值点不敏感。下面我们继续,为了对比,我们仍然做一个均值回归,再做一个分位数回归。#可以直接调用数据框里变量 attach(engel) #设置0.05, 0.25, 0.5, 0.75, 0.95五个分位点,并且进行分位数回归,这样可以得到五条分位数回归线 rq_result <- rq(foodexp ~ income, tau=c(0.05, 0.25, 0.5, 0.75, 0.95)) summary(rq_result) Call: rq(formula = foodexp ~ income, tau = c(0.05, 0.25, 0.5, 0.75, 0.95)) tau: [1] 0.05 Coefficients: coefficients lower bd upper bd (Intercept) 124.88004 98.30212 130.51695 income 0.34336 0.34333 0.38975 Call: rq(formula = foodexp ~ income, tau = c(0.05, 0.25, 0.5, 0.75, 0.95)) tau: [1] 0.25 Coefficients: coefficients lower bd upper bd (Intercept) 95.48354 73.78608 120.09847 income 0.47410 0.42033 0.49433 Call: rq(formula = foodexp ~ income, tau = c(0.05, 0.25, 0.5, 0.75, 0.95)) tau: [1] 0.5 Coefficients: coefficients lower bd upper bd (Intercept) 81.48225 53.25915 114.01156 income 0.56018 0.48702 0.60199 Call: rq(formula = foodexp ~ income, tau = c(0.05, 0.25, 0.5, 0.75, 0.95)) tau: [1] 0.75 Coefficients: coefficients lower bd upper bd (Intercept) 62.39659 32.74488 107.31362 income 0.64401 0.58016 0.69041 Call: rq(formula = foodexp ~ income, tau = c(0.05, 0.25, 0.5, 0.75, 0.95)) tau: [1] 0.95 Coefficients: coefficients lower bd upper bd (Intercept) 64.10396 46.26495 83.57896 income 0.70907 0.67390 0.73444 #上面就是没条回归线的回归系数,我们做个图看一下 plot(income, foodexp, cex=0.25, type='n', xlab='income', ylab='foodexp') points(income, foodexp, cex=0.5, col='blue') #加中位数数回归的直线 abline(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') }
效果如下:
从上图,我们可以看到,分位数回归可以拟合出多条直线,这个对于我们数据分布比较复杂的时候,很有用处,每条线反应了不同档次下,自变量与因变量的关系。实际上这个只是分位数回归的一小部分应用,得到不同分位点下的数据,我们还可以进行概率密度估计,得到相应的概率密度预测。
这一讲我们就到这。 -
R语言如何如何实现分位数回归(Quantile Regression)模型?
2022-03-22 17:13:41R语言如何如何实现分位数回归(Quantile Regression)模型?R语言如何如何实现分位数回归(Quantile Regression)模型?
目录
R语言如何如何实现分位数回归(Quantile Regression)模型?
R语言如何如何实现分位数回归(Quantile Regression)模型?
R语言是解决什么问题的?
R 是一个有着统计分析功能及强大作图功能的软件系统,是由奥克兰大学统计学系的Ross Ihaka 和 Robert Gentleman 共同创立。由于R 受Becker, Chambers & Wilks 创立的S 和Sussman 的Scheme 两种语言的影响,所以R 看起来和S 语言非常相似。
R语言被称作R的部分是因为两位R 的作者(Robert Gentleman 和Ross Ihaka) 的姓名,部分是受到了贝尔实验室S 语言的影响(称其为S 语言的方言)。
R 语言是为数学研究工作者设计的一种数学编程语言,主要用于统计分析、绘图、数据挖掘。
如果你是一个计算机程序的初学者并且急切地想了解计算机的通用编程,R 语言不是一个很理想的选择,可以选择 Python、C 或 Java。
R 语言与 C 语言都是贝尔实验室的研究成果,但两者有不同的侧重领域,R 语言是一种解释型的面向数学理论研究工作者的语言,而 C 语言是为计算机软件工程师设计的。
R 语言是解释运行的语言(与 C 语言的编译运行不同),它的执行速度比 C 语言慢得多,不利于优化。但它在语法层面提供了更加丰富的数据结构操作并且能够十分方便地输出文字和图形信息,所以它广泛应用于数学尤其是统计学领域。
R语言如何如何实现分位数回归(Quantile Regression)模型?
安利一个R语言的优秀博主及其CSDN专栏:
博主R语言专栏地址(R语言从入门到机器学习、持续输出已经超过1000篇文章)
参考:R
-
分位数回归
2019-02-27 19:46:40分位数回归 做回归处理时的一种优化算法 数据处理方面 -
拓端tecdat|R语言实现贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析
2021-06-07 18:09:00摘要 贝叶斯回归分位数在最近的文献中受到广泛关注,本文实现了贝叶斯系数估计和回归分位数(RQ)中的变量选择,带有lasso和自适应...自引入以来,分位数回归一直是理论界非常关注的话题,也在许多研究领域得到了. -
拓端tecdat|R语言分位数回归预测筛选有上升潜力的股票
2020-04-27 15:06:11现在,分位数回归已被确立为重要的计量经济学工具。与均值回归(OLS)不同,目标不是给定x的均值,而是给定x的一些分位数。您可以使用它来查找具有良好上升潜力的股票。 -
分位数回归(quantile regression)R实现
2021-11-28 00:37:28分位数回归已经获得了巨大的发展,不仅可以进行简单的横截面数据的估计,而且还可以进行panel数据模型估计、干预效应模型估计、计数模型估计、因变量是区间值的logistic模型估计、工具变量估计等。 -
用R语言进行分位数回归
2018-12-04 21:22:00非线性分位数回归这里的非线性函数为Frank copula函数。 (六)非线性分位数回归 这里的非线性函数为Frank copula函数。 ## Demo of nonlinear quantile regression model based on ... -
拓端tecdat|R语言分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测
2020-04-19 21:59:17本文在R语言中使用分位数回归、GAM样条曲线、指数平滑和SARIMA模型对电力负荷时间序列预测并比较。 用电量 本文使用的数据是1996年至2010年之间的每周用电量数据,序列 load ("Load.RData") plot (ts( data = Load ,... -
用R语言进行分位数回归:基础篇
2018-12-05 10:31:00用R语言进行分位数回归:基础篇 詹鹏 (北京师范大学经济管理学院 北京) http://www.xiaowanxue.com/up_files/2012121819040.html 转载于:https://www.cnblogs.com/jwg-fendi/p/10069488.html... -
拓端tecdat|R语言分位数回归Quantile Regression分析租房价格
2020-04-14 00:01:58本文想在R软件中更好地了解分位数回归优化。在查看分位数回归之前,让我们从样本中计算中位数或分位数。 -
分位数回归的r语言代码
2015-12-13 19:32:28setwd("I:/研一课程/2.2回归分析/R/data")#设定当前的工作目录,重要! d library("quantreg") fit1=rq(waiting~eruptions,tau=0.5,data=d) fit1 summary(fit1) r1=resid(fit1) #残差序列 c1=coef(fit1) #... -
分位数回归--基于R
2019-10-16 17:21:39分位数回归 分位数回归是估计一组回归变量X与被解释变量Y的分位数之间线性关系的建模方法。以往的回归模型实际上是研究被解释变量的条件期望。而人们也关心解释变量与被解释变量分布的中位数、分位数呈何种关系。它... -
用R语言进行分位数回归.doc
2021-10-08 19:38:50用R语言进行分位数回归.doc -
论文研究-带网络结构的自适应Lasso分位数回归及其应用.pdf
2019-09-20 21:43:42论文研究-带网络结构的自适应Lasso分位数回归及其应用.pdf, CVaR是衡量组合投资的重要风险测度,如何在CVaR组合模型中选择稳健的资产组合以降低管理时间和经济成本十分... -
【原创】R语言进行分位数回归数据分析报告论文(附代码数据)
2020-12-09 17:55:06第一节分位数回归介绍(一)为什么需要分位数回归?传统的线性回归模型描述了因变量的条件均值分布受自变量X的影响过程。其中,最小二乘法是估计回归系数的最基本方法。如果模型的随机误差项来自均值为零、方差相同的... -
用R语言的quantreg包进行分位数回归
2018-12-04 21:25:00什么是分位数回归 分位数回归(Quantile Regression)是计量经济学的研究前沿方向之一,它利用解释变量的多个分位数(例如四分位、十分位、百分位等)来得到被解释变量的条件分布的相应的分位数方程。 与传统的... -
使用quantreg包进行分位数回归如何计算每个分位数方程的拟合优度
2021-08-22 14:29:11使用R语言的quantreg包进行分位数回归,我希望通过每个分位数方程的拟合优度来确定上界,请问如何计算? -
R语言与等分线性回归.pdf
2017-12-31 23:29:19的概念对于一般人而言较陌生,并且分位数回归模型较线性回归模型复杂不易理 解。因此,本书作者潘文超(Pan, 2017)教授在国际 SSCI 期刊” EURASIA Journal of Mathematics Science and Technology Education”第 13 卷... -
分位数回归的R语言实现
2014-11-10 21:38:35转载自: E文看这篇:http://www.econ.uiuc.edu/~roger/research/rq/vig.pdf 中文看这篇:... 工具:R中的quantreg包 主要的分位数回归命令:rq(),nlrq(),lprq(),boot.rq等 rq(formula, -
拓端tecdat|R语言分位数自回归QAR分析痛苦指数:失业率与通货膨胀率时间序列
2022-02-18 17:40:56“分位数自回归”,它是对时间序列域的重要扩展。 本教程的数据是痛苦指数,它是一个月频率时间序列,总和:(失业率 + 通货膨胀率)构成所谓的“苦难指数”。“什么是痛苦指数?就是失业率与通货膨胀率之和”。该... -
python中的分位数回归(初探)
2021-11-08 16:04:17分位数回归 参考文献 Python statsmodels 介绍 - 树懒学堂 (shulanxt.com) Quantile Regression - IBM Documentation https://www.cnblogs.com/TMesh/p/11737368.html 传统的线性回归模型 其的求解方式是一个最小... -
R中怎么做加权最小二乘_Stata+R:分位数回归一文读懂
2020-11-21 06:31:47连享会·推文专辑:Stata资源 | 数据处理 | Stata绘图 | Stata程序结果输出 | 回归分析 | 时间序列 | 面板数据 | 离散数据交乘调节 | DID | RDD | 因果推断 | SFA-TFP-DEA文本分析+爬虫 | 空间计量 | 学术论文 | ... -
【R】【课程笔记】07 分位数回归与VaR(ES)计算
2020-06-10 11:40:34例4:用线性分位数回归进行参数估计 包:quantmod #例7.4 library(quantreg) fit1 (formula = r.price ~ r.volume, tau = 0.5, data = SSEC) # 分位数回归拟合 fit1 plot(r.volume, r.price, xlab= "volume", ylab=... -
非线性分位数回归中的小卡壳
2021-08-16 15:00:45#与常规非线性拟合回归过程不同的是 fitexp2P <- nls(y~SSexp2P(x,a,b), data=xy) summary(fitexp2P) nlrq(y~SSexp2P(x,a,b), data=xy,tau=0.85, trace=TRUE) 拟合SSex2p过程中发现了 fit2p <- nlrq(s~... -
R构建分位数回归模型(Quantile Regression)
2021-07-16 19:39:05R构建分位数回归模型(Quantile Regression) 目录 R构建分位数回归模型(Quantile Regression) 数据集 分位数回归模型 结果可视化 线性回归是一种我们可以用来理解一个或多个预测变量和一个响应变量... -
分位数回归模型学习笔记
2018-03-09 11:10:54我读硕士老师给我的第一篇论文就是一个分位数回归的文章,当时觉得这个模型很简单,我很快就用R的示例文件写了一个例子,但是,在后面的研究中,我越来越觉得,这个模型没有我想的那么简单,而且有着非常丰富的内涵... -
拓端tecdat|基于R语言实现LASSO回归分析
2020-02-18 20:33:04面板平滑转移回归(PSTR)分析案例实现 3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR) 4.R语言泊松Poisson回归模型分析案例 5.R语言回归中的Hosmer-Lemeshow拟合优度检验 6.r语言中对LASSO回归,Ridge岭回归... -
R语言回归篇
2021-01-17 05:02:471.回归的多面性回归类型用途简单线性个量化的解释变量来预测一个量化的响应变量(一个因变量、一个自变量)多项式一个量化的解释变量预测一个量化的响应变量,模型的关系是n阶多项式(一个预测变量,但同时包含变量的幂...