楼主: lice94
11950 12

[数据管理求助] 如何在面板数据中取得中位数? [推广有奖]

  • 0关注
  • 2粉丝

本科生

66%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
1.0153
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
945 点
帖子
67
精华
0
在线时间
89 小时
注册时间
2018-3-19
最后登录
2019-4-16

楼主
lice94 学生认证  发表于 2018-5-2 15:53:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
比如如下数据形式:
id              y             cap
001         2010         1
001         2011         2
001         2011         3
001         2011         4
001         2012         4
002         2010         1
002         2010         2
002         2010         3
002         2012         2
............
有些复杂,就是说,如果我想取得某id在某一年cap的中位数,该如何编写程序?
比如,上面的例子,变成如下形式:
id              y             cap
001        2011          3
002        2010          2
求助,谢谢各位了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:面板数据 中位数 编写程序 数据形式 cap

沙发
黃河泉 在职认证  发表于 2018-5-2 17:10:58
1.        你若要问程序,永远附上资料;若要附上资料,永远用 dataex 印出资料。
2.        尔后请用 dataex (先 ssc install dataex 并见说明) 将原始 Stata 资料中具有”代表性”的一部分资料列出,以供有意回答者实验之用,并能提供具体操作指令。并请参考 http://www.jianshu.com/p/9870080fe769,  https://bbs.pinggu.org/thread-5048204-1-1.html, 与 https://bbs.pinggu.org/thread-5917273-1-1.html

藤椅
黃河泉 在职认证  发表于 2018-5-2 17:12:13
那 id = 001, year == 2010 怎么办?同样地,id = 002 与 year == 2012 怎么办?

板凳
lice94 学生认证  发表于 2018-5-2 18:47:54
黃河泉 发表于 2018-5-2 17:12
那 id = 001, year == 2010 怎么办?同样地,id = 002 与 year == 2012 怎么办?
我的例子举得不太好,我想表达的,其实就是对于每一个特定id对应的特定年份,都取得那一组的中位数;也就是说,id=001,y=2010时对应的所有cap都是一个组,同样取得它们的中位数。

报纸
黃河泉 在职认证  发表于 2018-5-2 18:52:56
lice94 发表于 2018-5-2 18:47
我的例子举得不太好,我想表达的,其实就是对于每一个特定id对应的特定年份,都取得那一组的中位数;也就 ...
请试试
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input float(id y cap)
  4. 1 2010 1
  5. 1 2011 2
  6. 1 2011 3
  7. 1 2011 4
  8. 1 2012 4
  9. 2 2010 1
  10. 2 2010 2
  11. 2 2010 3
  12. 2 2012 2
  13. end

  14. collapse (median) cap, by(id y)
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
lice94 + 1 + 1 + 1 精彩帖子

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

地板
lice94 学生认证  发表于 2018-5-2 20:57:14
黃河泉 发表于 2018-5-2 18:52
请试试
谢谢您!

7
英雄盖世 发表于 2019-4-2 21:36:36
黃河泉 发表于 2018-5-2 18:52
请试试
老师,接着上述问题,我还想请教一下,如果在面板数据中,我按年提取出某个指标(是被解释变量)的中位数,然后我要用每年大于中位数的样本做回归(假设是固定效应回归),这种情况下的代码是什么呀?
如被解释变量资产负债率:
id     year    levb      size          roa
1    2010    0.34     23982      0.98
1     2011    0.56     26234      1.56
2     2010    0.21     53223      0.93
2    2011     0.13     35674      1.21
3    2010     0.78     67832      2.32
3    2011    0.53      65278      1.31

我要按每年资产负债率大于中位数、75分位数的样本分别进行回归,看看是否结果存在差异。这种情况下应该如何写代码呢,感谢老师!

8
黃河泉 在职认证  发表于 2019-4-3 06:46:06
英雄盖世 发表于 2019-4-2 21:36
老师,接着上述问题,我还想请教一下,如果在面板数据中,我按年提取出某个指标(是被解释变量)的中位数 ...
关键在于
  1. bys year: egen levb_50 = median(levb)
  2. bys year: egen levb_75 = pctile(levb), p(75)
复制代码

9
英雄盖世 发表于 2019-4-3 20:10:01
黃河泉 发表于 2019-4-3 06:46
关键在于
谢谢老师,但这样是按年生成了中位数,那如何把大于中位数的这些样本挑选出来做回归呢,有点卡在这个地方,不知道生成中位数下一步该怎么写代码

10
黃河泉 在职认证  发表于 2019-4-4 07:35:02
英雄盖世 发表于 2019-4-3 20:10
谢谢老师,但这样是按年生成了中位数,那如何把大于中位数的这些样本挑选出来做回归呢,有点卡在这个地方 ...
类似
  1. reg y x1 x2 ... if levb > levb_50
复制代码

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-4 01:16