温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
作者:王若溪 (中山大学)
邮箱:sowendy@qq.com
目录
盈余管理是公司金融和会计领域的一个重要话题。本文对目前文献中常用的盈余管理指标进行了梳理,并基于国泰安数据库中的变量,提供了这些指标在 Stata 中的实现方法。
目前的研究将普遍将盈余管理分为应计盈余管理和真实盈余管理。应计盈余管理基于权责发生制,针对会计处理,通过会计政策选择、应计项目调整和会计估计变更等方式来进行;真实盈余管理是通过改变企业真实生产经营活动来实现的。盈余管理的测量一直是重点研究方向,目前的方法多通过计算残差的方式来估算盈余管理的程度。
在盈余管理研究初期,许多学者聚焦于应计盈余管理,并提出了相应的测量模型。Healy (1985) 在研究分红计划时,最早提出了应计项目操纵的计算方式,Jones (1991) 提出了经典的Jones模型,发展了对操纵性应计项目估计的方法。之后国内外学者不断完善和发展对应计盈余管理测量。针对不同测算方式的准确度,黄梅和夏新平 (2009) 使用中国数据,对七种应计盈余管理计量方法进行了检验,发现分年度分行业计算的修正Jones模型在模型设定和检验能力方面表现更佳,并建议以此方法为主进行后续研究。
真实盈余管理的研究开始得相对较晚,国内外普遍使用Roychowdhury (2006) 提出的方法,从销售操纵、酌量性费用和过度生产三个方面进行分析,计算异常现金流、异常生产成本和异常酌量性费用。之后的学者多采用将三个指标加总的方式衡量真实盈余管理的整体程度。
本文将逐一介绍黄梅和夏新平 (2009) 总结的应计盈余管理测算方法和Roychowdhury (2006) 提出的真实盈余管理计算方法,参考文献的详细内容在文末列出。
Jones (1991) 提出了经典的Jones模型,从营业收入变动和固定资产水平衡量企业应计利润的变动。具体模型如下:
其中,
黄梅和夏新平 (2009) 将
黄梅和夏新平 (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
}
Dechow等 (1995) 提出的修正Jones模型在Jones模型的基础上加入了应收账款的变动,具体模型如下:
其中,
对应的 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
}
陆建桥 (1999) 在修正Jones模型的基础上,进一步考虑了无形资产和其他长期资产的作用。具体模型如下:
其中,
对应的 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
}
Dechow等 (2003) 在修正Jones模型的基础上,对应收账款进行了调整,并加入滞后一期的总应计项目和销售增长率。具体模型如下:
其中,
对应的 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
}
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
}
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
}
Ball和Shivakumar (2006) 提出,应计和业绩之间存在非线性相关,为了解决这一问题,在传统的Jones模型中加入表示虚拟变量
对应的 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) ,通过分别计算经营活动的异常现金流
Roychowdhury (2006) 将
对应的 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
免费公开课:
直击面板数据模型 - 连玉君,时长:1小时40分钟 Stata 33 讲 - 连玉君, 每讲 15 分钟. 部分直播课 课程资料下载 (PPT,dofiles等)
支持回看,所有课程可以随时购买观看。
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 ⭐ | DSGE, 因果推断, 空间计量等 | |
⭕ Stata数据清洗 | 游万海 | 直播, 2 小时,已上线 |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会学习群-常见问题解答汇总:
✨ https://gitee.com/arlionn/WD