2. 板块划分与数据准备

要验证“多板块成交额跷跷板效应”,第一步不是算相关性,而是把“板块”这个研究对象定义清楚,并把日度成交额数据整理成可直接对齐、可比较、可复算的面板。板块划分标准决定了后续结论的边界:同一批行情数据,按行业分类和按概念分类,得到的跷跷板关系可能完全不同。因此本节的核心任务是两件事——确定一套稳定、可复现的板块分类口径,以及把多板块日度成交额整理成时间对齐、口径一致、缺失可控的数据表。

一、先定分类口径:行业、概念、地域各管什么

常见的板块分类有三类,各自适合回答不同问题。行业分类(如申万一级、中信一级)依据上市公司主营业务划分,成分股相对稳定、板块数量有限(申万一级约31个),适合观察“资金在产业之间如何轮动”;概念分类(如人工智能、低空经济、机器人)依据主题或事件聚合,成分股动态调整、板块数量多,适合捕捉“题材热点之间的此消彼长”;地域分类(如各省市、自贸区)依据注册地或经营区域划分,适合研究区域政策驱动的资金迁移。

对本课程而言,跷跷板效应关注的是“资金从一个板块流向另一个板块”的替代关系,因此建议以行业分类为主口径、概念分类为辅助口径:行业板块成分稳定,成交额序列不会因成分股频繁调入调出而出现口径断裂,适合做长周期验证;概念板块用于检验热点切换时的短期替代强度。无论选哪套,都必须固定三个要素:分类来源(如某数据商的行业分类标准)、板块层级(一级还是二级)、成分股快照日期。三者一旦确定,整个验证过程不再更换,否则不同板块的成交额不可比。

实操建议:优先选择能提供“板块日度成交额”或“板块成分股清单+个股日度成交额”的数据源。前者直接可用但口径不透明,后者可自行按成分股加总、口径完全可控,更适合需要复现的验证任务。

二、数据结构:把多板块成交额组织成面板

清洗后的目标数据是一张“宽表”或“长表”面板。宽表以交易日为行、板块为列,单元格为当日成交额;长表则以“交易日—板块—成交额”三列组织。做跷跷板验证时,宽表便于直接计算板块间相关系数和成交额占比,长表便于分组聚合和缺失检查。下面给出一个宽表示例(数值为教学示例,非实测数据):

交易日电子医药生物电力设备银行全市场成交额
2024-03-011820960124052010800
2024-03-042050880131049011250
2024-03-0517601010118061010640

表中“全市场成交额”一列不可省略。跷跷板效应本质是“此消彼长”,但若全市场总量同步放大,两个板块可能同时增长,只是增速不同;只有把板块成交额放到全市场分母下观察占比变化,才能区分“真替代”与“水涨船高”。因此建议同时保留绝对成交额和成交额占比两套指标。

三、清洗流程:对齐、补缺、去异常

多板块数据拼接时,最常见的问题是交易日历不一致。不同板块可能因停牌、数据源缺失出现个别日期空缺,直接按行拼接会造成错位。正确做法是:先以全市场交易日历为基准建立完整日期索引,再把各板块数据左连接到该索引上,缺失值显式标记为 NaN,而不是让行数自动收缩。

import pandas as pd

# 1. 以全市场交易日历为基准
calendar = pd.date_range("2023-01-01", "2024-12-31", freq="B")

# 2. 各板块成交额按日期对齐(长表转宽表)
panel = (long_df
         .pivot(index="trade_date", columns="sector", values="amount")
         .reindex(calendar))

# 3. 缺失检查:统计每个板块缺失天数与最长连续缺失
missing = panel.isna().sum()
print(missing.sort_values(ascending=False))

# 4. 缺失处理:单日缺失用前后均值填充,连续缺失超过3日标记为无效区间
panel_filled = panel.interpolate(limit=1, limit_direction="both")

缺失处理要克制。单日缺失用前后交易日均值插补通常可接受;连续缺失超过3个交易日,说明该板块可能整体停牌或数据源中断,此时插补会制造虚假的成交额波动,应将该区间标记为无效并在后续计算中剔除,而不是强行填补。

异常值方面,重点检查两类:一是单位不一致,例如某板块数据以“亿元”计、另一板块以“万元”计,拼接后量级相差万倍;二是除权除息或成分股大调整导致的成交额跳变。可用“板块成交额/全市场成交额”占比序列做初步筛查,占比单日突变超过历史均值3倍标准差的点,逐一核对原始数据来源。

四、口径校验:让数据“自证”可用

清洗完成后,至少做三项校验再进入验证环节。第一,加总校验:各行业板块成交额之和应接近全市场成交额(允许因分类覆盖不全存在差额,但差额比例应稳定);第二,量纲校验:所有板块成交额单位统一为亿元,且数值量级合理;第三,时间连续性校验:面板行数等于交易日历长度,无重复日期、无乱序。

多板块日度成交额数据准备流程 原始数据源 板块成分股清单 个股日度成交额 固定分类口径 行业为主 / 概念为辅 层级 + 快照日期锁定 交易日历对齐 全市场日历为基准 左连接 + NaN 标记 缺失与异常处理 单日插补 / 连续缺失剔除 单位统一 + 占比突变筛查 成交额面板 日期 × 板块 宽表 绝对额 + 占比双指标 三项口径校验 加总 / 量纲 / 连续性 通过后进入验证 可用数据集 对齐、无重复 口径可复现 关键约束 ① 分类来源、层级、成分股快照日期三者锁定后全程不更换,保证板块成交额可比。 ② 缺失值显式保留为 NaN,连续缺失超过 3 个交易日标记无效区间,不做强行插补。 ③ 同时保留绝对成交额与占全市场成交额比例,用于区分“真替代”与“总量放大”。

三项校验中,加总校验最能暴露口径问题。若各行业板块成交额之和长期只占全市场成交额的60%左右且比例稳定,说明分类覆盖不全但口径一致,可继续使用;若该比例在不同月份大幅跳动,则很可能是成分股快照混用了不同日期,必须回到分类环节重新固定快照。

五、交付一份可复用的数据准备清单

把上述要求固化成清单,每次新增板块或更换数据源时逐项核对,可避免口径漂移:

  • 分类标准:记录分类来源、板块层级、成分股快照日期,写入数据说明文档。
  • 板块清单:列出全部板块名称与代码,标注主口径与辅助口径,剔除成分股少于10只的板块(成交额易受单只个股扰动)。
  • 日期索引:以全市场交易日历为基准,面板行数等于日历长度,无重复、无乱序。
  • 缺失记录:统计各板块缺失天数与最长连续缺失,连续缺失区间单独列表备查。
  • 单位与量纲:全部统一为亿元,抽查3个板块与原始数据核对量级。
  • 双指标:绝对成交额与占全市场比例两列同时保留,占比列用于后续跷跷板判断。

完成这一步后,得到的是一张时间对齐、口径锁定、缺失可控的多板块成交额面板。它本身不产生结论,但决定了后续相关系数、占比迁移、轮动强度等所有验证结果是否可信。分类口径一旦松动,后面算得再精细也只是在错误的基础上叠加精度。