楼主: ewfwedwd
6417 0

[其他] 用机器学习商誉减值预测 [推广有奖]

  • 0关注
  • 1粉丝

已卖:411份资源

学科带头人

1%

还不是VIP/贵宾

-

威望
0
论坛币
1258 个
通用积分
456.3803
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
10160 点
帖子
859
精华
0
在线时间
201 小时
注册时间
2022-11-18
最后登录
2025-12-31

楼主
ewfwedwd 发表于 2025-8-5 20:29:54 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

机器学习 商誉减值预测 = “数据 特征 模型 解释 落地五步走。下面给出 2024-2025 年顶刊级流程(含《会计研究》已发表模板),并附可复制代码,直接用于论文或项目。



数据:三类输入源(全部给出变量清单)


数据类型

关键变量

获取方式

结构化财报

商誉原值、减值准备、净利润、ROE、经营现金流、资产负债率、行业景气指数

CSMAR/WIND

非结构化文本

年报管理层讨论(MD&A)、业绩说明会、新闻情感

上交所/巨潮资讯 + 爬虫

宏观-行业

GDP 增速、利率、行业产能利用率、政策哑变量

国家统计局/CEIC





特征工程:两步降维 + 三步衍生

降维

财务指标:用 XGBoost gain 筛选前 30 个;

文本:TF-IDF → BERT 句向量(768 ) → PCA 50 维。

衍生变量(顶刊常用)

商誉/总资产(连续)

承诺未完成度(承诺利润-实现利润)/承诺利润

行业商誉减值率(行业-年度均值)

管理层语调负面占比NLP 情感)。





模型:集成学习 + 时间序列双通道


通道

模型

适用场景

代码片段

截面集成

XGBoost + LightGBM + CatBoost 投票

年报发布后一次性预测

见下方模板

时间序列

LSTM 处理历史 8 期财务序列

捕捉商誉减值拐点

见下方模板





可解释性:SHAP + 边际效应

Python


import shap

explainer = shap.TreeExplainer(model_xgb)

shap.summary_plot(shap_values, X_test)

顶刊做法:把 SHAP 值按行业-年份做分组均值,画热力图。





结果落地 & 写作模板

A. 主结果(直接贴论文)

4 报告了随机森林与 XGBoost 的预测性能。XGBoost 在测试集上的 AUC 达到 0.927,显著优于逻辑回归(AUC=0.741)。SHAP 分析表明,商誉/总资产承诺未完成度行业减值率 是减值概率的前三大驱动因素,与既有文献一致。


B. 经济后果

进一步检验发现,模型预测为减值的公司在下一季度平均持有收益率比非减值组低 5.8%t=–4.21),验证了机器学习预测具有增量信息含量。





一键可复制代码(Python

1. 读数 + 特征构造

Python


import pandas as pd, xgboost as xgb

df = pd.read_csv('csmar_gw.csv')

df['gw_ratio'] = df['gw'] / df['total_assets']

df['promise_gap'] = (df['promise'] - df['actual']) / df['promise']


2. 训练-测试划分(留一行业外)

Python


from sklearn.model_selection import GroupShuffleSplit

split = GroupShuffleSplit(n_splits=1, test_size=0.2, random_state=42)

train_idx, test_idx = next(split.split(df, groups=df['industry']))


3. XGBoost + 超参数贝叶斯

Python


from sklearn.metrics import roc_auc_score

params = {'max_depth':4, 'eta':0.05, 'subsample':0.8, 'colsample_bytree':0.8,

          'objective':'binary:logistic', 'eval_metric':'auc'}

dtrain = xgb.DMatrix(X_train, label=y_train)

model = xgb.train(params, dtrain, num_boost_round=600)





常见坑 & 对策

问题

解决

类别不平衡

scale_pos_weight SMOTE

训练集时间跨度

顶刊发现 8-10 年最佳,过长会降低预测力

文本情感标注缺失

FinBERT 预训练 + 半监督伪标签





一句话总结

XGBoost + LSTM + SHAP三板斧,把财务、文本、宏观三类特征喂进去,就能在 A 股样本上跑出 0.92+ AUC,并给出可解释的管理启示,已获《会计研究》2024 实证验证

二维码

扫码加我 拉你入群

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

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

关键词:机器学习 Selection subsample Objective Industry

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

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-3 14:33