← 返回文章库

持仓行业标签更新了,如何避免历史配置贡献被改写

2026-10-24 · L5

证券行业标签更新,不应悄悄覆盖历史归因。先保存证券级旧类、新类和生效边界,再并列“当时分类”与“统一新分类重述”两套结果。本例只改变分类,组合和基准总回报不变,配置、选择、交互的分配却改变;这正是映射版本需要独立审计的原因。

六只证券的标识、价格与分类有效日是什么?

本篇构造六证券A至F,不是真实代码,人民币单币种、无杠杆、税费或分红。观察二〇二五年两个半年,一至六月与七至十二月;各半年起点组合与基准按给定权重再平衡,故第二期继续使用表内权重,不假装它们自然漂移后仍恰好相同。价格初值均一百,后续价格按明确的两期收益生成。

X、Y是自定义教学行业,不采用任何现实行业机构字典。A、B始终X,D、E、F始终Y,C在七月一日由X转Y。有效区间前闭后开:上半年包含六月三十日结束的收益,七月开始使用新标签;同一证券同一时点只有一个类别,不能两边各计一次。

证券原分类新分类生效边界组合权重基准权重期初价6月末价12月末价
AXX全期不变30.000000%20.000000%100.00110.00107.80
BXX全期不变20.000000%20.000000%100.00100.00106.00
CXY2025-07-0110.000000%20.000000%100.0095.00102.60
DYY全期不变15.000000%10.000000%100.00104.00104.00
EYY全期不变15.000000%15.000000%100.00102.0097.92
FYY全期不变10.000000%15.000000%100.0098.00100.94

组合权重三十、二十、十、十五、十五、十个百分点,合一百;基准二十、二十、二十、十、十五、十五个百分点,同样合一百。每一行同时保留稳定证券标识、映射版本与有效日,避免同名异券或一券改名制造假跨类。缺标签不等于该证券收益零,也不能直接从归因样本删掉。

当时分类与统一重述,是哪两种不同提问?

当时分类用上半年旧字典、下半年新字典,回答各期当时政策下如何分组。统一新分类重述把C在上半年也放Y,回答若整段都按新字典,历史分项会怎样。这是两套有版本标签的报告,后者不是当时真实可得的分类,不能回填旧报告后宣称从来如此。

本例C的价格与证券收益完全不变,只有分组归属变化,所以改变的是归因桶,不是经济损益。真实跨类也可能同时伴随业务重组,但不能单凭字典更新的日期认定收益原因。分类变更事实和经济解释需要不同证据,这张交叉表只证明何时按哪把尺归类。

行业组内回报与三项贡献如何保持口径?

组权重是所属证券权重之和,组内回报用证券权重乘收益求和后,再除本组权重。这里的组内回报是条件收益,不能把未归一的组合贡献当回报再次乘组权重,否则多乘一次。组合和基准分别按自己的组内比例计算,不能共用一方的分母。

采用BHB教学分解:配置为组合组权重减基准组权重,再乘基准组回报;选择为基准组权重乘组合与基准组回报差;交互为权重差乘回报差。各组相加闭合到组合总回报减基准。本例所有组两边权重都正;空组或无映射时不自行补零收益,需要另定政策。

半年段分类政策行业组合组权重基准组权重组内组合回报组内基准回报配置百分点选择百分点交互百分点
1当时分类X60.000000%60.000000%4.166667%1.666667%0.0000001.5000000.000000
1当时分类Y40.000000%40.000000%1.750000%1.000000%0.0000000.3000000.000000
1统一新分类重述X50.000000%40.000000%6.000000%5.000000%0.5000000.4000000.100000
1统一新分类重述Y50.000000%60.000000%0.400000%-1.000000%0.1000000.840000-0.140000
2当时分类X50.000000%40.000000%1.200000%2.000000%0.200000-0.320000-0.080000
2当时分类Y50.000000%60.000000%1.000000%2.416667%-0.241667-0.8500000.141667
2统一新分类重述X50.000000%40.000000%1.200000%2.000000%0.200000-0.320000-0.080000
2统一新分类重述Y50.000000%60.000000%1.000000%2.416667%-0.241667-0.8500000.141667

表的用途是暴露C搬家影响了哪些组权重与组内均值,而不是再次教授母题里已有的四象限。只有证券级明细、中间组账与总体三层同时留存,复核者才能判断差额来自价格、权重还是字典。

为什么上半年配置从零变成零点六个百分点?

半年段政策总组合总基准配置百分点选择百分点交互百分点总差百分点残差百分点
1当时分类3.200000%1.400000%0.0000001.8000000.0000001.8000000.000000
1统一新分类重述3.200000%1.400000%0.6000001.240000-0.0400001.8000000.000000
2当时分类1.100000%2.250000%-0.041667-1.1700000.061667-1.1500000.000000
2统一新分类重述1.100000%2.250000%-0.041667-1.1700000.061667-1.1500000.000000

上半年旧分类下X、Y两组的组合与基准总权重分别都相等,配置为零,选择一点八个百分点,交互为零。统一新分类后,上半年配置变零点六、选择一点二四、交互负零点零四,合计仍一点八。上半年组合总回报百分之三点二、基准百分之一点四,没有被“行业更名”改写。

下半年两政策都已经使用新类,因此各项一致:组合百分之一点一,基准百分之二点二五,总差负一点一五个百分点。表中分项显示六位可能有末位相消,内部精度先核闭合,最后才格式化,不把显示舍入残差写成策略交易利润。

总收益不变,是否证明任意映射都正确?

不证明。把C错放另一个类,总收益仍然可能守恒,因为证券没丢,分类加总依旧是一项全分区。总额守恒只排查遗漏或重复,无法证明类别在事实和政策上正确。还需核稳定标识、字典版本、有效起止与变更依据;本例自定义X/Y明确用于实验,没有真实行业合法性结论。

若删除一个缺映射的证券,再把其余权重重新归一,表格可能重新合一百,却改掉了原始组合。若把同一证券同时分X和Y,组权重或收益会重复。遇一对多拆分,需要证券级拆分比例与生效事实,不能仅凭名称相似自动匹配。作者模型对缺标签明确拒算,而非让收益为零通过。

历史标签更新后,应怎样保存可复核版本?

至少保存原始证券收益与权重快照、旧字典、新字典、交叉映射、生效时间和两版输出。更正时追加重述原因,不覆盖旧标签后只保留最终曲线。某个映射修订,应重算受影响组均值、全部分项和叙述,不只修改行业名而保留旧数字。

行业输入核好后,跨期贡献再用多期归因链接;若静态持仓无法解释实际组合回报,要查持仓与交易残差桥,不能让分类重述吞掉缺失交易。背景见业绩归因母题。夏普工具只提供现有基础统计,不管理历史行业字典或自动恢复旧映射。本例总额与分项都可复算,但不证明管理者具有行业配置能力。

分类生效日与文件下载日不一致,该记哪一个?

两者都记。下载日说明何时取得这份字典,生效日说明它适用于哪个收益区间。七月才下载一份注明一月生效的修订字典,也不能无说明覆盖一月当时报告;应保留当时可得版和事后修订版,区分数据更正与主动重述。仅在文件名写年份,无法表达这种差别。

若一条映射的旧有效结束与新有效开始之间有空档,程序应标记该时点无确定标签;若区间重叠,则同一证券可能被双重归属,先拒绝而不是随机保留最后一行。总权重合一与各组数值闭合都不能替代区间唯一性。证券C是本例唯一跨类对象,读者可定位到底哪些报告段受影响,不用重算无关时期来掩盖边界问题。

来源核对日:2026-10-24。Yang Lu、David Kane,Performance Attribution for Equity Portfolios,The R Journal,2013-09-23,实读第3节类别与Brinson定义;论文范围为多头单币种权益。历史字典、有效日与证券表是本站构造,不是该论文数据或pa包实测。

道积君编辑组|AI辅助起草,构造算例经程序复算。价格、账户与日期均为教学假设;文中计算不代表真实产品业绩、未来收益或GIPS合规。

复算资料

本篇编号DJ3-069。下载Python复算脚本(文本)与构造输入输出JSON,按编号核对本篇。脚本改存为.py后可用Python标准库运行,数据不是实际用户记录。

这个页面有问题?

提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。