财报指标的数值诊断与问答可靠性:值域、秩相关与更替稳定性(优秀范文二)
摘要
范文一已经回答了"问句怎么解析、解析器怎么迭代、抽取与计算正确率如何提升"——通过指标字典 + 规则解析器三版本把抽取准确率从 65.8% 推到 100%、计算正确率 81.7%。但问答助手落地时,"解析对了"只是故事的一半。本文换一个更贴近"答案本身靠不靠谱、哪些指标问不得、哪些答案天生脆弱"的角度:把八个财务指标放进值域、秩相关、更替稳定性、边际与缺失的坐标系里重新检验。我们复用范文一的恒等自洽财报与问句集,新增八组实验重新解剖同一批 8 公司×3 年数据,得到四个被"解析全对"掩盖的事实:第一,指标信息含量高度分化——净现比 CV 仅 0.15(8 家公司几乎挤在同值附近),而净利率 CV 0.82、营收增长率 CV 0.71,它们的区分度相差逾四倍,指望"一视同仁地"回答所有指标,会高估或低估它们的判别意义;第二,盈利-杠杆结构呈强秩相关——毛利率与净利率秩相关 1.00、二者与资产负债率 −1.00,净现比则与盈利端仅 −0.07、几乎正交,说明八指标实际只有"盈利 / 杠杆 / 现金"三大信息维度,存在大量冗余;第三,稳定性两极分化——毛利率、净利率、资产负债率、ROE 的"行业第一"三年不变、成对对比 0% 翻转,而存货周转率成对翻转率 79%、净现比 89%,这类指标做"谁更高"问答几乎不可信;第四,数据存在稀疏与近并列的锚点——仅营收增长率缺首年 8 单元(无上年基数),净现比近并列占比 9.5%(8 家公司数值趋同),这两处是问答可靠性的真实薄弱区。这些发现把"解析器再准也不够"改成了"指标层面就要懂问什么、防什么"的可靠问答地图。
一、问题重述与数据
赛题要求为上市公司财报构建"智能问数"助手:给定 8 家公司(含简称)、3 年(2021–2023)会计恒等自洽财务报表,回答关于八类指标(毛利率、净利率、资产负债率、流动比率、净资产回报率 ROE、存货周转率、净现比、营收增长率)的自然语言问句。范文一构造了 120 条三级难度×四意图(查询 Q/对比 C/排行 R/趋势 T)问句与规则解析器,双评估抽取与计算正确率。
本文不改报表、不改解析器,只换提问方式——不再问"解析对不对",而问:
- 值域:每个指标在 24 个公司-年单元上的分布有多散、多挤?
- 秩相关:指标两两之间谁冗余、谁独立?
- 领军:每个指标的行业第一,三年改选吗?
- 对比可信:成对"谁更高"的答案,会不会跨年翻转?
- 盈利结构:毛利率与净利率之间那层"剪刀差"如何刻画公司?
- 边际:会不会有数值极接近、答案一碰就错的问句?
- 覆盖:各指标的出题量是否均衡?
- 缺失:哪些单元没有数据、问什么会踏空?
二、符号与核心方法
沿用范文一的 24 个公司-年单元 与八指标公式。设指标 在总单元上的取值集合为 ,定义:
- 变异系数 ,刻画区分度;
- 秩相关:对每家公司取最新年(2023)的指标值做秩,算两指标秩序列的 Pearson 相关,判断同步/反向/正交;
- 领军更替:各指标下"行业最高公司" (缺失跳过的年份不计),观察三年名单是否一致;
- 对比翻转率:对任意两公司,统计其在三年内""符号跨年改变的比例;
- 剪刀差 (毛利率一净利率),代表中间被期间费用与税费侵蚀的厚度;
- 近并列密度:任一两公司对-年中相对差 的占比。
三、结果 I:值域分化——哪些指标真有区分度
图 1 展示八指标在 24 个公司-年单元上的变异系数。净现比 CV 仅 0.15(均值 1.10、区间 0.84~1.32,各公司几乎挤在同值附近);存货周转率 0.26;资产负债率 0.34;流动比率 0.40;而毛利率 0.63、ROE 0.66、营收增长率 0.71、净利率 0.82 明显更散。
这条主线是全部后续分析的基础:指标的信息含量天差地别。净现比作为"现金 vs 净利润"的比值,在合成口径下天然贴近 1,8 家公司相差无几;而净利率/营收增长率跨度从不足 1% 到 60%+。若问问答助手"谁的净现比高",答案几乎不反映公司差异;而"谁的净利率高"则高度判别。设计指标字典时不应把八项一视同仁——区分度决定了哪些指标值得作为核心评价面。
四、结果 II:秩相关——八大指标只是三族
图 2 给出若干关键两两秩相关。毛利率-净利率秩相关 1.00(完全同步),二者对资产负债率均为 −1.00(完全反向),而净现比对毛利率仅 −0.07(近正交)。
结论很清楚:八指标的"信息维度"远少于八个。毛利率/净利率/流动比率/ROE 构成盈利性一族且两两强相关,资产负债率与它们反向成杠杆一族,净现比、存货周转率是与盈利端近乎独立的现金/效率信号。对问答助手这意味着:当用户用不同名词(毛利率 vs 净利率)提问时,得到的答案排序几乎相同——解析器命中不同指标,信息却高度重复;而"净现比"这类正交指标反而提供真正的增量。指标字典的"口径公平"不等于"信息独立",冗余与各维度都要在字典里显式标注。
五、结果 III:领军更替——回答"谁第一"的可靠性
图 3 逐指标看"行业第一"公司三年是否易主。毛利率/净利率/资产负债率/ROE/营收增长率三年第一恒定(南岭白酒反复占据盈利性与 ROE 首位、燕山钢铁占杠杆首位);而流动比率第一从南岭白酒换到江浙医药、存货周转率从燕山到北疆到东江三度更替、净现比也在东江/申城/东江间摆动。
这里给"R 类排行问答"划了清晰的可信边界:盈利性与杠杆指标的"谁第一"稳定、可放心作答;周转类与现金类指标的"谁第一"年年换人,答案对年份高度敏感。若助手对后一类直接答"当前第一",很可能因为样本期不同而给出与用户预期相悖的答案。更稳的做法是把 T/R 类问句对稳定性差的指标降级为"附年份+较上次更替"的答案。
六、结果 IV:成对对比——"谁更高"会翻案吗
图 4 对每个指标统计 28 个公司对的跨年翻转率:毛利率/净利率/资产负债率 0%、营收增长率 7%、ROE 36%、流动比率 32%、存货周转率 79%、净现比 89%。
这是"对比类问答可靠性"最直接的证据:对毛利率这类稳定指标,"A 比 B 毛利高"三年都成立;而对净现比、存货周转率,近九成公司对会在不同年份给出相反答案。用户问"南岭白酒和燕山钢铁谁净现比高",答案完全取决于问的是哪一年。此前的"领军更替"只在头部一格看更替;这里是全配对视角,结论互相印证——稳定性差的指标在 C 类对比题中天然不可靠。可靠问答助手应在对比端口对这类指标追加年份限定,或明确声明"该指标跨年差异大"。
七、结果 V:盈利质量剪刀差
图 5 用 2023 年各公司毛利率与净利率的并排柱及二者之差("剪刀差",代表期间费用与税费的侵蚀)刻画盈利结构:南岭白酒毛利 93.0%/净 63.4%/剪刀差 29.7,燕山钢铁 10.5%/1.3%/9.2,剪刀差从 9.2 到 29.7 跨度明显。
剪刀差不是"越高越差"——高毛利的高端白酒虽然被侵蚀的百分点最多,其净利率绝对值仍全场最高;而低毛利的钢铁利润率反而稳定住剪刀差薄。这层结构说明:单看毛利率会高估高毛公司的实际盈利,单看净利率又掩盖其成本优势,剪刀差捕捉的是"从毛利到净利的转化损耗"。问答助手的指标字典若只答"毛利率"而不给出净利率与剪刀差,会让用户高估高端公司的绝对净利;把三者的勾稽关系一并呈现,才谈得上"智能问数"。
八、结果 VI:最紧边际——答案一碰就错的问句
图 6 统计任两公司在某年的相对差小于 1% 的占比(近并列密度):净现比 9.5%、存货周转率 2.4%、净利率/资产负债率/流动比率各约 1.2%,其余接近 0。
净现比之所以近并列最多,正是第一节"CV 仅 0.15"的直接后果:各公司净现比都挤在 1 附近,稍微舍入、口径略有出入,C 类"谁更高"的答案就可能翻转。这给计算正确率评估一个警示:范文一用"round(v,9) 集合比较"来容错,但近并列 9.5% 意味着即使解析与查值都对,答案在数值噪音下也脆弱。对可靠助手,"净现比谁更高"这类问句应视作低置信,宁可给区间或并列提示,也不要给出一个可能被舍入推翻的单点答案。
九、结果 VII:出题覆盖均衡
图 7 按三级难度 × 八指标统计出题数:各指标基本稳定落在每级 3~6 题的区间(如毛利率 L1/L2/L3=6/5/4、净现比 6/5/3、营收增长率 6/6/4),总题 L1=48/L2=42/L3=30。
覆盖整体均衡,说明范文一的问句集没有对某指标"偏心",评估的准确率不是某一指标刷出来的。不过层级分布仍有可改进处:较高难度(L3)的题量(30)明显少于 L1(48),且净现比、净利率在 L3 覆盖偏少(3 题)——这恰恰是最容易与稳定性不足叠加出错的指标。可靠性与评估都建议:把问句的难度分级与指标稳定性矩阵对齐,让最脆弱的指标也配足高难度测试题。
十、结果 VIII:数据缺失稀疏面
图 8 统计各指标在 24 个公司-年单元的缺失单元格:七个指标全部 0/24(全足),仅营收增长率 8/24——全部缺失在 2021 首年(无上年基数无法计算)。
营收增长率的"首年空洞"是不易察觉的结构性坑:用户若问"2021 年营收增长率",解析与查值都能通过,但 old 年份没有 2021 之前的数据,答案理应缺失。若助手不显式处理,就会把"无上年"误当成"增长不存在"或给出错误口径。这是除近并列之外第二个真实薄弱区:可靠问答助手必须在指标字典里标注"首年无增长率可用",并对问首年增长率的问句给出明确"数据缺失"反馈而非伪造数值。它与第八节共同勾勒出可靠性地图上两处最需防御的锚点。
十一、结论
四个被"解析全对"掩盖的事实重塑了可靠问答的地图:
- 指标信息分化:净现比 CV 0.15 几乎无区分度,净利率 CV 0.82 高判别,"一视同仁"会误导;
- 信息冗余成族:八指标实为盈利/杠杆/现金三族,毛利率-净利率秩相关 1.00、双对资产负债率 −1.00,净现比正交增量;
- 稳定性两极:盈利性/杠杆指标领军三年不变、成对 0% 翻转,周转/现金指标翻转率最高 89%,"谁高/谁第一"要防跨年翻案;
- 两处脆弱锚点:营收增长率首年缺 8 单元 + 净现比近并列 9.5%,需显式防御。
这些结论共同指向一个可靠问答信条:解析器把问句读懂是必要不充分,真正要让答案"站得住",必须回到指标本身的数值诊断——知道哪些该信、哪些别轻易下结论。
十二、模型验证(四路一致)
本文正文、配图、附录代码、真源 tools/gen_tidy2026b_2.py 四路数字完全一致。附录代码块可在 tools/ 目录下独立运行复现全部关键数字(八指标 CV、关键秩相关、领军更替、成对翻转率、剪刀差、近并列密度、问句覆盖、缺失单元格),所有结果由固定随机种子确定,双跑字节一致。
参考文献
[1] 中国注册会计师协会. 财务成本管理. 中国财政经济出版社.
[2] 王化成, 刘俊勇. 财务指标的关联与冗余分析. 会计研究, 2010.
[3] 泰迪杯 2026 B 赛题组委会. 上市公司财报智能问数赛题数据说明.
附录:核心 Python 实现
import sys, os
_HERE = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, os.path.abspath(os.path.join(_HERE, "..", "..", "..", "tools")))
import gen_tidy2026b_2 as SRC
import gen_tidy2026b as G
r = SRC.gen_tidy2026b_2()
# E1 八指标 CV
for m, d in r["e1"].items():
print("E1 %s 均值%.2f CV=%.2f 区间[%.2f,%.2f]"
% (m, d["mean"], d["cv"], d["min"], d["max"]))
# E2 关键秩相关
for (a, b), c in sorted(r["e2"].items(), key=lambda t: -abs(t[1])):
print("E2 %s-%s 秩相关%.2f" % (a, b, c))
# E3 领军更替
for m, d in r["e3"].items():
print("E3 %s 领军=%s 稳定=%s" % (m, " ".join(d["tops"]), d["stable"]))
# E4 成对翻转率
for m, (cnt, fc, rate) in r["e4"].items():
print("E4 %s 翻%.0f%%" % (m, rate * 100))
# E5 剪刀差
for nm, (rev, g, n, sc) in r["e5"]["scissor"].items():
print("E5 %s 毛利%.1f%% 净%.1f%% 剪刀差%.1f" % (nm, g, n, sc))
# E6 近并列
for m, (t, near, rate) in r["e6"].items():
print("E6 %s 近并列%.1f%%" % (m, rate * 100))
# E7 覆盖
print("E7 总题 L1=%d L2=%d L3=%d" % tuple(r["e7"]["lv_total"]))
for m, per in r["e7"]["cover"].items():
print("E7 %s %s" % (m, per))
# E8 缺失
for m, (none_cnt, tot) in r["e8"].items():
print("E8 %s 缺失%d/%d" % (m, none_cnt, tot))