Stata:各类盈余管理指标估算方法

发布时间:2020-06-28 阅读 370

Stata 连享会   主页 || 视频 || 推文

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

课程详情 https://gitee.com/arlionn/Course   |   lianxh.cn

课程主页 https://gitee.com/arlionn/Course

作者:王若溪 (中山大学)
邮箱:sowendy@qq.com


目录


盈余管理是公司金融和会计领域的一个重要话题。本文对目前文献中常用的盈余管理指标进行了梳理,并基于国泰安数据库中的变量,提供了这些指标在 Stata 中的实现方法。

目前的研究将普遍将盈余管理分为应计盈余管理和真实盈余管理。应计盈余管理基于权责发生制,针对会计处理,通过会计政策选择、应计项目调整和会计估计变更等方式来进行;真实盈余管理是通过改变企业真实生产经营活动来实现的。盈余管理的测量一直是重点研究方向,目前的方法多通过计算残差的方式来估算盈余管理的程度。

在盈余管理研究初期,许多学者聚焦于应计盈余管理,并提出了相应的测量模型。Healy (1985) 在研究分红计划时,最早提出了应计项目操纵的计算方式,Jones (1991) 提出了经典的Jones模型,发展了对操纵性应计项目估计的方法。之后国内外学者不断完善和发展对应计盈余管理测量。针对不同测算方式的准确度,黄梅和夏新平 (2009) 使用中国数据,对七种应计盈余管理计量方法进行了检验,发现分年度分行业计算的修正Jones模型在模型设定和检验能力方面表现更佳,并建议以此方法为主进行后续研究。

真实盈余管理的研究开始得相对较晚,国内外普遍使用Roychowdhury (2006) 提出的方法,从销售操纵、酌量性费用和过度生产三个方面进行分析,计算异常现金流、异常生产成本和异常酌量性费用。之后的学者多采用将三个指标加总的方式衡量真实盈余管理的整体程度。

本文将逐一介绍黄梅和夏新平 (2009) 总结的应计盈余管理测算方法和Roychowdhury (2006) 提出的真实盈余管理计算方法,参考文献的详细内容在文末列出。

应计盈余管理

1. 基本Jones模型

Jones (1991) 提出了经典的Jones模型,从营业收入变动和固定资产水平衡量企业应计利润的变动。具体模型如下:

其中,Ai,t1为滞后一期的总资产,ΔREVi,t为营业收入增量,PPEi,t为固定资产。通过该方程计算得到的残差即为应计盈余管理。 Jones (1991) 原文中提到的应计项目总额 TAt 计算方法如下:

黄梅和夏新平 (2009) 将TAt定义为第t年营业利润减去第t年经营活动现金流量。

黄梅和夏新平 (2009) 文章中对应的 Stata 程序如下:

* 根据国泰安数据库计算需要的指标

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     // 营业收入的增量, x2
gen PPE   = a001212000/L.A		 // 固定资产净额/总资产, x3


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

egen sic_year = group(sic year), label lname(sic_year) // sic 为行业分类,year为年度时间标识

* 利用循环求残差,残差即为应计盈余管理DACC

gen DACC = .
	 forvalues i = 1/$N{
	   qui reg acc invA Dsale PPE if (sic_year==`i'), nocons
	   qui predict e if e(sample), res
	   qui replace DACC = e if e(sample) 
	   drop e
	 }

2. 修正Jones模型

Dechow等 (1995) 提出的修正Jones模型在Jones模型的基础上加入了应收账款的变动,具体模型如下:

其中,ΔRECi,t为应收账款变动。

对应的 Stata 程序如下:

* 根据国泰安数据库计算需要的指标

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 sic_year = group(sic year), label lname(sic_year) // sic 为行业分类,year为年度时间标识

* 利用循环求残差,残差即为应计盈余管理DACC

gen DACC = .
	 forvalues i = 1/$N{
	   qui reg acc invA DS_DAR PPE if (sic_year==`i'), nocons
	   qui predict e if e(sample), res
	   qui replace DACC = e if e(sample) 
	   drop e
	 }

3. 无形资产Jones模型

陆建桥 (1999) 在修正Jones模型的基础上,进一步考虑了无形资产和其他长期资产的作用。具体模型如下:

其中,IAi,t为无形资产和其他长期资产。

对应的 Stata 程序如下:

* 根据国泰安数据库计算需要的指标

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
gen IA    = a001218000/L.A		 // 无形资产净额, x4

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

egen sic_year = group(sic year), label lname(sic_year)  // sic 为行业分类,year为年度时间标识

* 利用循环求残差,残差即为应计盈余管理DACC

gen DACC = .
	 forvalues i = 1/$N{
	   qui reg acc invA DS_DAR PPE IA if (sic_year==`i'), nocons
	   qui predict e if e(sample), res
	   qui replace DACC = e if e(sample) 
	   drop e
	 }

4. 前瞻性修正Jones模型

Dechow等 (2003) 在修正Jones模型的基础上,对应收账款进行了调整,并加入滞后一期的总应计项目和销售增长率。具体模型如下:

其中,k 为应收账款变化对主营业务收入变化的分行业回归的估计系数,ΔRECi,t=α+kΔREVi,t+ϵi,t,而 GRREVi,t+1为未来一期的销售增长率。

对应的 Stata 程序如下:

* 根据国泰安数据库计算需要的指标

clonevar A  = a001000000		 // 总资产
clonevar EBXI  = b001300000		 // 营业利润
clonevar cfo   = c001000000		 // 经营活动现金流净额
clonevar grrev = f081602c        // 营业收入增长率

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 PPE   = a001212000/L.A		 // 固定资产净额, x3
gen Lacc = L.acc                // 滞后一期的应计项目总额,x4
gen grrev = F.f081602c/L.A       // 营业收入增长率,x5


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

egen sic_year = group(sic year), label lname(sic_year)  // sic 为行业分类,year为年度时间标识

* 计算系数 k
statsby,by(year sic) clear:reg DAR Dsale 
clonevar k=_b_Dsale // 回归得到系数 k
save k.dta, clear

* 将k.dta中的系数 k 匹配回原始数据
merge 1:m year sic using k.dta 
drop _merge
gen DS_kDAR = Dsale-(1-k)*DAR // 营业收入增量-(1-k)应收账款增量, x2

* 利用循环求残差,残差即为应计盈余管理DACC

gen DACC = .
	 forvalues i = 1/$N{
	   qui reg acc invA DA_kDAR PPE Lacc grrev if (sic_year==`i'), nocons
	   qui predict e if e(sample), res
	   qui replace DACC = e if e(sample) 
	   drop e
	 }

5. 现金流量Jones模型

Dechow 和 Dichev (2002) 提出将滞后一期、当期和未来一期的经营性净现金流加入模型中,提出了如下的模型:

对应的 Stata 程序如下:

* 根据国泰安数据库计算需要的指标

clonevar A  = a001000000		 // 总资产
clonevar EBXI  = b001300000		 // 营业利润
clonevar cfo   = c001000000		 // 经营活动现金流净额

gen acc = (EBXI - cfo)/L.A       // 总应计项目,y
gen Dsale = D.b001101000/L.A     // 营业收入的增量, x1
gen PPE   = a001212000/L.A		 // 固定资产净额, x2
gen Lcfo   = L.c001000000/L.A    // 滞后一期的经营性现金流净额, x3
gen cfo     = c001000000/L.A     // 当期的经营性现金流净额, x4
gen Fcfo   = F.c001000000/L.A    // 未来一期的经营性现金流净额, x5


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

egen sic_year = group(sic year), label lname(sic_year)  // sic 为行业分类,year为年度时间标识

* 利用循环求残差,残差即为应计盈余管理DACC

gen DACC = .
	 forvalues i = 1/$N{
	   qui reg acc Dsale PPE Lcfo cfo Fcfo if (sic_year==`i')
	   qui predict e if e(sample), res
	   qui replace DACC = e if e(sample) 
	   drop e
	 }

6. 收益匹配Jones模型

Kothari等 (2002) 提出在传统的Jones模型中引入业绩变量 (ROA) 以控制业绩与企业应计之间的相关性,或为每一个样本企业找到一个业绩匹配的企业。这里介绍引入ROA的模型,Kothari等 (2002) 认为可以选择当期的ROA或滞后一期的ROA,黄梅和夏新平 (2009) 使用了当期的ROA:

对应的 Stata 程序如下:

* 根据国泰安数据库计算需要的指标

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     // 营业收入的增量, x2
gen PPE   = a001212000/L.A		 // 固定资产净额, x3
gen roa   = f050201b/L.A       // 当期的ROA, x4
gen Lroa = L.f050201b/L.A     // 滞后一期的ROA, x4 (可选) 


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

egen sic_year = group(sic year), label lname(sic_year)  // sic 为行业分类,year为年度时间标识

* 利用循环求残差,残差即为应计盈余管理DACC

gen DACC = .
	 forvalues i = 1/$N{
	   qui reg acc invA Dsale PPE roa if (sic_year==`i') // 也可以使用滞后一期的ROA
	   qui predict e if e(sample), res
	   qui replace DACC = e if e(sample) 
	   drop e
	 }

7. 非线性Jones模型

Ball和Shivakumar (2006) 提出,应计和业绩之间存在非线性相关,为了解决这一问题,在传统的Jones模型中加入表示虚拟变量DVARi,t,当CFOi,t 小于零时,它等于1,反之则为零。具体模型如下:

对应的 Stata 程序如下:

* 根据国泰安数据库计算需要的指标

clonevar A  = a001000000		 // 总资产
clonevar EBXI  = b001300000		 // 营业利润
clonevar cfo   = c001000000		 // 经营活动现金流净额

gen acc = (EBXI - cfo)/L.A       // 总应计项目,y
gen Dsale = D.b001101000/L.A     // 营业收入的增量, x1
gen PPE   = a001212000/L.A		 // 固定资产净额, x2

* 生成虚拟变量和交乘项

gen dvar  = .                    // 虚拟变量, x3 
replace dvar = 1 if cfo <  0  
replace dvar = 0 if cfo >= 0
gen dvar_cfo = dvar*cfo/L.A    // 交乘项, x4

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

egen sic_year = group(sic year), label lname(sic_year)  // sic 为行业分类,year为年度时间标识

* 利用循环求残差,残差即为应计盈余管理DACC

gen DACC = .
	 forvalues i = 1/$N{
	   qui reg acc Dsale PPE dvar dvar_cfo if (sic_year==`i') // 也可以使用滞后一期的ROA
	   qui predict e if e(sample), res
	   qui replace DACC = e if e(sample) 
	   drop e
	 }

真实盈余管理

目前对真实盈余管理的计算普遍使用Roychowdhury (2006) ,通过分别计算经营活动的异常现金流ABCFOi,t、异常生产成本ABPRODi,t和异常酌量性费用ABDISEXPi,t得到真实盈余管理。具体计算方法如下:

Roychowdhury (2006) 将PRODi,t生产成本定义为销售成本COGS和存货增量之和,DISEXPi,t酌量性费用为研发费用R&D、广告费用和SG&A之和, Si,t为营业收入Sales。国内学者普遍使用销售费用和管理费用之和作为酌量性费用,如李增福等 (2011) 李春涛等 (2016)

对应的 Stata 程序如下:

* 根据国泰安数据库计算需要的指标

clonevar A  = a001000000		           // 总资产
gen cfo   = c001000000/L.A		  	       // 经营活动现金流净额, y1
gen cogs  = b001209000/L.A		           // 销售费用/总资产
gen Dinv  = D.a001123000/L.A	           // 存货净额增量
gen prod  = cogs + Dinv                    // 生产成本, y2
gen disexp= (b001209000+b001210000)/L.A    // 酌量性费用,销售费用+管理费用, y3
gen invA  = 1/L.A                          // 滞后一期的总资产的倒数  
gen sale  = b001101000/L.A		           // 营业收入
gen Lsale = L.b001101000/L.A               // 滞后一期的营业收入
gen Dsale = D.b001101000/L.A               // 营业收入增量
gen LDsale= L.D.b001101000/L.A             // 滞后一期的营业收入增量

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

egen sic_year = group(sic year), label lname(sic_year)  // sic 为行业分类,year为年度时间标识

* 分别计算异常经营性净现金流、异常生产成本和异常酌量性费用

*-CFO
     local  y "cfo"
	 global y `y'
	 local  x "invA sale Dsale"
	 global x `x' 
	 cap drop AB`y'
     gen AB`y'  = .
	 forvalues i = 1/$N{
	   qui reg `y' `x' if (sic_year==`i')
	   qui predict e if e(sample), res
	   qui replace AB`y' = e if e(sample) 
	   drop e
	 }	 
   
   *-PROD	
     qui tsset id year
     local y "prod"
	 local x "invA sale Dsale LDsale"
	 cap drop AB`y'
     gen AB`y'  = .
	 forvalues i = 1/$N{
	   cap qui reg `y' `x' if (sic_year==`i')
	   cap predict e if e(sample), res
	   cap replace AB`y' = e if e(sample) 
	   cap drop e
	 }		
	 
   *-DISEXP	 
     local y "disexp"
	 local x "invA Lsale"
	 cap drop AB`y'
     gen AB`y'  = .
	 forvalues i = 1/$N{
	   qui reg `y' `x' if (sic_year==`i')
	   qui predict e if e(sample), res
	   qui replace AB`y' = e if e(sample) 
	   drop e
	 }		  

当公司进行向上的真实盈余管理时,会通过扩大生产以降低单位产品的成本获得更高的单位产品利润,表现出存货成本的增加,即异常生产成本增加;通过加大折扣放松信用销售增加利润,会带来现金流的减少,即异常经营现金流净额减少;通过减少R&D支出、广告费用、管理费用等方式增加利润时,则会导致酌量性费用下降,许多学者在计算真实盈余管理总量时,采用如下方式进行加总:

参考文献

相关课程

连享会-直播课 上线了!
http://lianxh.duanshu.com

免费公开课:


课程一览

支持回看,所有课程可以随时购买观看。

专题 嘉宾 直播/回看视频
最新专题 DSGE, 因果推断, 空间计量等
Stata数据清洗 游万海 直播, 2 小时,已上线
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]

Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。


关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
  • 连享会-主页知乎专栏,300+ 推文,实证分析不再抓狂。
  • 公众号推文分类: 计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会主页  lianxh.cn
连享会主页 lianxh.cn

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会学习群-常见问题解答汇总:
https://gitee.com/arlionn/WD