用R语言进行分位数回归

合集下载

R语言与回归分析

R语言与回归分析

R语言与回归分析R语言是用于统计分析和图形展示的开源编程语言。

它提供了丰富的统计和图形显示功能,特别适用于回归分析。

回归分析是一种统计方法,用于探索两个或多个变量之间的关系。

回归分析可以用来预测一个变量(因变量)的值,基于其他变量(自变量)的值。

回归分析通常用来解决以下问题:-预测:根据已知的自变量值,预测因变量的值-解释:了解自变量如何解释因变量的变化-诊断:检验模型的拟合程度,评估因变量的异常值和离群值在R语言中,回归分析可以通过多种函数和包来实现。

以下是R语言中最常用的回归分析函数和包:1. lm函数:lm函数是R中最基本的回归函数,用于拟合线性回归模型。

它可以通过最小二乘法估计回归系数,并得到相应的拟合优度、方差分析和置信区间等结果。

2. glm函数:glm函数用于拟合广义线性模型,可以处理因变量为二元变量或计数变量的情况。

它使用的是最大似然估计方法,可以拟合logistic回归、泊松回归等非线性模型。

3. caret包:caret包提供了一种简洁的接口来拟合回归模型,并提供了模型选择、交叉验证和预测等功能。

它可以自动选择最佳的模型,并使用不同的评估指标进行模型性能评估。

4. ggplot2包:ggplot2包是一个用于绘制高质量统计图形的包。

它支持直观的图形语法,可以用于绘制回归线、散点图和残差图等。

在进行回归分析之前,我们需要准备数据。

R语言提供了多种输入数据的方式,包括读取Excel文件、导入CSV文件、从数据库中读取数据等。

在数据准备之后,我们可以使用lm函数或glm函数拟合回归模型,并使用summary函数查看结果。

通过summary函数,我们可以获取拟合的系数、截距、p值、拟合优度R-squared等统计指标。

除了基本的回归函数和包,R语言还提供了更加灵活和复杂的回归模型,如非线性回归、广义可加模型(GAM)和混合效应模型等。

这些模型需要使用更专业的包,如nlme包、lme4包和mgcv包等。

分位数回归分析

分位数回归分析

分位数回归分析简介分位数回归分析(Quantile Regression Analysis)是一种统计分析方法,用来研究因变量与一个或多个自变量之间关系的非线性问题。

相比于传统的OLS(Ordinary Least Squares)回归分析,分位数回归分析更加灵活,能够提供对不同分位数的因变量条件分布的估计。

分位数回归的定义在传统的OLS回归中,我们通过找到一条线性回归方程来描述自变量和因变量之间的关系。

但是,OLS回归假设因变量在各个条件上的分布是相同的,即在不同的自变量取值下,因变量的条件分布是相同的。

而在分位数回归中,我们允许因变量在不同条件下的分布产生变化,因此可以更准确地描述不同区间的因变量与自变量之间的关系。

分位数回归的目标是找到一组系数,用于描述自变量与因变量在给定分位数时的关系。

分位数回归通过最小化残差的绝对值之和来估计这组系数。

这种方法使得我们能够探索不同分位数下自变量和因变量之间的变化。

分位数回归的优势相比于OLS回归,分位数回归具有以下优势:1.非线性建模能力:分位数回归能够对因变量和自变量之间的非线性关系进行建模,从而更准确地描述实际数据的特征。

2.探索条件分布的能力:由于分位数回归允许因变量在不同条件下的分布变化,因此可以提供对不同分位数的条件分布的估计,进一步帮助我们理解数据的性质。

3.对异常值的鲁棒性:分位数回归对异常值更加鲁棒,因为它通过最小化残差的绝对值之和来估计系数,而不是最小二乘法中常用的最小化残差的平方和。

4.考虑不完全因果关系:分位数回归可以用来研究因变量对自变量的影响程度,考虑到因变量可能由其他未观测的变量影响,从而提供了一种更加全面的因果分析方法。

分位数回归的应用分位数回归广泛应用于各个领域,以下是一些常见的应用场景:1.收入和贫困研究:分位数回归可以用来研究不同收入水平下的贫困率变化,进一步探讨收入不平等的影响因素。

2.教育研究:分位数回归可以用来研究教育水平对工资收入的影响情况,从而分析教育对个体生活水平的提高程度。

R语言数据分析—分段回归

R语言数据分析—分段回归

R语言数据分析—分段回归
概述
分段回归是一种用于处理非线性关系的统计方法。

在R语言中,可以使用segmented包来实现分段回归分析。

安装segmented包
在R中,要使用segmented包,首先需要安装该包。

可以通过
运行以下代码来安装:
install.packages("segmented")
安装完成后,通过以下代码加载包:
library(segmented)
数据准备
在进行分段回归分析之前,首先需要准备好相应的数据。

数据
应该包含两个变量,一个作为自变量(x),一个作为因变量(y)。

确保数据已经通过合适的方式导入到R中。

分段回归分析
使用segmented包进行分段回归分析非常简单。

以下是一个示
例代码,展示了如何使用segmented包对数据进行分段回归分析:
创建一个分段回归模型
model <- segmented(lm(y ~ x, data = your_data))
查看分段回归模型的结果
summary(model)
通过运行代码,就可以得到分段回归模型的结果。

结果包括每
个分段的截距、斜率和显著性检验结果等。

结论
分段回归是一种有效的数据分析方法,可以用于处理非线性关系。

使用R语言中的segmented包,可以方便地进行分段回归分析。

通过合适的数据准备和分析步骤,可以得到有关分段回归模型的详
细结果。

请注意,分段回归模型的结果仅基于所提供的数据和分析方法。

对于特定情况和相关问题,可能需要更深入的讨论和进一步分析。

r语言加权分位数和回归

r语言加权分位数和回归

r语言加权分位数和回归R语言是一种用于统计分析和数据可视化的强大编程语言和环境。

它具有丰富的功能和扩展性,适用于各种数据处理任务。

其中,加权分位数和回归是R语言中常用的分析方法之一。

本文将详细介绍R语言中如何使用加权分位数和回归进行数据分析,并逐步解答相关问题。

一、加权分位数加权分位数是对数据进行分割的方法,它可以提供数据的中间值、上四分位数和下四分位数等信息。

在R语言中,我们可以使用`quantile()`函数来计算加权分位数。

该函数具有以下语法:quantile(x, probs, weights)其中,`x`是数据向量,`probs`是指定的分位数,可以是一个或多个分位数,取值范围为0到1,默认为0.25、0.5和0.75,`weights`是用于加权的向量,必须与`x`具有相同的长度。

例如,我们有一个包含100个观测值的数据向量`data`,并且每个观测值的权重存储在向量`weights`中。

要计算数据的加权中位数和加权四分位数,可以使用以下代码:Rdata <- c(...)weights <- c(...)weighted_median <- quantile(data, 0.5, weights)weighted_lower_quartile <- quantile(data, 0.25, weights) weighted_upper_quartile <- quantile(data, 0.75, weights)二、回归分析回归分析是一种通过建立一个数学模型来揭示自变量与因变量之间关系的方法。

在R语言中,可以使用`lm()`函数来拟合线性回归模型。

该函数具有以下语法:lm(formula, data)其中,`formula`是一个公式,用于指定模型的结构,一般为`因变量~ 自变量1 + 自变量2 + ...`,`data`是包含数据的数据框。

需要注意的是,数据框中的变量名必须与公式中使用的变量名相匹配。

r语言加权分位数和回归 -回复

r语言加权分位数和回归 -回复

r语言加权分位数和回归-回复R语言加权分位数和回归引言在统计学和数据分析领域,加权分位数和回归都是常用的分析方法。

R语言作为一种功能强大的统计分析工具,可以用来实现这些方法。

本文将介绍R语言中的加权分位数和回归的概念、计算方法以及应用场景。

加权分位数加权分位数是指在计算分位数时考虑到不同数据点的权重。

对于一组数据,我们常常用分位数来描述其中的特定百分比位置。

例如,第50个百分位数,即中位数,将数据分为两部分,前50的数据比中位数小,后50的数据比中位数大。

在R语言中,可以使用`weighted.median()`函数来计算加权分位数。

这个函数需要两个参数:数据向量和权重向量。

例如,对于向量`data <- c(1, 2, 3, 4, 5)`和权重向量`weight <- c(0.1, 0.2, 0.3, 0.2, 0.2)`,可以使用`weighted.median(data, weight)`来计算加权中位数。

此外,R语言中的`quantile()`函数也可以进行加权分位数的计算。

该函数的`weight`参数可以用于指定数据点的权重。

例如,`quantile(data, weights = weight, probs = 0.5)`将计算加权中位数。

加权分位数的应用场景包括统计调查数据、经济数据以及医学研究。

通过考虑数据点的权重,可以更准确地获得总体的分布情况。

回归回归是一种用于建立变量之间关系的分析方法。

简单线性回归是回归分析中最基本的形式,用于建立一个依赖变量和一个或多个解释变量之间的线性关系模型。

在R语言中,可以使用`lm()`函数进行简单线性回归分析。

为了演示回归分析的步骤,我们将使用R自带的mtcars数据集。

这个数据集包含了32辆汽车的一些相关信息,如燃油效率、气缸数、马力等。

首先,我们可以使用`head(mtcars)`来查看数据集的前几行。

然后,我们可以通过绘制散点图来研究两个变量之间的关系。

★分位数回归R(quantreg)

★分位数回归R(quantreg)

分位数回归R(quantreg)一、如果你能能上国外的点击菜单上“程序包”——>“安装程序包”——>选择一个网站——>点击“quantreg”就能下载并安装。

如果你不能上网站,把我附件中的文件解压后,放入R\library的子目录下就可以了。

二、用library(quantreg)调入,就可以作分位数回归了。

下面的命令帮助你熟悉quantreg.> help(package = "quantreg")> help(rq)三、下面是一个例子,或许对你有帮助。

data(engel)engelx y1 420.1577 255.83942 541.4117 310.95873 901.1575 485.68004 639.0802 402.99745 750.8756 495.56086 945.7989 633.79787 829.3979 630.75668 979.1648 700.44099 1309.8789 830.958610 1492.3987 815.360211 502.8390 338.001412 616.7168 412.361313 790.9225 520.000614 555.8786 452.401515 713.4412 512.720116 838.7561 658.839517 535.0766 392.599518 596.4408 443.558619 924.5619 640.116420 487.7583 333.839421 692.6397 466.958322 997.8770 543.396923 506.9995 317.719824 654.1587 424.320925 933.9193 518.961726 433.6813 338.001427 587.5962 419.641228 896.4746 476.320029 454.4782 386.360231 800.7990 503.357232 502.4369 354.638933 713.5197 497.318234 906.0006 588.519535 880.5969 654.597136 796.8289 550.727437 854.8791 528.377038 1167.3716 640.481339 523.8000 401.320440 670.7792 435.999041 377.0584 276.560642 851.5430 588.348843 1121.0937 664.197844 625.5179 444.860245 805.5377 462.899546 558.5812 377.779247 884.4005 553.150448 1257.4989 810.896249 2051.1789 1067.954150 1466.3330 1049.878851 730.0989 522.701253 1245.6964 907.396954 1201.0002 811.577655 634.4002 427.797556 956.2315 649.998557 1148.6010 860.600258 1768.8236 1143.421159 2822.5330 2032.679260 922.3548 590.618361 2293.1920 1570.391162 627.4726 483.480063 889.9809 600.480464 1162.2000 696.202165 1197.0794 774.796266 530.7972 390.598467 1142.1526 612.561968 1088.0039 708.762269 484.6612 296.919270 1536.0201 1071.462771 678.8974 496.597672 671.8802 503.397473 690.4683 357.641174 860.6948 430.337675 873.3095 624.699076 894.4598 582.541377 1148.6470 580.221578 926.8762 543.880779 839.0414 588.637280 829.4974 627.999981 1264.0043 712.101282 1937.9771 968.394983 698.8317 482.581684 920.4199 593.169485 1897.5711 1033.565886 891.6824 693.679587 889.6784 693.679588 1221.4818 761.279189 544.5991 361.398190 1031.4491 628.452291 1462.9497 771.448692 830.4353 757.118793 975.0415 821.597094 1337.9983 1022.320295 867.6427 679.440796 725.7459 538.749197 989.0056 679.998198 1525.0005 977.003399 672.1960 561.2015 100 923.3977 728.3997 101 472.3215 372.3186 102 590.7601 361.5210 103 940.9218 517.9196 104 643.3571 459.8177 105 2551.6615 863.9199 106 1795.3226 831.4407 107 1165.7734 534.7610 108 815.6212 392.0502 109 1264.2066 934.9752 110 1095.4056 813.3081 111 447.4479 263.7100 112 1178.9742 769.0838 113 975.8023 630.5863 114 1017.8522 645.9874 115 423.8798 319.5584 116 558.7767 348.4518 117 943.2487 614.5068118 1348.3002 662.0096 119 2340.6174 1504.3708 120 587.1792 406.2180 121 1540.9741 692.1689 122 1115.8481 588.1371 123 1044.6843 511.2609 124 1389.7929 700.5600 125 2497.7860 1301.1451 126 1585.3809 879.0660 127 1862.0438 912.8851 128 2008.8546 1509.7812 129 697.3099 484.0605 130 571.2517 399.6703 131 598.3465 444.1001 132 461.0977 248.8101 133 977.1107 527.8014 134 883.9849 500.6313 135 718.3594 436.8107 136 543.8971 374.7990 137 1587.3480 726.3921 138 4957.8130 1827.2000 139 969.6838 523.4911140 419.9980 334.9998 141 561.9990 473.2009 142 689.5988 581.2029 143 1398.5203 929.7540 144 820.8168 591.1974 145 875.1716 637.5483 146 1392.4499 674.9509 147 1256.3174 776.7589 148 1362.8590 959.5170 149 1999.2552 1250.9643 150 1209.4730 737.8201 151 1125.0356 810.6772 152 1827.4010 983.0009 153 1014.1540 708.8968 154 880.3944 633.1200 155 2432.3910 1424.8047 156 1177.8547 830.9586 157 1222.5939 925.5795 158 1519.5811 1162.0024 159 687.6638 383.4580 160 953.1192 621.1173 161 953.1192 621.1173162 953.1192 621.1173 163 939.0418 548.6002 164 1283.4025 745.2353 165 1511.5789 837.8005 166 1342.5821 795.3402 167 511.7980 418.5976 168 689.7988 508.7974 169 1532.3074 883.2780 170 1056.0808 742.5276 171 387.3195 242.3202 172 387.3195 242.3202 173 410.9987 266.0010 174 832.7554 614.7588 175 614.9986 385.3184 176 887.4658 515.6200 177 1024.8177 708.4787 178 1006.4353 734.2356 179 726.0000 433.0010 180 494.4174 327.4188 181 748.6413 429.0399 182 987.6417 619.6408 183 788.0961 400.7990184 831.7983 620.8006 185 1139.4945 819.9964 186 507.5169 360.8780 187 576.1972 395.7608 188 696.5991 442.0001 189 650.8180 404.0384 190 949.5802 670.7993 191 497.1193 297.5702 192 570.1674 353.4882 193 724.7306 383.9376 194 408.3399 284.8008 195 638.6713 431.1000 196 1225.7890 801.3518 197 715.3701 448.4513 198 800.4708 577.9111 199 975.5974 570.5210 200 1613.7565 865.3205 201 608.5019 444.5578 202 958.6634 680.4198 203 835.9426 576.2779 204 873.7375 631.7982 205 951.4432 608.6419206 473.0022 300.9999 207 601.0030 377.9984 208 713.9979 397.0015 209 829.2984 588.5195 210 959.7953 681.7616 211 1212.9613 807.3603 212 958.8743 696.8011 213 1129.4431 811.1962 214 1943.0419 1305.7201 215 539.6388 442.0001 216 463.5990 353.6013 217 562.6400 468.0008 218 736.7584 526.7573 219 1415.4461 890.2390 220 2208.7897 1318.8033 221 636.0009 331.0005 222 759.4010 416.4015 223 1078.8382 596.8406 224 499.7510 408.4992 225 1020.0225 775.0209 226 1595.1611 1138.1620 227 776.5958 485.5198228 1230.9235 772.7611229 1807.9520 993.9630230 415.4407 305.4390231 440.5174 306.5191232 541.2006 299.1993233 581.3599 468.0008234 743.0772 522.6019235 1057.6767 750.3202如果我们希望得到med[Y|X=x]=a+bx中位数回归,那么你可以用下面的命令:fit1 <- rq(y ~ x, tau = 0.5, data = engel)fit1中存放了你想得到的参数估计,因此你可直接用fit1调用:fit1Call:rq(formula = y ~ x, tau = 0.5, data = engel)命令summary(fit1)会给你更多的结果:Call: rq(formula = y ~ x, tau = 0.5, data = engel)tau: [1] 0.5Coefficients:coefficients lower bd upper bd(Intercept) 81.48225 53.25915 114.01156x 0.56018 0.48702 0.60199用下面的命令可以得到残差的值:r1 <- resid(fit1)r1这是最简单,如果你想知道更详细的可查阅R网站上关于quantile regression 的内容。

分位数回归命令

分位数回归命令

分位数回归命令分位数回归是一种回归分析方法,它可以在处理数据时提供更为准确的结果。

而分位数回归命令则是实现这种方法所必需的命令。

首先,我们需要了解一下什么是分位数回归。

在传统的线性回归中,我们通常使用最小二乘法来拟合数据,但是这种方法对于异常值和离群点比较敏感。

而分位数回归则是通过将目标变量进行排序,并将其划分为不同的区间来处理这些问题。

具体地说,我们可以选择一个特定的百分位数(如50%或90%),然后将数据按照这个百分位数进行划分。

接着,我们可以对每个区间进行拟合,并得到一个系数向量。

最终,我们可以通过将所有系数向量相加来得到整个模型的系数。

接下来,我们需要了解一下如何使用R语言中的quantreg包来实现分位数回归命令。

首先,我们需要安装和加载quantreg包:```install.packages("quantreg")library(quantreg)```接着,我们可以使用rq()函数来拟合模型。

该函数有两个主要参数:formula和tau。

- formula:指定目标变量和预测变量之间的关系。

- tau:指定要计算的百分位数。

例如,假设我们有一个数据集,其中包含身高和体重两个变量。

我们想要使用分位数回归来预测体重。

我们可以使用以下命令来拟合模型:```model <- rq(weight ~ height, tau = 0.5, data = dataset)```这个命令将会拟合一个以身高为自变量、体重为因变量的模型,并且计算50%的分位数。

接着,我们可以使用summary()函数来查看模型的摘要信息:```summary(model)```这个命令将会输出模型的系数、标准误、t值和p值等信息。

如果我们想要预测新的数据点,我们可以使用predict()函数:```newdata <- data.frame(height = c(170, 180, 190))predict(model, newdata)```这个命令将会输出三个新数据点对应的预测结果。

【原创】R语言进行分位数回归数据分析报告论文(附代码数据)

【原创】R语言进行分位数回归数据分析报告论文(附代码数据)

欢迎登陆官网:/datablog用R语言进行分位数回归作者的主要贡献有:(1)整理了分位数回归的一些基本原理和方法;(2)归纳了用R语言处理分位数回归的程序,其中写了两个函数整合估计结果;(3)写了一个分位数分解函数来处理MM2005的分解过程;(4)使用一个数据集进行案例分析,完整地展现了分析过程。

第一节分位数回归介绍(一)为什么需要分位数回归?传统的线性回归模型描述了因变量的条件均值分布受自变量X的影响过程。

其中,最小二乘法是估计回归系数的最基本方法。

如果模型的随机误差项来自均值为零、方差相同的分布,那么回归系数的最小二乘估计为最佳线性无偏估计(BLUE);如果随机误差项是正态分布,那么回归系数的最小二乘估计与极大似然估计一致,均为最小方差无偏估计(MVUL)。

此时它具有无偏性、有效性等优良性质。

但是在实际的经济生活中,这种假设通常不能够满足。

例如当数据中存在严重的异方差,或后尾、尖峰情况时,最小二乘法的估计将不再具有上述优良性质。

为了弥补普通最小二乘法(OLS)在回归分析中的缺陷,1818年Laplace[2]提出了中位数回归(最小绝对偏差估计)。

在此基础上,1978年Koenker 和Bassett[3]把中位数回归推广到了一般的分位数回归(Quantile Regression)上。

分位数回归相对于最小二乘回归,应用条件更加宽松,挖掘的信息更加丰富。

它依据因变量的条件分位数对自变量X进行回归,这样得到了所有分位数下的回归模型。

因此分位数回归相比普通的最小二乘回归,能够更加精确第描述自变量X对因变量Y的变化范围,以及条件分布形状的影响。

(二)一个简单的分位数回归模型[4]假设随机变量的分布函数为(1)Y的分位数的定义为满足的最小值,即(2)回归分析的基本思想就是使样本值与拟合值之间的距离最短,对于Y的一组随机样本,样本均值回归是使误差平方和最小,即(3)样本中位数回归是使误差绝对值之和最小,即(4)样本分位数回归是使加权误差绝对值之和最小,即(5)上式可等价表示为:其中,为检查函数(check function),定义为:欢迎登陆官网:/datablog其中,为指示函数(indicator function),z是条件关系式,当z为真时,;当z为假时,。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用R语言进行分位数回归:基础篇詹鹏(师大学经济管理学院)本文根据文献资料整理,以介绍方法为主要目的。

作者的主要贡献有:(1)整理了分位数回归的一些基本原理和方法;(2)归纳了用R语言处理分位数回归的程序,其中写了两个函数整合估计结果;(3)写了一个分位数分解函数来处理MM2005的分解过程;(4)使用一个数据集进行案例分析,完整地展现了分析过程。

第一节分位数回归介绍(一)为什么需要分位数回归?传统的线性回归模型描述了因变量的条件均值分布受自变量X的影响过程。

其中,最小二乘法是估计回归系数的最基本方法。

如果模型的随机误差项来自均值为零、方差相同的分布,那么回归系数的最小二乘估计为最佳线性无偏估计(BLUE);如果随机误差项是正态分布,那么回归系数的最小二乘估计与极大似然估计一致,均为最小方差无偏估计(MVUL)。

此时它具有无偏性、有效性等优良性质。

但是在实际的经济生活中,这种假设通常不能够满足。

例如当数据中存在严重的异方差,或后尾、尖峰情况时,最小二乘法的估计将不再具有上述优良性质。

为了弥补普通最小二乘法(OLS)在回归分析中的缺陷,1818年Laplace[2]提出了中位数回归(最小绝对偏差估计)。

在此基础上,1978年Koenker 和Bassett[3]把中位数回归推广到了一般的分位数回归(Quantile Regression)上。

分位数回归相对于最小二乘回归,应用条件更加宽松,挖掘的信息更加丰富。

它依据因变量的条件分位数对自变量X进行回归,这样得到了所有分位数下的回归模型。

因此分位数回归相比普通的最小二乘回归,能够更加精确第描述自变量X对因变量Y的变化围,以及条件分布形状的影响。

(二)一个简单的分位数回归模型[4]假设随机变量的分布函数为(1)Y的分位数的定义为满足的最小值,即(2)回归分析的基本思想就是使样本值与拟合值之间的距离最短,对于Y的一组随机样本,样本均值回归是使误差平方和最小,即(3)样本中位数回归是使误差绝对值之和最小,即(4)样本分位数回归是使加权误差绝对值之和最小,即(5)上式可等价表示为:其中,为检查函数(check function),定义为:其中,为指示函数(indicator function),z是条件关系式,当z为真时,;当z为假时,。

同线性方程y=kx比较,相当于直线的斜率k,可以看出,为分段函数,如下图所示。

现假设因变量Y由k个自变量组成的矩阵X线性表示,对于条件均值函数,通过求解(8)式得到参数估计值对于条件分位数函数,通过求解(9)式得到参数估计值式中,函数表示取函数最小值时的取值。

(三)分位数回归模型的参数估计算法1、主要算法(1)单纯形算法(Simplex Method)Koenker和Orey[5](1993)把分两步解决最优化问题的单纯形算法[6]扩展到所有回归分位数中。

该算法估计出来的参数具有很好的稳定性,但是在处理大型数据时运算的速度会显著降低。

(2)点算法(Interior Point Method)由于单纯形算法在处理大型数据时效率低下,Karmarker提出了点算法[7];Portnoy和Koenker把这种方法是用在分位数回归中,得出了处理大型数据时点算法的运算速度远快于单纯形算法的结论。

但点算法每计算一步都要进行因数分解,当自变量比较多的时候效率比较低。

其次,如果要达到和单纯形算法一样的精度,就必须进行舍入步骤的计算,者也降低了算法的运行效率。

(3)平滑算法(Smoothing Method)上述两种算法都有各自的优点和不足,而有限平滑算法则是一种同时兼顾运算效率以及运算速度的方法。

Chen把这种算法扩展到计算回归分位数中[8]。

2、R语言quantreg包中的假设检验加载quantreg包以后,使用summary()函数或summary.rq()函数,可以得到参数系数的一些假设检验统计量。

其实,以上两个函数是一致的。

在使用summary()的时候,如果sumamry()加载的模型(对象)是分位数回归模型,则会自动调用summary.rq()来处理这个对象。

summary.rq()的调用格式为summary(object, se = NULL, covariance=FALSE, hs = TRUE, ...)其中主要参数有:# object: 分位数回归对象,根据rq()函数等得到的结果。

# se: 用于计算参数估计值标准差的方法,可以选取的值包括:-rank: 根据Koenker(1994)的秩检验得到标准差的估计值。

默认情况下假定残差是服从独立同分布。

如果补充另一个参数iid=FALSE,则采用Machado(1999)的方法计算标准差(参数的写法:se=”rank”, iid=FALSE)。

-iid: (这个与上面提到的iid=FALSE不同,这里是参数se的一个取值,而上面的iid是一个逻辑参数)假定残差服从独立同分布,并按照KB(1978)的方法计算残差。

-nid: 用sparsity算法计算的参数估计值标准差。

-ker: 用Powell(1990)的核密度估计方法得到标准差。

-boot: 采用bootstrap自助抽样的方法计算标准差。

-默认情况下,se=NULL且convariance=FALSE,标准差的默认算法是se=”rank”;其他情况下,se默认值为”nid”。

# covariance: 逻辑参数,是否返回参数估计量的协方差矩阵。

不同参数的结果,可参看下面的程序案例。

(四)分位数分解(MM2005方法)[9]我们可以进一步运用分位数分解法对各个影响因素进行分解分析[10]。

这里仅介绍MM2005方法。

为讲解方便,这里以各因素对城乡家庭收入的影响为例,观察各个影响因素在不同分位数上对城乡家庭收入差异的影响度的大小。

这里介绍Machado和Mata[11](2005)提出的分位数分解法,将每个分位数上的城乡收入差异分解为两个部分:一部分是由于城乡家庭劳动力特征的不同回报率引起的(即分位数回归参数的不同引起的,The Return Effects),例如城乡家庭劳动力在相同的教育程度、工作年限以及所处当地的经济发展水平相同的特定因素下不同的回报率引起的家庭人均收入差异;另一部分是由于城乡家庭劳动力的特征变量分布不同引起的(即影响因素变量值的不同引起的,The Covariate Effect),城乡家庭人均收入这部分的差异会随着样本分布的不同而略有变化。

利用Machado和Mata分位数分解方法的关键是进行反事实分析(the counter-factual analysis),我们最关心的一种反事实分析就是,如果城市家庭劳动力按照农村家庭劳动力的分位数回归参数决定家庭人均收入的话,城市家庭的人均收入分布会如何?这里定义反事实分布为,其中表示影响城市家庭人均收入的变量分布,表示影响农村家庭人均收入的变量在每个分位数上的回归参数。

表示如果城市家庭劳动力按照农村家庭劳动力的分位数回归参数决定家庭人均收入的话,城市家庭的反事实人均收入的大小。

的具体计算步骤为:(1)确定不同的分位点,分别表示为。

(2)在农村家庭样本中,分别以做分位数回归,得到组分位数回归参数向量。

(3)将城市家庭样本数据表示为。

(4)把(2)中得到的分位数回归参数和(3)中得到得城市家庭子样本变量分布相结合,得到一个新的样本,即反事实分布样本。

假定在τ分位数下城市家庭人均收入、反事实家庭人均收入和农村家庭人均收入分别为、、。

则不同分位数下的城乡家庭人均收入分布差异可表示为:等式右边的第一项称为“回报影响(the return effect)”,它表示在不同的分位数下,由于城乡家庭劳动力的生产回报率不同所导致的城乡差异部分;等式右边第二项成为“变量影响(the covariate effect)”,它表示不同分位数下城乡家庭随机抽样的样本变量分布不同所导致的城乡差异部分。

(五)非线性分位数回归和非参数分位数回归暂略。

第二节用R语言进行分位数回归说明:① engel(1857)是考察食物支出与家庭收入之间关系的一个数据集,用函数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②这里因变量为foodexp,即食物支出。

自变量为income,即家庭收入。

- tau表示计算50%分位点的参数,这里可以同时计算多个分位点的分位数回归结果,如tau=c(0.1,0.5,0.9)是同时计算10%、50%、90%分位数下的回归结果。

- data=engel指明这里处理的数据集为engel。

- method:进行拟合的方法,取值包括:A. 默认值“br”,表示 Barrodale & Roberts 算法的修改版;B. “fn”,针对大数据可以采用的Frisch–Newton点算法;C. “pfn”,针对特别大数据,使用经过预处理的Frisch–Newton逼近方法;D. “fnc”,针对被拟合系数特殊的线性不等式约束情况;E. “lasso”和“scad”,基于特定惩罚函数的平滑算法进行拟合。

③直接运行fit1,会得到简单的计算结果,如:# Call:# rq(formula = foodexp ~ income, tau = 0.5, data = engel)## Coefficients:# (Intercept) income# 81.4822474 0.5601806## Degrees of freedom: 235 total; 233 residual④用summary()函数可以得到回归模型的详细结果,包括系数和上下限。

# 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⑤ coef()函数得到的系数为向量形式,第一个元素为常数项的系数,第二个及以后为自变量的系数。

⑥ summary函数se参数的说明:A. se = “rank”: 按照Koenker(1994)的排秩方法计算得到的置信区间,默认残差为独立同分布。

相关文档
最新文档