2. 板块划分与数据准备
要验证“多板块成交额跷跷板效应”,第一步不是算相关性,而是把“板块”这个研究对象定义清楚,并把日度成交额数据整理成可直接对齐、可比较、可复算的面板。板块划分标准决定了后续结论的边界:同一批行情数据,按行业分类和按概念分类,得到的跷跷板关系可能完全不同。因此本节的核心任务是两件事——确定一套稳定、可复现的板块分类口径,以及把多板块日度成交额整理成时间对齐、口径一致、缺失可控的数据表。
一、先定分类口径:行业、概念、地域各管什么
常见的板块分类有三类,各自适合回答不同问题。行业分类(如申万一级、中信一级)依据上市公司主营业务划分,成分股相对稳定、板块数量有限(申万一级约31个),适合观察“资金在产业之间如何轮动”;概念分类(如人工智能、低空经济、机器人)依据主题或事件聚合,成分股动态调整、板块数量多,适合捕捉“题材热点之间的此消彼长”;地域分类(如各省市、自贸区)依据注册地或经营区域划分,适合研究区域政策驱动的资金迁移。
对本课程而言,跷跷板效应关注的是“资金从一个板块流向另一个板块”的替代关系,因此建议以行业分类为主口径、概念分类为辅助口径:行业板块成分稳定,成交额序列不会因成分股频繁调入调出而出现口径断裂,适合做长周期验证;概念板块用于检验热点切换时的短期替代强度。无论选哪套,都必须固定三个要素:分类来源(如某数据商的行业分类标准)、板块层级(一级还是二级)、成分股快照日期。三者一旦确定,整个验证过程不再更换,否则不同板块的成交额不可比。
二、数据结构:把多板块成交额组织成面板
清洗后的目标数据是一张“宽表”或“长表”面板。宽表以交易日为行、板块为列,单元格为当日成交额;长表则以“交易日—板块—成交额”三列组织。做跷跷板验证时,宽表便于直接计算板块间相关系数和成交额占比,长表便于分组聚合和缺失检查。下面给出一个宽表示例(数值为教学示例,非实测数据):
| 交易日 | 电子 | 医药生物 | 电力设备 | 银行 | 全市场成交额 |
|---|---|---|---|---|---|
| 2024-03-01 | 1820 | 960 | 1240 | 520 | 10800 |
| 2024-03-04 | 2050 | 880 | 1310 | 490 | 11250 |
| 2024-03-05 | 1760 | 1010 | 1180 | 610 | 10640 |
表中“全市场成交额”一列不可省略。跷跷板效应本质是“此消彼长”,但若全市场总量同步放大,两个板块可能同时增长,只是增速不同;只有把板块成交额放到全市场分母下观察占比变化,才能区分“真替代”与“水涨船高”。因此建议同时保留绝对成交额和成交额占比两套指标。
三、清洗流程:对齐、补缺、去异常
多板块数据拼接时,最常见的问题是交易日历不一致。不同板块可能因停牌、数据源缺失出现个别日期空缺,直接按行拼接会造成错位。正确做法是:先以全市场交易日历为基准建立完整日期索引,再把各板块数据左连接到该索引上,缺失值显式标记为 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倍标准差的点,逐一核对原始数据来源。
四、口径校验:让数据“自证”可用
清洗完成后,至少做三项校验再进入验证环节。第一,加总校验:各行业板块成交额之和应接近全市场成交额(允许因分类覆盖不全存在差额,但差额比例应稳定);第二,量纲校验:所有板块成交额单位统一为亿元,且数值量级合理;第三,时间连续性校验:面板行数等于交易日历长度,无重复日期、无乱序。
三项校验中,加总校验最能暴露口径问题。若各行业板块成交额之和长期只占全市场成交额的60%左右且比例稳定,说明分类覆盖不全但口径一致,可继续使用;若该比例在不同月份大幅跳动,则很可能是成分股快照混用了不同日期,必须回到分类环节重新固定快照。
五、交付一份可复用的数据准备清单
把上述要求固化成清单,每次新增板块或更换数据源时逐项核对,可避免口径漂移:
- 分类标准:记录分类来源、板块层级、成分股快照日期,写入数据说明文档。
- 板块清单:列出全部板块名称与代码,标注主口径与辅助口径,剔除成分股少于10只的板块(成交额易受单只个股扰动)。
- 日期索引:以全市场交易日历为基准,面板行数等于日历长度,无重复、无乱序。
- 缺失记录:统计各板块缺失天数与最长连续缺失,连续缺失区间单独列表备查。
- 单位与量纲:全部统一为亿元,抽查3个板块与原始数据核对量级。
- 双指标:绝对成交额与占全市场比例两列同时保留,占比列用于后续跷跷板判断。
完成这一步后,得到的是一张时间对齐、口径锁定、缺失可控的多板块成交额面板。它本身不产生结论,但决定了后续相关系数、占比迁移、轮动强度等所有验证结果是否可信。分类口径一旦松动,后面算得再精细也只是在错误的基础上叠加精度。