楼主: 侘傺小浣熊
1853 11

[数据管理求助] 怎么求按照资产规模排名前1%的企业剔除i企业后的内控指数平均值 [推广有奖]

  • 4关注
  • 0粉丝

大专生

68%

还不是VIP/贵宾

-

威望
0
论坛币
140 个
通用积分
0.9000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
534 点
帖子
21
精华
0
在线时间
97 小时
注册时间
2020-8-21
最后登录
2024-3-29

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
求助各位大神,怎么求按照资产规模排名前1%的企业剔除i企业后的内控指数平均值。我知道全样本剔除i企业后的内部控制指数平均值是bys Year Ind: egen sum_ICD= total(ICD)bys Year Ind: egen count_ICD= count(ICD)
gen ICD_YI = (sum_ICD - ICD)/(count_ICD - 1)
其中Year表示时间, Ind表示行业,ICD表示内部控制指数。但是按照资产规模(size)排名前1%的企业剔除i企业后的内控指数平均值我不会写了。
可不可以先按资产规模倒序排列取前1%的生成新的变量ICD_01,然后再bys Year Ind: egen sum_ICD1= total(ICD_01)
bys Year Ind: egen count_ICD1= count(ICD_01)
gen ICD_YI2= (sum_ICD1 - ICD)/(count_ICD1 - 1) 这样子操作。求各位大神赐教!

二维码

扫码加我 拉你入群

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

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

关键词:资产规模 内控指数 平均值 Count Total

沙发
roundyue 学生认证  发表于 2020-11-21 09:52:32 |只看作者 |坛友微信交流群
把    求所有值的和生成的新变量   变成  求前1%的和生成新变量,只需要解决这个问题,是这个意思吗?

使用道具

藤椅
侘傺小浣熊 学生认证  发表于 2020-11-21 12:25:58 |只看作者 |坛友微信交流群
1111111

数据截图.png (96.76 KB)

数据截图

数据截图

使用道具

板凳
侘傺小浣熊 学生认证  发表于 2020-11-21 12:45:04 |只看作者 |坛友微信交流群
roundyue 发表于 2020-11-21 09:52
把    求所有值的和生成的新变量   变成  求前1%的和生成新变量,只需要解决这个问题,是这个意思吗?
就是说所有值的不需要生成新变量直接求,求前1%的,我的想法就是按照资产规模size的倒序排列后筛选出前1%的生成新的变量ICD_01再求。

使用道具

报纸
侘傺小浣熊 学生认证  发表于 2020-11-21 12:47:26 |只看作者 |坛友微信交流群
roundyue 发表于 2020-11-21 09:52
把    求所有值的和生成的新变量   变成  求前1%的和生成新变量,只需要解决这个问题,是这个意思吗?
数据截图

使用道具

地板
roundyue 学生认证  发表于 2020-11-22 15:57:44 |只看作者 |坛友微信交流群
侘傺小浣熊 发表于 2020-11-21 12:45
就是说所有值的不需要生成新变量直接求,求前1%的,我的想法就是按照资产规模size的倒序排列后筛选出前1% ...
我感觉可以先drop掉那99%,然后对剩下的求和,假设求和结果为A,然后在原始数据里gen ICD_01==A

使用道具

7
侘傺小浣熊 学生认证  发表于 2020-11-22 19:25:13 |只看作者 |坛友微信交流群
roundyue 发表于 2020-11-22 15:57
我感觉可以先drop掉那99%,然后对剩下的求和,假设求和结果为A,然后在原始数据里gen ICD_01==A
好滴,我思考一下,谢谢你~

使用道具

8
侘傺小浣熊 学生认证  发表于 2020-11-24 12:32:09 |只看作者 |坛友微信交流群

  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input long(Code Year) float(ICD size) long Ind
  4. 1 1 780.41  5.084088e+11 55
  5. 1 2  859.8  611295559680 55
  6. 1 3 773.35  8.306742e+11 55
  7. 1 4 750.32 1.1653469e+12 55
  8. 1 5 836.33 1.5285794e+12 55
  9. 2 1 679.35     338282592 21
  10. 2 2 563.81     398673504 21
  11. 2 3 703.62     223716288 21
  12. 2 4 373.64     268844288 21
  13. 2 5 540.67     351177472 21
  14. end
  15. label values Code Code
  16. label def Code 1 "000002", modify
  17. label def Code 2 "000004", modify
  18. label values Year Year
  19. label def Year 1 "2014-12-31", modify
  20. label def Year 2 "2015-12-31", modify
  21. label def Year 3 "2016-12-31", modify
  22. label def Year 4 "2017-12-31", modify
  23. label def Year 5 "2018-12-31", modify
  24. label values Ind Ind
  25. label def Ind 21 "C27", modify
  26. label def Ind 55 "K70", modify
复制代码

使用道具

9
DΘstinyじò 发表于 2020-11-24 14:35:46 |只看作者 |坛友微信交流群
侘傺小浣熊 发表于 2020-11-24 12:32
尝试以下代码,分行业分年份统计size前1%的企业,并在此范围内计算些企业除去自身外的均值:
(有问题再交流)
  1. cap program drop mymean
  2. program define mymean
  3. _pctile size, p(99)
  4. //生成是否为前1%企业的虚拟变量
  5. gen temp=size>=r(r1)
  6. rangestat (mean) ICD_mean_ex=ICD if temp==1, interval(temp . .) excludeself
  7. end

  8. runby mymean,by(Ind Year)
复制代码

使用道具

10
侘傺小浣熊 学生认证  发表于 2020-11-24 16:34:00 来自手机 |只看作者 |坛友微信交流群
DΘstinyじò 发表于 2020-11-24 14:35
尝试以下代码,分行业分年份统计size前1%的企业,并在此范围内计算些企业除去自身外的均值:
(有问题再 ...
复制代码运行,提醒出错啦。如图。麻烦大神能否帮我看看问题出在了哪里。 image20201124163429.jpg

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 02:12