楼主: chx_1995
944 1

[求助成功] Jone's 模型计算DD的stata代码 求助成功 [推广有奖]

  • 0关注
  • 0粉丝

大专生

46%

还不是VIP/贵宾

-

威望
0
论坛币
3 个
通用积分
0.0249
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
896 点
帖子
15
精华
0
在线时间
60 小时
注册时间
2021-7-17
最后登录
2024-6-10

楼主
chx_1995 发表于 2022-10-4 15:52:59 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
drop if IndustryCode == ""
drop if year <=2007
gen Ind_reg = substr(IndustryCode, 1, 1)
replace Ind_reg = IndustryCode if Ind_reg == "C"

*        一、应计盈余管理

* 1. 基本Jones模型
{
* Jones (1991) 提出了经典的Jones模型,从营业收入变动和固定资产水平衡量企业应计利润的变动。具体模型如下:
* 根据国泰安数据库计算需要的指标

clonevar A  = A001000000         // 总资产
clonevar EBXI  = B001300000      // 营业利润
clonevar cfo = C001000000        // 经营活动现金流净额

xtset id year
gen acc = (EBXI - cfo)/L.A       // 总应计项目,y
gen invA  = 1/L.A                // 滞后一期的总资产的倒数, x1
gen Dsale = D.B001101000/L.A     // 营业收入的增量, x2
gen PPE   = A001212000/L.A       // 固定资产净额/总资产, x3

* 生成行业+年份变量,方便回归
cap drop count
egen count = count(id), by(Ind_reg year)
egen sic_year1 = group(Ind_reg year)
replace sic_year1 =. if count < 45
sum year
replace sic_year1 =. if (year <= r(min))
egen sic_year = group(sic_year1)
sum sic_year //查看最大值,然后放到循环里
// sum id year TA1_A  Dsale PPE_A if sic_year1==1
// scalar max2 = r(max)
local T = r(max)
* 利用循环求残差,残差即为应计盈余管理DACC
gen DACC1 = .
     forvalues i = 1/`T'{
       cap qui reg acc invA Dsale PPE if (sic_year==`i'), nocons
       cap qui predict e if e(sample), res
       cap qui replace DACC1 = e if e(sample)
       cap drop e
     }
gen AbsDACC1 = abs(DACC1)
drop acc invA  Dsale PPE sic_year sic_year1 A EBXI cfo count
label var DACC1 "基本Jones模型,Jones (1991) "
label var AbsDACC1 "基本Jones模型,Jones (1991),绝对值 "
}
* 2. 修正Jones模型
{
* Dechow 等 (1995) 提出的修正Jones模型在Jones模型的基础上加入了 应收账款的变动 ,具体模型如下:
* 根据国泰安数据库计算需要的指标
xtset id year
clonevar A  = A001000000         // 总资产
clonevar EBXI  = B001300000      // 营业利润
clonevar cfo   = C001000000      // 经营活动现金流净额

gen acc = (EBXI - cfo)/L.A       // 总应计项目,y
gen invA  = 1/L.A                // 滞后一期的总资产的倒数, x1
gen Dsale = D.B001101000/L.A     // 营业收入的增量
gen DAR   = D.A001111000/L.A     // 应收账款的增量
gen DS_DAR= Dsale - DAR          // 营业收入的增量-应收账款的增量, x2
gen PPE   = A001212000/L.A       // 固定资产净额, x3

* 生成行业+年份变量,方便回归

egen count = count(id), by(Ind_reg year)
egen sic_year1 = group(Ind_reg year)
replace sic_year1 =. if count < 45
sum year
replace sic_year1 =. if (year == r(min))
egen sic_year = group(sic_year1)
sum sic_year //查看最大值,然后放到循环里
// sum id year TA1_A  Dsale PPE_A if sic_year1==1
// scalar max2 = r(max)
local T = r(max)

* 利用循环求残差,残差即为应计盈余管理DACC
gen DACC2 = .
     forvalues i = 1/`T'{
       cap qui reg acc invA DS_DAR PPE if (sic_year==`i'), nocons
       cap qui predict e if e(sample), res
       cap qui replace DACC2 = e if e(sample)
       cap drop e
     }
gen AbsDACC2 = abs(DACC2)
drop acc invA Dsale DAR DS_DAR PPE sic_year A EBXI cfo sic_year1 count
label var DACC2 "修正Jones模型,Dechow 等 (1995) "
label var AbsDACC2 "修正Jones模型,Dechow 等 (1995),绝对值 "
}


二维码

扫码加我 拉你入群

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

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

关键词:Stata 求助成功 tata Jon Industry

沙发
三江鸿 发表于 2022-10-4 17:01:09 来自手机
又一个国庆快乐
点赞支持

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

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-11 16:51