楼主: jmjun85
3939 9

[编程问题求助] 想请大家帮我看看这个盈余管理的程序。 [推广有奖]

  • 2关注
  • 5粉丝

svip3

已卖:21份资源

副教授

71%

(VIP/贵宾)七级

0%

威望
0
论坛币
69737 个
通用积分
299.6298
学术水平
4 点
热心指数
15 点
信用等级
1 点
经验
490 点
帖子
320
精华
0
在线时间
1471 小时
注册时间
2006-11-19
最后登录
2025-12-26

楼主
jmjun85 发表于 2014-11-9 10:46:42 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
set more off
set mem 128
clear
insheet using em.csv
rename v5 rec
rename v6 ppe  
rename v7 asset
rename v8 rev
rename v9 ni
rename v10 cfo
destring ppe rev ni,replace force
gen ta=ni-cfo  /*总应计利润*/
xtset v2 v1    /* 代码与年份*/
gen lasset=l.asset  /*总资产滞后一期*/
gen blasset=1/l.asset  /*总资产滞后一期的倒数*/
gen lrev=l.rev    /*主营业务收入滞后一期 */
gen drev=rev-lrev /*主营业务收入增长 */
gen bta=ta/lasset  /*总应计与滞后一期资产的比值*/
gen bdrev=drev/lasset  /*营业收入与滞后一期资产的比值?/
gen bppe=ppe/lasset    /*固定资产净值*/
bysort csrc v1: egen num=count(v2)
keep if num >=15
cap drop g
egen g=group(v1 csrc)
gen DA=.
forvalues i=1/251{
reg bta blasset bdrev bppe if (g==`i'),noconstant
predict da if g==`i', res
replace DA=da if g==`i'
drop da
}


程序运行后显示,no observations。我是仔细看了连老师贴的代码,还有好几个帖子里的代码后改的,为什么不行呢?


盈余管理估计数据.xls (2.58 MB)



二维码

扫码加我 拉你入群

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

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

关键词:盈余管理 observations observation noconstant forvalues 程序

沙发
jmjun85 发表于 2014-11-9 10:49:50
其实我刚开始是这么估计的:

encode csrc, generate(csrc1)
winsor2 bta bdrevc bppe ,replace
sort v1 csrc1
by v1 csrc1:reg bta dlasset bdrevc bppe,noc
predict nda,xb
predict da,resid
keep v1 v2 csrc1 da

不过好像大家讨论这种方法有什么问题,我才修改成主楼上的程序,不过运行不了

藤椅
jmjun85 发表于 2014-11-9 13:58:25
求指导啊。。。

板凳
ywh19860616 发表于 2014-11-9 15:38:42
把数据上传,让别人试试。

报纸
jmjun85 发表于 2014-11-9 16:05:56
上传了数据,只能传.xls不能传.csv。还要麻烦修改下

求指导,不然论文搞不下去了呢

地板
ywh19860616 发表于 2014-11-10 08:49:16
jmjun85 发表于 2014-11-9 16:05
上传了数据,只能传.xls不能传.csv。还要麻烦修改下

求指导,不然论文搞不下去了呢
  1. forvalues i=1/251 {
  2. capture noisily reg bta blasset bdrev bppe if g==`i',noconstant
  3. quietly if !_rc {
  4. predict da if g==`i', res
  5. replace DA=da if g==`i'
  6. drop da
  7. }
  8. }
复制代码

7
ywh19860616 发表于 2014-11-10 08:50:08
你最后一步循环时,g取不同值时可能没有观测值,所以才会出现这个问题
  1. forvalues i=1/251 {
  2. capture noisily reg bta blasset bdrev bppe if g==`i',noconstant
  3. quietly if !_rc {
  4. predict da if g==`i', res
  5. replace DA=da if g==`i'
  6. drop da
  7. }
  8. }
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 热心帮助其他会员

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

8
jmjun85 发表于 2014-11-10 14:17:21
ywh19860616 发表于 2014-11-10 08:50
你最后一步循环时,g取不同值时可能没有观测值,所以才会出现这个问题
我只能说厉害,谢谢谢谢
可惜没有金币,不然一定感谢
我还是学艺不精啊

9
废土 发表于 2018-5-13 09:59:29
我咋运行不成功啊,这么回事?

10
常涓 发表于 2018-11-23 18:13:17
楼主,你的问题解决了对吧,跪求一份改过的程序,万分感谢

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-26 19:55