楼主: ffcxy2005
4349 9

[问答] 如何在R实现因变量在不同分位点上的分布情况 [推广有奖]

  • 7关注
  • 7粉丝

已卖:1089份资源

博士生

36%

还不是VIP/贵宾

-

威望
0
论坛币
2810 个
通用积分
3.2700
学术水平
8 点
热心指数
12 点
信用等级
7 点
经验
4430 点
帖子
130
精华
0
在线时间
352 小时
注册时间
2011-4-13
最后登录
2025-3-13

楼主
ffcxy2005 发表于 2012-4-5 08:32:04 |AI写论文
20论坛币
今天在看葛玉好和曾湘泉老师写的《市场歧视对城镇地区性别工资差距的影响》这篇文章,但是一开始就卡住了,因为刚学R不久,所以对很多不明白的,比如下面的图和表,不知道在R里面是如何实现的。因为只有一个因变量工资比率(y轴),x轴则为分位点,这种图是怎么得到的呢?还请大家帮忙解答一下,谢谢~



1.jpg (19.55 KB)

1.jpg

2.jpg (44.89 KB)

2.jpg

最佳答案

ffcxy2005 查看完整内容

看了RQ的帮助文档,里面有个类似的程序,但好像不太一样,一起贴出来供大家参考! > data(engel) > attach(engel) > x.poor x.rich z ps qs.poor qs.rich par(mfrow = c(1, 2)) > plot(c(ps, ps), c(qs.poor, qs.rich), type = "n", + xlab = expression(tau), ylab = "quantile") > plot(stepfun(ps, c(qs.poor[1], qs.poor)), do.points = FALSE, + add = TRUE) > plot(stepfun(ps, c(qs.poor[1], qs.rich)), do.p ...
关键词:R实现 因变量 一个因变量 如何实现 不明白 工资 今天 因变量 文章 如何

沙发
ffcxy2005 发表于 2012-4-5 08:32:05
看了RQ的帮助文档,里面有个类似的程序,但好像不太一样,一起贴出来供大家参考!
> data(engel)
> attach(engel)
> x.poor <- quantile(income, 0.1)
> x.rich <- quantile(income, 0.9)
> z <- rq(foodexp ~ income, tau = -1)
> ps <- z$sol[1, ]
> qs.poor <- c(c(1, x.poor) %*% z$sol[4:5, ])
> qs.rich <- c(c(1, x.rich) %*% z$sol[4:5, ])
> par(mfrow = c(1, 2))
> plot(c(ps, ps), c(qs.poor, qs.rich), type = "n",
+ xlab = expression(tau), ylab = "quantile")
> plot(stepfun(ps, c(qs.poor[1], qs.poor)), do.points = FALSE,
+ add = TRUE)
> plot(stepfun(ps, c(qs.poor[1], qs.rich)), do.points = FALSE,
+ add = TRUE, col.hor = "gray", col.vert = "gray")
对于上面这段程序,主要是“z <- rq(foodexp ~ income, tau = -1) ”  里面z值设置的意义没有看懂,因为这个程序出来的图就只有“食品支出在不同分位点上的分布”,那上面的z值的表达式为何是“foodexp ~ income”呢?

藤椅
kk22boy 发表于 2012-4-5 08:32:05
呵呵,不知这样行不? Rplot.jpeg
  1. n=200
  2. m=rnorm(n,2000,200) #男性虚拟工资
  3. w=rnorm(n,1800,200) #女性虚拟工资
  4. ratio=m/w
  5. q=quantile(ratio,c(1:100)/100) #生成分位数
  6. plot(q,type="l")
复制代码

如果该贴对您有些许帮助,希望你能回复一下或者评一下热心指数!谢谢!

板凳
didizhang 发表于 2012-4-5 10:48:39
自己动手画图的话,把数据升序排列后,做散点图,横轴刻度使用c(1:n)/n*100,n是数据的个数。。。当然,也许不同的画图PAKCAGE里有写好了的参数可选。至于楼主贴的程序,我不了解RQ这个PACKAGE,不知道干什么地。。。。
已有 1 人评分学术水平 热心指数 收起 理由
ffcxy2005 + 1 + 1 观点有启发

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

报纸
ffcxy2005 发表于 2012-4-5 11:04:13
didizhang 发表于 2012-4-5 10:48
自己动手画图的话,把数据升序排列后,做散点图,横轴刻度使用c(1:n)/n*100,n是数据的个数。。。当然,也许 ...
谢谢您的回答,RQ是做分位数回归的,我不知道您说的这个是不是跟原文一样的,不过看起来蛮有道理的,就是不知道能不能麻烦您把您说的那个程序写得比较全一点呢?谢谢!我想验证一下,但具体操作还不太懂~~

地板
kk22boy 发表于 2012-4-5 11:58:15
放一部分数据上来看看?
如果该贴对您有些许帮助,希望你能回复一下或者评一下热心指数!谢谢!

7
ywh19860616 发表于 2012-4-5 12:32:53
ffcxy2005 发表于 2012-4-5 11:04
谢谢您的回答,RQ是做分位数回归的,我不知道您说的这个是不是跟原文一样的,不过看起来蛮有道理的,就是 ...
好像只是一般的分位数,不是分位回归模型
一份耕耘,一份收获。

8
ffcxy2005 发表于 2012-4-5 12:59:00
kk22boy 发表于 2012-4-5 11:58
放一部分数据上来看看?
感谢你的回答~~~不知道可否帮忙把帮助文档中的那段程序也大体上解释一些呢?因为里面的和你刚才所说的存在一些差别!

9
kk22boy 发表于 2012-4-5 13:11:38
tau:the quantile(s) to be estimated, this is generally a number strictly between 0 and 1, but if specified strictly outside this range, it is presumed that the solutions for all values of tau in (0,1) are desired. In the former case an object of class "rq" is returned, in the latter, an object of class "rq.process" is returned. As of version 3.50, tau can also be a vector of values between 0 and 1; in this case an object of class "rqs" is returned containing among other things a matrix of coefficient estimates at the specified quantiles.
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
famousid + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

如果该贴对您有些许帮助,希望你能回复一下或者评一下热心指数!谢谢!

10
dadaxue 发表于 2019-8-18 16:03:25
你会了吗

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-30 07:58