1. 项目背景与数据价值
上市公司盈余管理研究一直是财务金融领域的核心课题。过去二十年间(2000-2024年),中国资本市场快速发展,企业财务行为也呈现出复杂多样的特征。这个数据集完整记录了沪深两市上市公司两种典型的盈余管理方式——真实盈余管理(Real Earnings Management)和应计盈余管理(Accrual-based Earnings Management)的量化指标。
真实盈余管理通过调整实际经营活动(如削减研发支出、过度生产等)来操纵利润,而应计盈余管理则是通过会计政策选择和估计变更来实现。两者在动机、手段和后果上存在显著差异。这个数据集的价值在于:
- 覆盖时间跨度长达24年,完整包含多个经济周期
- 采用学术界公认的Jones模型、Modified Jones模型、Roychowdhury模型等计算方法
- 包含行业、年份等多维度控制变量
- 数据已进行winsorize处理,消除极端值影响
2. 数据构建方法论
2.1 数据来源与处理流程
原始数据主要来自CSMAR和Wind金融数据库,处理流程包括:
- 原始财务数据清洗(处理缺失值、异常值)
- 计算关键财务指标:
- 经营性现金流/总资产
- 可操控性应计利润
- 生产成本异常变动
- 按行业-年度分组回归计算正常水平
- 计算异常部分作为盈余管理代理变量
2.2 核心计算模型
应计盈余管理计算(Modified Jones模型)
TA_t/At-1 = α0(1/At-1) + α1(ΔREV_t/At-1) + α2(PPE_t/At-1) + ε_t DA_t = TA_t/At-1 - [α0(1/At-1) + α1(ΔREV_t-ΔREC_t)/At-1 + α2(PPE_t/At-1)]其中:
- TA:总应计利润
- DA:可操控性应计利润
- ΔREV:营业收入变动
- ΔREC:应收账款变动
- PPE:固定资产净值
真实盈余管理计算(Roychowdhury模型)
通过以下三个方程的残差项加总衡量:
- 异常现金流:
CFO_t/At-1 = α0 + α1(1/At-1) + β1(Sales_t/At-1) + β2(ΔSales_t/At-1) + ε_t - 异常生产成本:
PROD_t/At-1 = α0 + α1(1/At-1) + β1(Sales_t/At-1) + β2(ΔSales_t/At-1) + β3(ΔSales_t-1/At-1) + ε_t - 异常酌量性费用:
DISEXP_t/At-1 = α0 + α1(1/At-1) + β1(Sales_t-1/At-1) + ε_t
3. Stata实操指南
3.1 基础环境配置
// 设置工作环境 clear all set more off set mem 500m set maxvar 10000 // 安装必要插件 ssc install asdoc, replace // 结果导出工具 ssc install winsor, replace // 缩尾处理3.2 数据导入与预处理
// 导入CSV数据 import delimited "Earnings_Management_2000-2024.csv", clear // 变量标签设置 label variable stkcd "股票代码" label variable year "年度" label variable rem "真实盈余管理" label variable da "应计盈余管理" // 行业年度虚拟变量生成 tab industry, gen(ind_) tab year, gen(yr_) // 缩尾处理(1%水平) winsor rem, gen(rem_w) p(0.01) winsor da, gen(da_w) p(0.01)3.3 基础分析模型
描述性统计
asdoc tabstat rem_w da_w, stat(mean sd p50 min max N) col(stat) /// title("描述性统计结果") replace相关性分析
pwcorr rem_w da_w, star(0.05) graph matrix rem_w da_w, half title("变量散点图矩阵")分组比较检验
// 按产权性质分组检验 ttest rem_w, by(soe) ttest da_w, by(soe) // 年度趋势分析 graph bar (mean) rem_w da_w, over(year) /// title("盈余管理年度趋势") legend(label(1 "真实盈余管理") label(2 "应计盈余管理"))4. 高级分析应用
4.1 面板回归模型
// 固定效应模型 xtset stkcd year xtreg roa rem_w da_w size lev growth, fe estimates store fe_model // 随机效应模型 xtreg roa rem_w da_w size lev growth, re estimates store re_model // Hausman检验 hausman fe_model re_model4.2 调节效应分析
// 生成交乘项 gen rem_audit = rem_w * big4 gen da_audit = da_w * big4 // 调节效应检验 xtreg roa rem_w da_w big4 rem_audit da_audit size lev growth, fe4.3 结果导出技巧
// 回归结果三线表输出 esttab fe_model re_model using "result.rtf", /// replace b(3) t(3) /// star(* 0.1 ** 0.05 *** 0.01) /// title("回归结果比较") /// mtitles("固定效应" "随机效应") /// addnotes("*** p<0.01, ** p<0.05, * p<0.1") // 描述性统计导出 asdoc tabstat rem_w da_w, stat(mean sd p50 min max N) /// col(stat) title("描述性统计") save("desc_stat.doc") replace5. 常见问题解决方案
5.1 数据缺失处理
当出现"missing values generated"警告时:
- 检查原始数据完整性
- 使用
mdesc命令识别缺失模式 - 根据情况选择:
drop if missing(...)删除缺失样本ipolate线性插值mi impute多重插补
5.2 共线性问题
// 方差膨胀因子检验 quietly xtreg roa rem_w da_w size lev growth, fe estat vif // 解决方案: // 1. 删除VIF>10的变量 // 2. 使用主成分分析 pca rem_w da_w size lev growth predict pc1 pc2 pc35.3 异方差处理
// 异方差检验 xtreg roa rem_w da_w, fe estat hettest // 稳健标准误解决方案 xtreg roa rem_w da_w, fe vce(robust)6. 研究扩展建议
动态分析:构建动态面板模型(GMM)研究盈余管理的持续性
xtabond2 roa L.roa rem_w da_w, gmm(L.roa) iv(rem_w da_w) twostep行业异质性:分行业回归比较
bysort industry: xtreg roa rem_w da_w, fe经济后果分析:考察盈余管理对股价崩盘风险的影响
xtreg crash_risk L.rem_w L.da_w, fe机器学习应用:使用LASSO筛选重要控制变量
lasso linear roa rem_w da_w size lev growth invest /// cash mtb turnover, selection(cv)
在实际分析中,建议先进行基本的描述性统计和相关性分析,了解数据分布特征后再选择适当的模型。对于面板数据,务必进行F检验、LM检验和Hausman检验来确定适用混合OLS、固定效应还是随机效应模型。