NuminorBeta

关联中国 A 股公司数据时,为什么会悄悄丢行

简短回答: 因为实体对齐按设计就是部分完成的,对齐比例在不同数据集之间、甚至在同一数据集的不同表之间差别悬殊,而内关联丢掉的正是那些没有对齐的行。这些行不是随机样本,而是规模更小、覆盖更少、更难识别的交易对手。所以关联不只让数据变少,它让数据发生倾斜。

对齐比例是数据的属性,不是缺陷

中国上市公司披露中的交易对手是一段自由文本的名称。只有在它被匹配到标准公司标识之后,才成为可关联的对象,而匹配并不会在每一行上都成功。

数据集对齐比例数据截止日
数库 C2C 披露数据约 28% 到 36% 的行带有对齐后的 ID,其余仅有名称2026-05-16
数库关系图谱(时点)股权关系约 98%,担保关系远低于此2026-08-23

第二行才是真正让人付出代价的那一行。股权与担保处在同一个数据集里,对齐率却相差极大,因此一次跨两者的内关联,会得到一张明显偏向大型、身份最清晰主体的担保网络,而旁边的股权网络看上去毫无问题。这种偏差在行数层面是看不出来的,因为两个查询都返回了足够多的行。

应该怎么做。 在 C2C 上做图谱分析,请从 supply_chain_trade 出发,它两端都已对齐。当你确实需要「如披露原样」的名称与占比时,再使用原始的明细表。在关系图谱上,请在汇总之前、而不是之后,按关系类型分别统计未对齐的行数。

一把主键贯穿整个数据资产

每一个以公司为主键的数库数据集,都把实体对齐到同一个公司标识,它定义在参考数据集中。SAM、C2C、股权关系、SmarTag、招投标与基本面数据全部落在这把主键上。公司只需对齐一次,它的分部收入、供应链连边、股权结构、新闻标签、中标记录与财报便都能按这一把主键对上。这正是这些数据集可组合、而不只是彼此相邻的原因。

这把主键有三个容易让人栽跟头的地方:

证券 ID 不是公司 ID。 要从一只证券走到它的公司,或走到任何以公司为主键的数据集,请用 base_stock.csfid 关联到 base_company.company_id。证券自身的 id,也就是以 S 开头的那一个,标识的是工具本身。它不是公司主键,也不会像公司主键那样关联成功。(数库参考数据,见 2026 年 7 月版数据档案。)

公司 ID 的前缀不止一种。 规范的公司标识会以不止一种前缀出现,其中包括 CSF… 与 ICN…。请把整个字符串当作主键。假定只有一种前缀、或把前缀截掉的代码,会丢掉其他所有前缀下的记录。(数库参考数据,2026 年 7 月版数据档案。)

在 SmarTag 中,未上市公司带占位符。 被打标的公司共有 1,914,479 家,其中大多数是非上市或私营企业。要覆盖全部公司,请按 companyid 关联。只要上市主体时,请把 stockcode 过滤到真实的交易所代码,并剔除标记未上市行的 csf 占位符。其中的 A 股代码与 SAM 的 secu 一致。(数库 SmarTag,数据截止 2026-09-16。)

有些表在你关联之前根本不带实体

在基本面数据中,明细科目事实表既不带日期也不带实体。你必须先按 report_id 把它关联到 filing 表,它才具有意义,而这一步正是 publish_date、report_date、company_id、secu、currency 与报表附注归属的来源。同一个标准化科目若出现在两张报表附注下,就会有两个 report_id,其数值也可能不同,按 report_id 做主键正是把它们区分开的方法。(数库基本面数据,数据截止 2026-04-14。)

最值得先跑一遍的检查

在做任何汇总之前,先统计关联两侧的行数,以及未对齐的行数。如果丢失超过一两个百分点,问题就不是「我怎么把它们找回来」,而是「我现在漏掉的是哪一类交易对手」。在供应链或担保网络上,这个答案决定了结果是否还有意义。

Datasets this page draws on

Related questions