performance-attribution

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Performance Attribution

绩效归因

Purpose

目的

Decompose portfolio returns into explainable components to understand where value was added or lost. This skill covers equity attribution (Brinson-Fachler), factor-based attribution, fixed-income attribution, currency effects, and multi-period linking methods.
将投资组合回报分解为可解释的组成部分,以了解收益或亏损的来源。本技能涵盖股票归因(Brinson-Fachler模型)、因子归因、固定收益归因、货币效应以及多期链接方法。

Layer

层级

5 — Policy & Planning
5 — 政策与规划

Direction

方向

retrospective
回顾性

When to Use

使用场景

  • Explaining where portfolio returns came from relative to a benchmark
  • Evaluating whether a manager added value through allocation, selection, or both
  • Decomposing returns into systematic factor exposures and residual alpha
  • Attributing fixed-income returns to yield, curve, spread, and credit components
  • Handling currency effects in international portfolio attribution
  • Linking single-period attribution results across multiple periods
  • Conducting holdings-based vs returns-based attribution analysis
  • 解释投资组合回报相对于基准的来源
  • 评估基金经理是否通过配置、选股或两者结合创造了超额收益
  • 将回报分解为系统性因子暴露和剩余Alpha
  • 将固定收益回报归因于收益率、收益率曲线、利差和信用成分
  • 处理国际投资组合归因中的货币效应
  • 将单期归因结果跨多个周期链接
  • 进行基于持仓与基于回报的归因分析

Core Concepts

核心概念

Brinson-Fachler Attribution (Single Period)

Brinson-Fachler单期归因

The classic equity attribution model decomposes active return (portfolio return minus benchmark return) into three effects:
  • Allocation effect: Value added by over/underweighting sectors relative to the benchmark
    • A_i = (w_p,i - w_b,i) × (R_b,i - R_b)
    • Rewards overweighting sectors that outperform the total benchmark
  • Selection effect: Value added by picking better securities within each sector
    • S_i = w_b,i × (R_p,i - R_b,i)
    • Rewards outperforming the sector benchmark regardless of weight
  • Interaction effect: Combined effect of both overweighting and outperforming (or vice versa)
    • I_i = (w_p,i - w_b,i) × (R_p,i - R_b,i)
    • Captures the joint benefit of overweighting a sector AND selecting better securities in it
  • Total active return: R_p - R_b = Σ A_i + Σ S_i + Σ I_i
Where: w_p,i = portfolio weight in sector i, w_b,i = benchmark weight in sector i, R_p,i = portfolio return in sector i, R_b,i = benchmark return in sector i, R_b = total benchmark return.
经典的股票归因模型将主动回报(投资组合回报减去基准回报)分解为三个效应:
  • 配置效应: 通过相对于基准超配/低配行业所创造的收益
    • A_i = (w_p,i - w_b,i) × (R_b,i - R_b)
    • 奖励超配跑赢整体基准的行业
  • 选股效应: 在各行业内挑选更优证券所创造的收益
    • S_i = w_b,i × (R_p,i - R_b,i)
    • 无论权重如何,只要行业内选股跑赢行业基准即可获得收益
  • 交互效应: 超配/低配与跑赢/跑输的联合效应
    • I_i = (w_p,i - w_b,i) × (R_p,i - R_b,i)
    • 捕捉超配某行业且该行业内选股跑赢基准的联合收益
  • 总主动回报: R_p - R_b = Σ A_i + Σ S_i + Σ I_i
其中:w_p,i = 投资组合在行业i的权重,w_b,i = 基准在行业i的权重,R_p,i = 投资组合在行业i的回报,R_b,i = 基准在行业i的回报,R_b = 基准总回报。

Multi-Period Attribution

多期归因

Single-period attribution does not compound across periods. Geometric linking methods are required:
  • Carino method: Applies a smoothing factor to make arithmetic effects compound to the correct geometric total
  • Menchero method: Uses a logarithmic approach for smoother decomposition
  • GRAP (Geometric Return Attribution Program): Converts arithmetic effects to geometric equivalents
  • Key principle: the sum of linked attribution effects must equal the total geometric active return over the full period
单期归因无法跨周期复利计算,需要使用几何链接方法:
  • Carino方法: 应用平滑因子使算术效应复合为正确的几何总回报
  • Menchero方法: 使用对数方法实现更平滑的分解
  • GRAP(几何回报归因程序): 将算术效应转换为几何等效值
  • 核心原则:链接后的归因效应总和必须等于整个周期内的总几何主动回报

Factor-Based Attribution

因子归因

Decomposes returns into exposures to systematic risk factors:
  • Model: R_p = Σ β_k × F_k + α
    • β_k = portfolio's exposure (loading) to factor k
    • F_k = return of factor k during the period
    • α = residual return unexplained by factors (true alpha)
  • Common factors: Market (MKT), Size (SMB), Value (HML), Momentum (UMD), Quality (QMJ), Low Volatility (BAB)
  • Factor contribution: β_k × F_k for each factor
  • Active factor contribution: (β_p,k - β_b,k) × F_k
  • The model chosen (Fama-French 3, Carhart 4, Fama-French 5, Barra, Axioma) affects results
将回报分解为对系统性风险因子的暴露:
  • 模型: R_p = Σ β_k × F_k + α
    • β_k = 投资组合对因子k的暴露度(载荷)
    • F_k = 周期内因子k的回报
    • α = 无法被因子解释的剩余回报(真实Alpha)
  • 常见因子: Market (MKT)、Size (SMB)、Value (HML)、Momentum (UMD)、Quality (QMJ)、Low Volatility (BAB)
  • 因子贡献: 每个因子的β_k × F_k
  • 主动因子贡献: (β_p,k - β_b,k) × F_k
  • 所选模型(Fama-French 3因子、Carhart 4因子、Fama-French 5因子、Barra、Axioma)会影响结果

Fixed-Income Attribution

固定收益归因

Decomposes bond portfolio returns into component sources:
  • Yield return (income): Coupon income accrued during the period (yield × time)
  • Roll return: Price appreciation as bonds "roll down" the yield curve toward maturity
  • Curve change return: Impact of parallel and non-parallel yield curve shifts
    • Duration effect: -D × Δy (parallel shift)
    • Curve reshaping: key rate duration contributions
  • Spread change return: Impact of credit spread changes: -spread_duration × Δspread
  • Credit/default return: Losses from defaults or credit events
  • Residual: Unexplained return (convexity effects, model error)
将债券投资组合回报分解为各组成部分:
  • 收益率回报(利息): 周期内累积的票息收入(收益率×时间)
  • 滚动回报: 债券随时间向到期日“滚动下移”收益率曲线带来的价格上涨
  • 收益率曲线变动回报: 收益率曲线平行和非平行移动的影响
    • 久期效应:-D × Δy(平行移动)
    • 曲线重塑:关键利率久期贡献
  • 利差变动回报: 信用利差变动的影响:-利差久期 × Δ利差
  • 信用/违约回报: 违约或信用事件带来的损失
  • 剩余项: 无法解释的回报(凸性效应、模型误差)

Currency Attribution

货币归因

For international portfolios, returns decompose into:
  • Local return: Return of the asset in its local currency
  • Currency return: Gain/loss from exchange rate movements
  • Cross-product: Interaction between local return and currency return
  • Total return (base currency): R_base ≈ R_local + R_currency + R_local × R_currency
  • Hedged return: Local return + hedge cost (forward premium/discount)
  • Attribution of active currency decisions: actual currency exposure vs benchmark currency exposure
对于国际投资组合,回报可分解为:
  • 本地回报: 资产以本地货币计价的回报
  • 货币回报: 汇率波动带来的收益/损失
  • 交叉项: 本地回报与货币回报的交互效应
  • 总回报(基准货币): R_base ≈ R_local + R_currency + R_local × R_currency
  • 对冲后回报: 本地回报 + 对冲成本(远期升水/贴水)
  • 主动货币决策的归因:实际货币暴露与基准货币暴露的差异

Holdings-Based vs Returns-Based Attribution

基于持仓与基于回报的归因

  • Holdings-based: Uses actual portfolio positions; more accurate but requires detailed holdings data at each evaluation point
  • Returns-based (style analysis): Regresses portfolio returns against a set of style indices (e.g., Sharpe style analysis); less precise but requires only return series
  • Transaction-based: Most accurate; accounts for intra-period trading by using actual transaction records
  • 基于持仓: 使用实际投资组合头寸;更准确,但需要各评估时点的详细持仓数据
  • 基于回报(风格分析): 将投资组合回报与一组风格指数进行回归(如Sharpe风格分析);精度较低,但仅需回报序列
  • 基于交易: 最准确;通过使用实际交易记录考虑期内交易的影响

Key Formulas

关键公式

FormulaExpressionUse Case
Allocation effect (sector i)A_i = (w_p,i - w_b,i) × (R_b,i - R_b)Sector weighting decisions
Selection effect (sector i)S_i = w_b,i × (R_p,i - R_b,i)Security selection within sector
Interaction effect (sector i)I_i = (w_p,i - w_b,i) × (R_p,i - R_b,i)Joint allocation-selection effect
Total active returnR_p - R_b = Σ(A_i + S_i + I_i)Sum of all effects equals active return
Factor return contributionC_k = β_k × F_kReturn from factor k exposure
Duration effectΔP/P ≈ -D × ΔyBond price change from yield shift
Currency returnR_fx = (S_end - S_start) / S_startExchange rate impact
公式表达式使用场景
行业i的配置效应A_i = (w_p,i - w_b,i) × (R_b,i - R_b)行业权重决策
行业i的选股效应S_i = w_b,i × (R_p,i - R_b,i)行业内证券选择
行业i的交互效应I_i = (w_p,i - w_b,i) × (R_p,i - R_b,i)配置-选股联合效应
总主动回报R_p - R_b = Σ(A_i + S_i + I_i)所有效应之和等于主动回报
因子回报贡献C_k = β_k × F_k因子k暴露带来的回报
久期效应ΔP/P ≈ -D × Δy收益率变动带来的债券价格变化
货币回报R_fx = (S_end - S_start) / S_start汇率影响

Worked Examples

示例演算

Example 1: Brinson-Fachler equity attribution

示例1:Brinson-Fachler股票归因

Given: Two-sector portfolio (Tech and Healthcare). Portfolio: 35% Tech (returned 15%), 65% Healthcare (returned 8%). Benchmark: 25% Tech (returned 12%), 75% Healthcare (returned 6%). Total benchmark return: 0.25×12% + 0.75×6% = 7.5%. Calculate: Allocation, selection, and interaction effects for each sector, and total active return. Solution:
  1. Total portfolio return: 0.35×15% + 0.65×8% = 5.25% + 5.20% = 10.45%.
  2. Total active return: 10.45% - 7.50% = 2.95%.
  3. Tech allocation effect: (0.35 - 0.25) × (12% - 7.5%) = 0.10 × 4.5% = +0.45% (overweight a sector that beat the benchmark).
  4. Tech selection effect: 0.25 × (15% - 12%) = 0.25 × 3% = +0.75% (stock picks in Tech beat Tech benchmark).
  5. Tech interaction effect: (0.35 - 0.25) × (15% - 12%) = 0.10 × 3% = +0.30% (overweight AND outperformed).
  6. Healthcare allocation effect: (0.65 - 0.75) × (6% - 7.5%) = -0.10 × -1.5% = +0.15% (underweight a sector that lagged the benchmark).
  7. Healthcare selection effect: 0.75 × (8% - 6%) = 0.75 × 2% = +1.50% (stock picks in Healthcare beat Healthcare benchmark).
  8. Healthcare interaction effect: (0.65 - 0.75) × (8% - 6%) = -0.10 × 2% = -0.20% (underweight but outperformed — interaction is negative).
  9. Totals: Allocation = 0.45 + 0.15 = 0.60%. Selection = 0.75 + 1.50 = 2.25%. Interaction = 0.30 + (-0.20) = 0.10%. Sum = 0.60 + 2.25 + 0.10 = 2.95% ✓.
给定条件: 双行业投资组合(科技和医疗健康)。投资组合:35%科技(回报15%),65%医疗健康(回报8%)。基准:25%科技(回报12%),75%医疗健康(回报6%)。基准总回报:0.25×12% + 0.75×6% = 7.5%。 计算: 各行业的配置、选股和交互效应,以及总主动回报。 解答:
  1. 投资组合总回报: 0.35×15% + 0.65×8% = 5.25% + 5.20% = 10.45%。
  2. 总主动回报: 10.45% - 7.50% = 2.95%
  3. 科技行业配置效应: (0.35 - 0.25) × (12% - 7.5%) = 0.10 × 4.5% = +0.45%(超配跑赢基准的行业)。
  4. 科技行业选股效应: 0.25 × (15% - 12%) = 0.25 × 3% = +0.75%(科技行业内选股跑赢科技基准)。
  5. 科技行业交互效应: (0.35 - 0.25) × (15% - 12%) = 0.10 × 3% = +0.30%(超配且跑赢基准)。
  6. 医疗健康行业配置效应: (0.65 - 0.75) × (6% - 7.5%) = -0.10 × -1.5% = +0.15%(低配跑输基准的行业)。
  7. 医疗健康行业选股效应: 0.75 × (8% - 6%) = 0.75 × 2% = +1.50%(医疗健康行业内选股跑赢医疗健康基准)。
  8. 医疗健康行业交互效应: (0.65 - 0.75) × (8% - 6%) = -0.10 × 2% = -0.20%(低配但跑赢基准——交互效应为负)。
  9. 总计: 配置效应=0.45+0.15=0.60%。选股效应=0.75+1.50=2.25%。交互效应=0.30+(-0.20)=0.10%。总和=0.60+2.25+0.10=2.95% ✓。

Example 2: Factor-based attribution

示例2:因子归因

Given: A fund has factor loadings: β_mkt = 1.1, β_smb = 0.3, β_hml = -0.2. During the period: MKT = 5%, SMB = 2%, HML = -1%. Risk-free rate = 1%. Fund excess return = 7%. Calculate: Factor contributions and alpha. Solution:
  1. Market contribution: 1.1 × 5% = 5.50%.
  2. Size (SMB) contribution: 0.3 × 2% = 0.60%.
  3. Value (HML) contribution: -0.2 × (-1%) = +0.20%.
  4. Total factor-explained return: 5.50 + 0.60 + 0.20 = 6.30%.
  5. Alpha (residual): 7.00% - 6.30% = +0.70%.
  6. Interpretation: The fund's excess return of 7% is mostly explained by above-market beta (5.5%) and a small-cap tilt (0.6%). The negative value loading helped (+0.2%) as value underperformed. After accounting for all factors, the manager generated 0.70% of true alpha.
给定条件: 某基金的因子载荷:β_mkt=1.1,β_smb=0.3,β_hml=-0.2。周期内:MKT=5%,SMB=2%,HML=-1%。无风险利率=1%。基金超额回报=7%。 计算: 因子贡献和Alpha。 解答:
  1. 市场因子贡献: 1.1×5%=5.50%
  2. **规模因子(SMB)贡献:**0.3×2%=0.60%
  3. 价值因子(HML)贡献:-0.2×(-1%)=+0.20%
  4. **因子解释的总回报:**5.50+0.60+0.20=6.30%
  5. Alpha(剩余项):7.00%-6.30%=+0.70%
  6. 解读: 基金7%的超额回报主要由高于市场的Beta(5.5%)和小盘股倾斜(0.6%)贡献。负的价值因子暴露有所帮助(+0.2%),因为价值股表现不佳。在考虑所有因子后,基金经理创造了0.70%的真实Alpha。

Common Pitfalls

常见误区

  • Interaction effect is hard to interpret — some attribution models fold it into allocation or selection, which changes reported results significantly
  • Multi-period attribution requires geometric linking — simple arithmetic attribution does not compound correctly and residuals grow over time
  • Returns-based attribution (style analysis) may not reflect actual holdings, especially for managers who trade actively or change style
  • Factor attribution results depend heavily on the chosen factor model — different models yield different alpha estimates
  • Currency attribution is often overlooked in international portfolios, hiding or inflating apparent skill
  • Survivorship bias in manager evaluation: only surviving funds are analyzed, overstating average skill
  • Confusing gross-of-fee and net-of-fee returns when comparing to benchmarks
  • Using inappropriate benchmarks that do not match the portfolio's investment universe
  • 交互效应难以解释——部分归因模型将其纳入配置或选股效应,这会显著改变报告结果
  • 多期归因需要几何链接——简单的算术归因无法正确复利计算,剩余项会随时间增长
  • 基于回报的归因(风格分析)可能无法反映实际持仓,尤其是对于交易活跃或风格转换的基金经理
  • 因子归因结果高度依赖所选因子模型——不同模型会产生不同的Alpha估计值
  • 国际投资组合中常忽略货币归因,这会隐藏或夸大表观投资能力
  • 基金经理评估中的幸存者偏差:仅分析存续基金,高估了平均投资能力
  • 与基准比较时混淆费前和费后回报
  • 使用与投资组合投资范围不匹配的不恰当基准

Cross-References

交叉引用

  • investment-policy: Benchmark selection in IPS directly feeds performance attribution analysis
  • tax-efficiency: After-tax attribution requires adjusting returns for tax impact
  • savings-goals: Attribution helps assess whether investment strategy is on track to meet goals
  • liquidity-management: Cash drag from liquidity reserves affects portfolio-level attribution
  • investment-policy: 投资政策声明(IPS)中的基准选择直接为绩效归因分析提供输入
  • tax-efficiency: 税后归因需要针对税收影响调整回报
  • savings-goals: 归因有助于评估投资策略是否符合目标进度
  • liquidity-management: 流动性储备带来的现金拖累会影响投资组合层面的归因

Reference Implementation

参考实现

See
scripts/performance-attribution.py
for computational helpers.
详见
scripts/performance-attribution.py
获取计算工具。