BRISMA - Implied Risk Premia Analysis

Core Problem

Given observed portfolio weights \(\bm{w}\) and estimated covariance \(\bm{Q}\), what expected returns \(\bm{\mu}\) would rationalize the investor's allocation as optimal?

Project Scope

  1. Risk Model Complete: Covariance estimation (Q_emp, Q_shrink, Q_garch)
  2. Inverse Optimization In Scope: Extract implied returns under multiple utility specifications
  3. Factor Decomposition In Scope: Map asset-level premia to factor-level premia
  4. Portfolio Optimization Pending: Forward optimization with OSQP
Done

Phase 1

Risk Model

Current

Phase 2

Inverse Optimization

Next

Phase 3

Portfolio Optimizer

Future

Phase 4

Production

Project Status

ComponentStatusDescription
Risk Model (Covariance)CompleteQ_emp, Q_shrink, Q_garch matrices
Mean-Variance InverseIn ScopeClosed-form solution with constraints
Morningstar MRAR InverseIn ScopeCRRA-based utility inversion
Omega-Ratio InverseIn ScopeLPM-based utility inversion
Factor Premia ExtractionIn ScopeFama-MacBeth methodology
Portfolio OptimizerPendingOSQP integration

1. Inverse Optimization Framework

Definition 1.1 (Inverse Optimization Problem)

Given observed portfolio weights \(\bm{w} \in \R^n\), covariance matrix \(\bm{Q} \in \R^{n \times n}\), and a utility function \(U: \R^n \to \R\), the inverse optimization problem seeks implied expected returns \(\bm{\mu}^* \in \R^n\) such that:

\[\bm{w} = \argmax_{\bm{w}' \in \mathcal{W}} U(\bm{w}'; \bm{\mu}^*, \bm{Q})\]

where \(\mathcal{W}\) denotes the feasible weight set (e.g., \(\mathcal{W} = \{\bm{w}: \bm{1}'\bm{w} = 1, \bm{w} \geq 0\}\)).

The inverse optimization approach allows us to infer what expected returns an investor implicitly assumes given their observed allocation. This is particularly valuable when:

  • Analyzing client portfolios to understand their implicit views
  • Establishing equilibrium expected returns (market-cap weighted portfolios)
  • Constructing prior distributions for Black-Litterman models
Key Insight

Different utility functions yield different implied returns for the same observed weights. A more risk-averse specification (higher \(\lambda\)) will impute higher expected returns to justify a given risky allocation.

2. Mean-Variance Inverse Optimization

Definition 2.1 (Mean-Variance Utility)

The mean-variance utility function is defined as:

\[U_{MV}(\bm{w}) = \bm{w}'\bm{\mu} - \frac{\lambda}{2}\bm{w}'\bm{Q}\bm{w}\]

where \(\lambda > 0\) is the risk aversion parameter.

2.1 Unconstrained Case

Theorem 2.1 (Unconstrained Inverse Solution)

For the unconstrained mean-variance problem, the first-order condition yields:

\[\frac{\partial U}{\partial \bm{w}} = \bm{\mu} - \lambda\bm{Q}\bm{w} = \bm{0}\]

Solving for \(\bm{\mu}\), the implied expected returns are:

\[\boxed{\bm{\mu}^*_{MV} = \lambda \bm{Q} \bm{w}}\]
Proof of Theorem 2.1
Proof

The unconstrained optimization problem is:

\[\max_{\bm{w}} \; \bm{w}'\bm{\mu} - \frac{\lambda}{2}\bm{w}'\bm{Q}\bm{w}\]

Taking the gradient with respect to \(\bm{w}\):

\[\nabla_{\bm{w}} U = \bm{\mu} - \lambda\bm{Q}\bm{w}\]

Setting \(\nabla_{\bm{w}} U = \bm{0}\) and solving for \(\bm{\mu}\):

\[\bm{\mu} = \lambda\bm{Q}\bm{w}\]

The second-order condition \(\nabla^2_{\bm{w}} U = -\lambda\bm{Q} \prec 0\) confirms this is a maximum when \(\bm{Q}\) is positive definite.

QED

2.2 Constrained Case (Budget Constraint)

Theorem 2.2 (Constrained Inverse Solution)

With the budget constraint \(\bm{1}'\bm{w} = 1\), the Lagrangian is:

\[\mathcal{L} = \bm{w}'\bm{\mu} - \frac{\lambda}{2}\bm{w}'\bm{Q}\bm{w} - \gamma(\bm{1}'\bm{w} - 1)\]

The first-order conditions are:

\[\bm{\mu} - \lambda\bm{Q}\bm{w} - \gamma\bm{1} = \bm{0}\]

Solving for \(\bm{\mu}\):

\[\boxed{\bm{\mu}^* = \lambda\bm{Q}\bm{w} + \gamma^*\bm{1}}\]

where \(\gamma^*\) is the Lagrange multiplier determined by auxiliary conditions.

Derivation and Interpretation
Derivation

KKT Conditions:

  1. Stationarity: \(\bm{\mu} = \lambda\bm{Q}\bm{w} + \gamma\bm{1}\)
  2. Primal feasibility: \(\bm{1}'\bm{w} = 1\)

The Lagrange multiplier \(\gamma\) represents the marginal utility of relaxing the budget constraint. In the inverse problem, \(\gamma^*\) is a degree of freedom that can be set based on:

  • Zero-beta interpretation: Set \(\gamma^* = r_f\) (risk-free rate)
  • Normalization: Set \(\gamma^*\) such that \(\bar{\mu} = \frac{1}{n}\bm{1}'\bm{\mu}^*\) equals some target mean

QED

2.3 Risk Aversion Parameter Calibration

Proposition 2.1 (Implied Risk Aversion)

Given external estimates of expected returns \(\tilde{\bm{\mu}}\), the implied risk aversion is:

\[\lambda^* = \frac{\bm{w}'\tilde{\bm{\mu}}}{\bm{w}'\bm{Q}\bm{w}} = \frac{\text{Expected portfolio return}}{\text{Portfolio variance}}\]

Typical values of \(\lambda\) range from 1 to 10. For market portfolios, \(\lambda \approx 2.5\) is commonly used (Black & Litterman, 1992).

2.4 Connection to Black-Litterman Equilibrium

In the Black-Litterman framework, the equilibrium expected returns are derived as:

\[\bm{\pi} = \lambda\bm{Q}\bm{w}_{mkt}\]

where \(\bm{w}_{mkt}\) represents market capitalization weights. This is precisely the Mean-Variance inverse solution, providing a theoretically grounded prior for expected returns.

3. Morningstar MRAR Utility

Definition 3.1 (Morningstar Risk-Adjusted Return)

The Morningstar Risk-Adjusted Return (MRAR) is defined as:

\[\text{MRAR}_\gamma = \left[\frac{1}{T}\sum_{t=1}^{T}\left(\frac{1 + r_{p,t}}{1 + r_{f,t}}\right)^{-\gamma}\right]^{-12/\gamma} - 1\]

where \(r_{p,t}\) is the portfolio monthly return, \(r_{f,t}\) is the risk-free rate, and \(\gamma > 0\) controls risk sensitivity.

3.1 Connection to CRRA Utility

Theorem 3.1 (CRRA Equivalence)

The MRAR is equivalent to the certainty equivalent return under Constant Relative Risk Aversion (CRRA) utility:

\[u(W) = \begin{cases} \frac{W^{1-\gamma}}{1-\gamma} & \gamma \neq 1 \\ \ln(W) & \gamma = 1 \end{cases}\]

The certainty equivalent wealth \(W_{CE}\) satisfies:

\[u(W_{CE}) = \E[u(W_T)]\]

which yields the MRAR formula when expressed as an annualized return.

Derivation from Expected Utility
Derivation

Starting with terminal wealth \(W_T = W_0 \prod_{t=1}^{T}(1 + r_{p,t})\), the expected utility is:

\[\E[u(W_T)] = \E\left[\frac{W_T^{1-\gamma}}{1-\gamma}\right] = \frac{W_0^{1-\gamma}}{1-\gamma}\E\left[\prod_{t=1}^{T}(1 + r_{p,t})^{1-\gamma}\right]\]

Assuming returns are i.i.d.:

\[\E[u(W_T)] = \frac{W_0^{1-\gamma}}{1-\gamma}\left(\E[(1 + r_p)^{1-\gamma}]\right)^T\]

The certainty equivalent satisfies \(u(W_{CE}) = \E[u(W_T)]\), yielding:

\[W_{CE} = W_0 \cdot \left(\E[(1 + r_p)^{1-\gamma}]\right)^{T/(1-\gamma)}\]

Converting to annualized excess return over risk-free gives the MRAR formula.

QED

3.2 Properties

  • Risk sensitivity: Higher \(\gamma\) penalizes volatility more heavily
  • Asymmetry: Downside returns are penalized more than upside (unlike variance)
  • Standard values: Morningstar uses \(\gamma = 2\) for equity funds
  • Limit cases: As \(\gamma \to 0\), MRAR approaches arithmetic mean; as \(\gamma \to \infty\), it approaches worst return

3.3 Inverse Optimization

Proposition 3.1 (MRAR Inverse Problem)

The MRAR utility does not admit a closed-form inverse solution. The implied returns must be found numerically by solving:

\[\bm{\mu}^* = \argmin_{\bm{\mu}} \|\bm{w} - \bm{w}^*(\bm{\mu})\|^2\]

where \(\bm{w}^*(\bm{\mu}) = \argmax_{\bm{w}'} \text{MRAR}(\bm{w}'; \bm{\mu}, \bm{\Sigma})\).

The numerical approach requires:

  1. Simulate return scenarios \(\{r_t\}_{t=1}^{T}\) from \(\mathcal{N}(\bm{\mu}, \bm{\Sigma})\)
  2. For given \(\bm{\mu}\), solve forward problem to get \(\bm{w}^*(\bm{\mu})\)
  3. Iterate using gradient-based optimization to match observed \(\bm{w}\)

4. Omega Ratio Utility

Definition 4.1 (Omega Ratio)

The Omega ratio for threshold \(L\) is defined as:

\[\Omega(L) = \frac{\int_L^{\infty}(1 - F(r))\,dr}{\int_{-\infty}^{L}F(r)\,dr} = \frac{\E[\max(R - L, 0)]}{\E[\max(L - R, 0)]}\]

where \(F(r)\) is the CDF of portfolio returns and \(R\) denotes the random return.

4.1 Connection to Lower Partial Moments

Theorem 4.1 (Omega-LPM Relationship)

The Omega ratio can be expressed in terms of the first lower partial moment:

\[\boxed{\Omega(L) = \frac{\E[R] - L}{\text{LPM}_1(L)} + 1}\]

where \(\text{LPM}_1(L) = \E[\max(L - R, 0)]\) is the expected shortfall below threshold \(L\).

Proof of Theorem 4.1
Proof

Starting from the definition:

\[\Omega(L) = \frac{\E[\max(R - L, 0)]}{\E[\max(L - R, 0)]}\]

Note that \(\max(R - L, 0) - \max(L - R, 0) = R - L\), so:

\[\E[\max(R - L, 0)] = \E[R] - L + \E[\max(L - R, 0)] = \E[R] - L + \text{LPM}_1(L)\]

Substituting:

\[\Omega(L) = \frac{\E[R] - L + \text{LPM}_1(L)}{\text{LPM}_1(L)} = \frac{\E[R] - L}{\text{LPM}_1(L)} + 1\]

QED

4.2 Threshold Selection

Common choices for the threshold \(L\):

  • Risk-free rate: \(L = r_f\) (most common)
  • Zero: \(L = 0\) for absolute return analysis
  • Minimum acceptable return (MAR): \(L = \text{MAR}\) for target-based evaluation
  • Benchmark return: \(L = r_{benchmark}\) for relative performance

4.3 Relationship to Other Risk Measures

Proposition 4.1 (Omega and Sortino)

The Omega ratio is related to the Sortino ratio through:

\[\text{Sortino}(L) = \frac{\E[R] - L}{\sqrt{\text{LPM}_2(L)}}\]

Both measures focus on downside risk but weight deviations differently: Omega uses expected shortfall (linear), Sortino uses downside deviation (quadratic).

4.4 Inverse Optimization

Like MRAR, the Omega ratio requires numerical inversion. The computational approach involves:

  1. Estimate empirical CDF \(\hat{F}(r)\) from historical or simulated returns
  2. For parametric approach, assume \(R \sim \mathcal{N}(\bm{w}'\bm{\mu}, \bm{w}'\bm{\Sigma}\bm{w})\)
  3. Solve bilevel optimization: outer loop over \(\bm{\mu}\), inner loop maximizes \(\Omega\)

5. Numerical Methods for Inverse Optimization

5.1 General Framework

For non-closed-form utilities, we solve the bilevel optimization:

\[\min_{\bm{\mu}} \; \|\bm{w}_{obs} - \bm{w}^*(\bm{\mu})\|^2 \quad \text{s.t.} \quad \bm{w}^*(\bm{\mu}) = \argmax_{\bm{w}'} U(\bm{w}'; \bm{\mu}, \bm{Q})\]

5.2 Gradient-Based Approach

Algorithm 5.1 (Gradient Descent for Inverse Optimization)
Input: w_obs, Q, U(.), tolerance eps, max_iter
Initialize: mu^(0) = lambda * Q * w_obs (MV starting point)

For k = 0, 1, 2, ... until convergence:
    1. Solve forward problem: w^*(mu^(k)) = argmax U(w; mu^(k), Q)
    2. Compute residual: r^(k) = w_obs - w^*(mu^(k))
    3. Compute Jacobian: J^(k) = d w^*/d mu  (via implicit function theorem)
    4. Update: mu^(k+1) = mu^(k) + alpha * J^(k)' * r^(k)
    5. If ||r^(k)|| < eps: break

Output: mu^* = mu^(k)

5.3 Implicit Function Theorem

For smooth utility functions, the Jacobian \(\partial\bm{w}^*/\partial\bm{\mu}\) can be computed using the implicit function theorem applied to the first-order conditions:

\[\nabla_{\bm{w}} U(\bm{w}^*; \bm{\mu}) = \bm{0}\]

Differentiating with respect to \(\bm{\mu}\):

\[\nabla^2_{\bm{ww}} U \cdot \frac{\partial\bm{w}^*}{\partial\bm{\mu}} + \nabla^2_{\bm{w\mu}} U = \bm{0}\]

Solving:

\[\frac{\partial\bm{w}^*}{\partial\bm{\mu}} = -(\nabla^2_{\bm{ww}} U)^{-1} \nabla^2_{\bm{w\mu}} U\]

5.4 Handling Constraints

For constrained optimization with active inequality constraints, the KKT conditions must be differentiated, accounting for:

  • Active set changes: As \(\bm{\mu}\) varies, different constraints may become active
  • Complementary slackness: Non-smooth behavior at constraint boundaries
  • Regularization: Add small \(\ell_2\) penalty to ensure unique solutions

6. Factor Model Framework

Definition 6.1 (Linear Factor Model)

Asset returns follow the factor structure:

\[\bm{r} = \bm{\alpha} + \bm{B}\bm{f} + \bm{\epsilon}\]

where:

  • \(\bm{r} \in \R^n\): asset excess returns
  • \(\bm{\alpha} \in \R^n\): intercepts (pricing errors under APT)
  • \(\bm{B} \in \R^{n \times k}\): factor loadings (betas)
  • \(\bm{f} \in \R^k\): factor returns
  • \(\bm{\epsilon} \in \R^n\): idiosyncratic returns, \(\E[\bm{\epsilon}] = \bm{0}\), \(\text{Cov}(\bm{\epsilon}) = \bm{D}\) diagonal

6.1 Factor-Based Covariance

Theorem 6.1 (Covariance Decomposition)

Under the factor model, the covariance matrix decomposes as:

\[\boxed{\bm{Q} = \bm{B}\bm{Q}_f\bm{B}' + \bm{D}}\]

where \(\bm{Q}_f = \text{Cov}(\bm{f})\) is the \(k \times k\) factor covariance.

This decomposition reduces the number of parameters from \(\frac{n(n+1)}{2}\) to \(nk + \frac{k(k+1)}{2} + n\), providing more stable estimates when \(k \ll n\).

6.2 Expected Returns from Factor Premia

Proposition 6.1 (APT Expected Returns)

Under the Arbitrage Pricing Theory, expected returns are linear in factor exposures:

\[\bm{\mu} = r_f\bm{1} + \bm{B}\bm{\pi}_f\]

where \(\bm{\pi}_f = \E[\bm{f}] - r_f\bm{1}_k\) is the vector of factor risk premia.

Key benefit: New assets only require estimation of their factor betas \(\bm{B}_{new}\). Their expected returns are automatically:

\[\mu_{new} = r_f + \bm{B}_{new}'\bm{\pi}_f\]

7. Factor Risk Premia Extraction

7.1 From Asset Premia to Factor Premia

Given implied asset-level expected returns \(\bm{\mu}^*\) from inverse optimization, we extract factor premia via regression.

Theorem 7.1 (Factor Premia Extraction)

The factor risk premia can be estimated as:

\[\hat{\bm{\pi}}_f = (\bm{B}'\bm{B})^{-1}\bm{B}'(\bm{\mu}^* - r_f\bm{1})\]

This is the OLS solution to \(\bm{\mu}^* - r_f\bm{1} = \bm{B}\bm{\pi}_f + \bm{e}\).

7.2 Fama-MacBeth Two-Pass Regression

For time-series data, the Fama-MacBeth (1973) procedure provides consistent estimates:

Algorithm 7.1 (Fama-MacBeth Procedure)

Pass 1 (Time-Series): For each asset \(i\), estimate factor betas:

\[r_{i,t} = \alpha_i + \sum_{k=1}^{K}\beta_{i,k}f_{k,t} + \epsilon_{i,t} \quad \Rightarrow \quad \hat{\beta}_{i,k}\]

Pass 2 (Cross-Sectional): For each time \(t\), regress returns on betas:

\[r_{i,t} = \gamma_{0,t} + \sum_{k=1}^{K}\gamma_{k,t}\hat{\beta}_{i,k} + \eta_{i,t}\]

Factor Premia: Average cross-sectional coefficients:

\[\hat{\pi}_k = \frac{1}{T}\sum_{t=1}^{T}\gamma_{k,t}, \quad \text{SE}(\hat{\pi}_k) = \frac{\text{sd}(\gamma_{k,t})}{\sqrt{T}}\]

7.3 Errors-in-Variables Correction

The Fama-MacBeth procedure suffers from errors-in-variables bias since \(\hat{\beta}\) is estimated. The Shanken (1992) correction adjusts standard errors:

\[\text{SE}_{corrected} = \text{SE}_{FM} \times \sqrt{1 + \hat{\bm{\pi}}'_f\hat{\bm{Q}}_f^{-1}\hat{\bm{\pi}}_f}\]

8. Worked Example

8.0 Simple 2-Asset Example (Step-by-Step)

Toy Example: Equity + Bond

A minimal example to illustrate the inverse optimization calculation with concrete numbers.

Setup: Consider a portfolio with two assets:

  • Asset 1: Equity (annual volatility 20%)
  • Asset 2: Bond (annual volatility 5%)
  • Correlation: \(\rho_{12} = 0.2\)
  • Observed weights: \(w_1 = 0.4\) (equity), \(w_2 = 0.6\) (bond)
  • Risk aversion: \(\lambda = 2.5\)

Step 1: Construct the covariance matrix

\[\sigma_1 = 0.20, \quad \sigma_2 = 0.05, \quad \rho_{12} = 0.2\] \[\bm{Q} = \begin{pmatrix} \sigma_1^2 & \rho_{12}\sigma_1\sigma_2 \\ \rho_{12}\sigma_1\sigma_2 & \sigma_2^2 \end{pmatrix} = \begin{pmatrix} 0.0400 & 0.0020 \\ 0.0020 & 0.0025 \end{pmatrix}\]

Step 2: Apply inverse formula

Using \(\bm{\mu}^* = \lambda \bm{Q} \bm{w}\):

\[\bm{\mu}^* = 2.5 \times \begin{pmatrix} 0.0400 & 0.0020 \\ 0.0020 & 0.0025 \end{pmatrix} \times \begin{pmatrix} 0.4 \\ 0.6 \end{pmatrix}\]

Step 3: Matrix multiplication

\[\bm{Q}\bm{w} = \begin{pmatrix} 0.04 \times 0.4 + 0.002 \times 0.6 \\ 0.002 \times 0.4 + 0.0025 \times 0.6 \end{pmatrix} = \begin{pmatrix} 0.0160 + 0.0012 \\ 0.0008 + 0.0015 \end{pmatrix} = \begin{pmatrix} 0.0172 \\ 0.0023 \end{pmatrix}\]

Step 4: Scale by risk aversion

\[\bm{\mu}^* = 2.5 \times \begin{pmatrix} 0.0172 \\ 0.0023 \end{pmatrix} = \begin{pmatrix} 0.0430 \\ 0.0058 \end{pmatrix}\]
Result: The implied expected returns are:
  • Equity: \(\mu_1^* = 4.30\%\) annual
  • Bond: \(\mu_2^* = 0.58\%\) annual

Interpretation: To justify holding 40% equity and 60% bonds under mean-variance utility with \(\lambda = 2.5\), the investor implicitly expects equity to return 4.3% and bonds 0.58% annually. The equity premium (4.3% - 0.58% = 3.7%) compensates for its higher risk.

Verification: These implied returns can be verified by solving the forward problem. Given \(\bm{\mu}^* = (0.043, 0.0058)'\) and \(\bm{Q}\), the optimal weights from \(\bm{w}^* = \frac{1}{\lambda}\bm{Q}^{-1}\bm{\mu}^*\) should recover \(\bm{w} = (0.4, 0.6)'\).


8.1 BRISMA 4-Asset Portfolio

Consider a 4-asset portfolio from BRISMA:

AssetIDWeight \(w_i\)
Cash EURVJy3jN...25%
MSCI EMUBIngkC...30%
Euro GovMSOM2Z...35%
CTAgjJLI6...10%

8.2 Mean-Variance Implied Returns

Using the shrinkage covariance \(\bm{Q}_{shrink}\) and \(\lambda = 2.5\):

\[\bm{\mu}^*_{MV} = 2.5 \times \bm{Q}_{shrink} \times \bm{w}\]

Expected output:

AssetImplied \(\mu_i\)Interpretation
Cash EUR~0%Zero risk, zero premium
MSCI EMU~6-8%Equity risk premium
Euro Gov~1-2%Duration risk premium
CTA~3-5%Trend/momentum premium

8.3 Factor Decomposition

Decomposing into principal components (95% variance explained ~5 factors):

\[\bm{\mu}^* = r_f\bm{1} + \bm{B}_{PCA}\bm{\pi}_{PCA}\]

This allows extension to new assets by estimating their PCA betas.

9. Client Workflow

STEP 1: Client Portfolio Input +---------------------------+ | Asset IDs, weights | | Total return indices | +---------------------------+ | v STEP 2: Risk Model Estimation [COMPLETE] +---------------------------+ | Q_emp (empirical) | | Q_shrink (factor-based) | | Q_garch (GARCH forecast) | +---------------------------+ | v STEP 3: Inverse Optimization [IN SCOPE] +---------------------------+ | Mean-Variance implied mu | | Morningstar implied mu | | Omega-Ratio implied mu | +---------------------------+ | v STEP 4: Factor Premia Extraction [IN SCOPE] +---------------------------+ | Fama-MacBeth regression | | Factor risk premiums | | Attribution analysis | +---------------------------+ | v STEP 5: New Asset Integration [PENDING] +---------------------------+ | Estimate factor betas | | mu_new = rf + B' * pi_f | +---------------------------+

10. Risk Model Overview

The risk model produces three covariance matrices:

10.1 Q_emp (Empirical)

  • GARCH-weighted historical covariance
  • 22-day rolling returns
  • Time decay + volatility regime weighting

10.2 Q_shrink (Factor Model)

  • Decomposition: \(\bm{Q} = \bm{B}\bm{Q}_f\bm{B}' + \bm{D}\)
  • PCA components with 95% variance threshold
  • Reduces estimation error for large portfolios

10.3 Q_garch (Forward-Looking)

  • GARCH(1,1) fitted to each factor and residual
  • 261-day (1-year) forecast horizon
  • Annualized covariance for optimization
Matrix Properties

All matrices are symmetric positive semi-definite: \(\bm{Q} = \bm{Q}'\) and \(\bm{x}'\bm{Q}\bm{x} \geq 0\) for all \(\bm{x}\).

11. Output Matrix Specifications

MatrixMethodPeriodUse Case
Q_empGARCH-weighted historical22-day returnsHistorical risk assessment
Q_shrinkFactor model + shrinkage22-day returnsReduced estimation error
Q_garchGARCH(1,1) forecastAnnualizedForward-looking optimization

Key Constants

ParameterValueDescription
Working days/year260.89\(365.2425 / 7 \times 5\)
Rolling window22 days~1 month
Lookback10 yearsHistorical window
Variance threshold95%PCA component selection
GARCH horizon261 days1-year forecast

12. Literature References

Foundational Papers

  • Markowitz, H. (1952). Portfolio Selection. Journal of Finance, 7(1), 77-91. [Mean-variance framework]
  • Black, F. & Litterman, R. (1992). Global Portfolio Optimization. Financial Analysts Journal, 48(5), 28-43. [Equilibrium returns, Bayesian updating]
  • Fama, E.F. & MacBeth, J.D. (1973). Risk, Return, and Equilibrium: Empirical Tests. Journal of Political Economy, 81(3), 607-636. [Two-pass regression]

Risk Measures

  • Keating, C. & Shadwick, W.F. (2002). A Universal Performance Measure. Journal of Performance Measurement, 6(3), 59-84. [Omega ratio]
  • Morningstar (2006). The Morningstar Rating Methodology. Morningstar Methodology Paper. [MRAR definition]
  • Sortino, F.A. & van der Meer, R. (1991). Downside Risk. Journal of Portfolio Management, 17(4), 27-31. [LPM-based measures]

Factor Models

  • Ross, S.A. (1976). The Arbitrage Theory of Capital Asset Pricing. Journal of Economic Theory, 13(3), 341-360. [APT]
  • Shanken, J. (1992). On the Estimation of Beta-Pricing Models. Review of Financial Studies, 5(1), 1-33. [EIV correction]

Inverse Optimization

  • Bertsimas, D., Gupta, V. & Paschalidis, I.C. (2012). Inverse Optimization: A New Perspective on the Black-Litterman Model. Operations Research, 60(6), 1389-1403. [Modern inverse optimization]

13. Glossary

SymbolNameDefinition
\(\bm{w}\)Portfolio weightsFraction in each asset, \(\bm{1}'\bm{w} = 1\)
\(\bm{\mu}\)Expected returnsAnnualized expected return vector
\(\bm{Q}\)Covariance matrixVariance-covariance of returns
\(\lambda\)Risk aversionTrade-off parameter in MV utility
\(\bm{B}\)Factor loadingsSensitivity to factors (betas)
\(\bm{f}\)Factor returnsReturns of risk factors
\(\bm{\pi}_f\)Factor premiaExpected excess return per factor
\(r_f\)Risk-free rateReturn on riskless asset
\(\bm{D}\)Idiosyncratic covarianceDiagonal matrix of residual variances
\(\gamma\)CRRA parameterRelative risk aversion coefficient
\(L\)ThresholdReference return for Omega ratio
LPMLower Partial Moment\(\E[\max(L-R,0)^n]\)

Mathematical Notation

NotationMeaning
\(\bm{x}'\)Transpose of vector/matrix
\(\bm{A}^{-1}\)Matrix inverse
\(\R^n\)n-dimensional real space
\(\E[\cdot]\)Expected value
\(\argmax\)Argument that maximizes
\(\nabla_{\bm{x}}\)Gradient with respect to \(\bm{x}\)
\(\nabla^2\)Hessian matrix
\(\bm{A} \succ 0\)Positive definite matrix
\(\bm{1}\)Vector of ones

14. Tutorial: Inverse Optimization from First Principles

The Puzzle

A client gives you their portfolio weights. You have their covariance matrix. But they never told you their expected returns. Can you figure out what they must believe?

14.1 The Core Problem: Where Do Returns Come From?

In standard portfolio optimization, the workflow is:

FORWARD PROBLEM (Standard) Inputs: mu (expected returns) + Q (covariance) | v Optimization: max w'mu - (lambda/2) w'Qw | v Output: w* (optimal weights)

But what if we don't know expected returns? What if we only observe what someone actually holds?

INVERSE PROBLEM (Our Focus) Inputs: w (observed weights) + Q (covariance) | v Reverse Engineering: What mu would make w optimal? | v Output: mu* (implied expected returns)
Key Insight: Revealed Preference

The investor's weights ARE their beliefs encoded in action. If they chose \(\bm{w}\), and we know they're rational (utility-maximizing), then we can reverse-engineer what expected returns \(\bm{\mu}^*\) would make \(\bm{w}\) optimal.

The covariance \(\bm{Q}\) encodes RISK. The weights \(\bm{w}\) encode the RISK-RETURN TRADEOFF. Together they reveal the implied RETURNS.

14.2 Why This Matters

ApplicationWhat We ObserveWhat We Learn
Black-Litterman PriorMarket-cap weightsEquilibrium expected returns
Client AnalysisClient's portfolioTheir implicit views on assets
Consistency CheckAny allocationDoes the implied view make sense?
New Asset PricingExisting portfolioFactor premia to price new assets

14.3 Step-by-Step: 2-Asset Example

Let's work through a complete example with every calculation shown.

Setup

ParameterEquityBond
Volatility (annual)\(\sigma_1 = 20\%\)\(\sigma_2 = 5\%\)
Observed Weight\(w_1 = 0.40\)\(w_2 = 0.60\)

Correlation: \(\rho_{12} = 0.2\), Risk aversion: \(\lambda = 2.5\)

Step 1: Build the Covariance Matrix

The covariance between two assets is: \(\text{Cov}(r_1, r_2) = \rho_{12} \cdot \sigma_1 \cdot \sigma_2\)

\[\text{Cov}(r_1, r_2) = 0.2 \times 0.20 \times 0.05 = 0.002\]

The full covariance matrix:

\[\bm{Q} = \begin{pmatrix} \sigma_1^2 & \rho_{12}\sigma_1\sigma_2 \\ \rho_{12}\sigma_1\sigma_2 & \sigma_2^2 \end{pmatrix} = \begin{pmatrix} 0.20^2 & 0.002 \\ 0.002 & 0.05^2 \end{pmatrix} = \begin{pmatrix} 0.0400 & 0.0020 \\ 0.0020 & 0.0025 \end{pmatrix}\]

Step 2: Apply the Inverse Formula

The key formula from mean-variance utility is:

\[\boxed{\bm{\mu}^* = \lambda \cdot \bm{Q} \cdot \bm{w}}\]

Let's compute \(\bm{Q} \cdot \bm{w}\) first:

\[\bm{Q} \cdot \bm{w} = \begin{pmatrix} 0.0400 & 0.0020 \\ 0.0020 & 0.0025 \end{pmatrix} \times \begin{pmatrix} 0.40 \\ 0.60 \end{pmatrix}\]

Step 3: Matrix Multiplication (Element by Element)

First element (Equity's contribution to implied return):

\[(\bm{Q}\bm{w})_1 = Q_{11} \cdot w_1 + Q_{12} \cdot w_2 = 0.0400 \times 0.40 + 0.0020 \times 0.60\] \[= 0.0160 + 0.0012 = 0.0172\]

Second element (Bond's contribution):

\[(\bm{Q}\bm{w})_2 = Q_{21} \cdot w_1 + Q_{22} \cdot w_2 = 0.0020 \times 0.40 + 0.0025 \times 0.60\] \[= 0.0008 + 0.0015 = 0.0023\]

So:

\[\bm{Q}\bm{w} = \begin{pmatrix} 0.0172 \\ 0.0023 \end{pmatrix}\]

Step 4: Scale by Risk Aversion

\[\bm{\mu}^* = \lambda \cdot \bm{Q}\bm{w} = 2.5 \times \begin{pmatrix} 0.0172 \\ 0.0023 \end{pmatrix} = \begin{pmatrix} 0.0430 \\ 0.0058 \end{pmatrix}\]
RESULT: Implied Expected Returns
AssetImplied ReturnAs Percentage
Equity\(\mu_1^* = 0.0430\)4.30% annual
Bond\(\mu_2^* = 0.0058\)0.58% annual

Step 5: Interpretation

What does this mean? To justify holding 40% equity and 60% bonds under mean-variance utility with \(\lambda = 2.5\), the investor must implicitly believe:

  • Equity will return 4.30% annually
  • Bonds will return 0.58% annually
  • The equity premium is 4.30% - 0.58% = 3.72%

This equity premium compensates for equity's 4x higher volatility (20% vs 5%).

Verification: Forward Optimization
Verification

We can verify by solving the forward problem. Given \(\bm{\mu}^*\) and \(\bm{Q}\), the optimal weights are:

\[\bm{w}^* = \frac{1}{\lambda}\bm{Q}^{-1}\bm{\mu}^*\]

First, compute \(\bm{Q}^{-1}\):

\[\det(\bm{Q}) = 0.0400 \times 0.0025 - 0.0020^2 = 0.0001 - 0.000004 = 0.000096\] \[\bm{Q}^{-1} = \frac{1}{0.000096}\begin{pmatrix} 0.0025 & -0.0020 \\ -0.0020 & 0.0400 \end{pmatrix} = \begin{pmatrix} 26.04 & -20.83 \\ -20.83 & 416.67 \end{pmatrix}\]

Then:

\[\bm{Q}^{-1}\bm{\mu}^* = \begin{pmatrix} 26.04 & -20.83 \\ -20.83 & 416.67 \end{pmatrix} \begin{pmatrix} 0.0430 \\ 0.0058 \end{pmatrix} = \begin{pmatrix} 1.00 \\ 1.50 \end{pmatrix}\] \[\bm{w}^* = \frac{1}{2.5} \begin{pmatrix} 1.00 \\ 1.50 \end{pmatrix} = \begin{pmatrix} 0.40 \\ 0.60 \end{pmatrix} \checkmark\]

We recover the original weights exactly.

QED


14.4 The Budget Constraint

In practice, portfolio weights must sum to 1: \(\bm{1}'\bm{w} = 1\). This adds a Lagrange multiplier \(\gamma\).

Theorem 14.1 (Constrained Inverse)

With the budget constraint, the implied returns become:

\[\bm{\mu}^* = \lambda\bm{Q}\bm{w} + \gamma^*\bm{1}\]

where \(\gamma^*\) is a constant added to all assets (a "level shift").

Interpretation of \(\gamma^*\):

  • Zero-beta rate: Set \(\gamma^* = r_f\) (risk-free rate)
  • Normalization: Set \(\gamma^*\) so average implied return equals some target
  • In practice: Often set \(\gamma^* = 0\) and interpret returns as excess over risk-free
Full Derivation with Lagrangian
Derivation

The constrained optimization is:

\[\max_{\bm{w}} \; \bm{w}'\bm{\mu} - \frac{\lambda}{2}\bm{w}'\bm{Q}\bm{w} \quad \text{s.t.} \quad \bm{1}'\bm{w} = 1\]

Lagrangian:

\[\mathcal{L} = \bm{w}'\bm{\mu} - \frac{\lambda}{2}\bm{w}'\bm{Q}\bm{w} - \gamma(\bm{1}'\bm{w} - 1)\]

First-order condition (stationarity):

\[\frac{\partial \mathcal{L}}{\partial \bm{w}} = \bm{\mu} - \lambda\bm{Q}\bm{w} - \gamma\bm{1} = \bm{0}\]

Solving for \(\bm{\mu}\):

\[\bm{\mu} = \lambda\bm{Q}\bm{w} + \gamma\bm{1}\]

QED


14.5 Sensitivity to Risk Aversion (\(\lambda\))

Key question: How do we choose \(\lambda\)?

Proposition 14.1 (Scaling Property)

Implied returns scale linearly with risk aversion:

\[\bm{\mu}^*(\lambda) = \lambda \cdot \bm{Q}\bm{w}\]

Doubling \(\lambda\) doubles all implied returns.

Using our 2-asset example:

\(\lambda\)Equity Implied ReturnBond Implied ReturnEquity Premium
1.01.72%0.23%1.49%
2.03.44%0.46%2.98%
2.54.30%0.58%3.72%
3.05.16%0.69%4.47%
5.08.60%1.15%7.45%

Calibration methods:

  1. Market convention: \(\lambda \approx 2.5\) for equity markets (Black-Litterman)
  2. From Sharpe ratio: \(\lambda = \frac{\text{Sharpe}}{\sigma_p}\) where \(\sigma_p\) is portfolio volatility
  3. From known return: If you know one asset's expected return, solve for \(\lambda\)

14.6 Three-Asset Example: Equity, Bond, Alternatives

Let's extend to a more realistic 3-asset portfolio.

Setup

AssetVolatilityWeight
Equity\(\sigma_1 = 18\%\)\(w_1 = 0.40\)
Bond\(\sigma_2 = 6\%\)\(w_2 = 0.45\)
CTA/Alternatives\(\sigma_3 = 12\%\)\(w_3 = 0.15\)

Correlations:

EquityBondCTA
Equity1.000.100.30
Bond0.101.000.00
CTA0.300.001.00

Step 1: Build 3x3 Covariance Matrix

Variances (diagonal):

\[\sigma_1^2 = 0.18^2 = 0.0324, \quad \sigma_2^2 = 0.06^2 = 0.0036, \quad \sigma_3^2 = 0.12^2 = 0.0144\]

Covariances (off-diagonal):

\[Q_{12} = \rho_{12}\sigma_1\sigma_2 = 0.10 \times 0.18 \times 0.06 = 0.00108\] \[Q_{13} = \rho_{13}\sigma_1\sigma_3 = 0.30 \times 0.18 \times 0.12 = 0.00648\] \[Q_{23} = \rho_{23}\sigma_2\sigma_3 = 0.00 \times 0.06 \times 0.12 = 0.00000\] \[\bm{Q} = \begin{pmatrix} 0.0324 & 0.00108 & 0.00648 \\ 0.00108 & 0.0036 & 0.00000 \\ 0.00648 & 0.00000 & 0.0144 \end{pmatrix}\]

Step 2: Matrix Multiplication \(\bm{Q}\bm{w}\)

\[\bm{w} = \begin{pmatrix} 0.40 \\ 0.45 \\ 0.15 \end{pmatrix}\]

Row 1 (Equity):

\[(\bm{Q}\bm{w})_1 = 0.0324 \times 0.40 + 0.00108 \times 0.45 + 0.00648 \times 0.15\] \[= 0.01296 + 0.000486 + 0.000972 = 0.014418\]

Row 2 (Bond):

\[(\bm{Q}\bm{w})_2 = 0.00108 \times 0.40 + 0.0036 \times 0.45 + 0.00000 \times 0.15\] \[= 0.000432 + 0.00162 + 0 = 0.002052\]

Row 3 (CTA):

\[(\bm{Q}\bm{w})_3 = 0.00648 \times 0.40 + 0.00000 \times 0.45 + 0.0144 \times 0.15\] \[= 0.002592 + 0 + 0.00216 = 0.004752\] \[\bm{Q}\bm{w} = \begin{pmatrix} 0.014418 \\ 0.002052 \\ 0.004752 \end{pmatrix}\]

Step 3: Scale by \(\lambda = 2.5\)

\[\bm{\mu}^* = 2.5 \times \begin{pmatrix} 0.014418 \\ 0.002052 \\ 0.004752 \end{pmatrix} = \begin{pmatrix} 0.03605 \\ 0.00513 \\ 0.01188 \end{pmatrix}\]
RESULT: 3-Asset Implied Returns
AssetImplied ReturnSharpe Ratio
Equity3.60%0.20
Bond0.51%0.09
CTA1.19%0.10

(Sharpe = Implied Return / Volatility)

Interpretation:

  • Equity has highest return but also highest risk -> moderate Sharpe
  • CTA has low correlation with bonds (0.00) -> valuable diversifier, moderate implied return
  • Bond has lowest absolute return but provides stability

14.7 Factor Decomposition: From Asset Returns to Factor Premia

Instead of \(n\) asset-level implied returns, we can express them in terms of \(k\) factors:

\[\bm{\mu}^* = r_f\bm{1} + \bm{B}\bm{\pi}_f\]

where \(\bm{B}\) is the \(n \times k\) matrix of factor loadings and \(\bm{\pi}_f\) is the vector of factor risk premia.

Theorem 14.2 (Factor Premia Extraction)

Given implied asset returns \(\bm{\mu}^*\) and factor loadings \(\bm{B}\), the factor premia are:

\[\hat{\bm{\pi}}_f = (\bm{B}'\bm{B})^{-1}\bm{B}'(\bm{\mu}^* - r_f\bm{1})\]

This is the OLS regression of excess implied returns on factor betas.

2-Factor Example

Suppose our 3 assets load on 2 factors (Market, Rates):

Asset\(\beta_{Market}\)\(\beta_{Rates}\)
Equity1.00.1
Bond0.00.8
CTA0.30.0

Factor loading matrix:

\[\bm{B} = \begin{pmatrix} 1.0 & 0.1 \\ 0.0 & 0.8 \\ 0.3 & 0.0 \end{pmatrix}\]

Using implied returns from above (with \(r_f = 0\)):

\[\bm{\mu}^* = \begin{pmatrix} 0.0360 \\ 0.0051 \\ 0.0119 \end{pmatrix}\]
Factor Premium Calculation
Calculation

Step 1: Compute \(\bm{B}'\bm{B}\):

\[\bm{B}'\bm{B} = \begin{pmatrix} 1.0 & 0.0 & 0.3 \\ 0.1 & 0.8 & 0.0 \end{pmatrix} \begin{pmatrix} 1.0 & 0.1 \\ 0.0 & 0.8 \\ 0.3 & 0.0 \end{pmatrix} = \begin{pmatrix} 1.09 & 0.10 \\ 0.10 & 0.65 \end{pmatrix}\]

Step 2: Compute \(\bm{B}'\bm{\mu}^*\):

\[\bm{B}'\bm{\mu}^* = \begin{pmatrix} 1.0 & 0.0 & 0.3 \\ 0.1 & 0.8 & 0.0 \end{pmatrix} \begin{pmatrix} 0.0360 \\ 0.0051 \\ 0.0119 \end{pmatrix} = \begin{pmatrix} 0.0396 \\ 0.0077 \end{pmatrix}\]

Step 3: Solve \((\bm{B}'\bm{B})^{-1}\bm{B}'\bm{\mu}^*\):

\[\hat{\bm{\pi}}_f = \begin{pmatrix} 1.09 & 0.10 \\ 0.10 & 0.65 \end{pmatrix}^{-1} \begin{pmatrix} 0.0396 \\ 0.0077 \end{pmatrix} \approx \begin{pmatrix} 0.0354 \\ 0.0064 \end{pmatrix}\]

QED

RESULT: Implied Factor Premia
  • Market Factor Premium: \(\pi_{Market} \approx 3.5\%\)
  • Rates Factor Premium: \(\pi_{Rates} \approx 0.6\%\)

Power of factor decomposition: A new asset with \(\beta_{Market} = 0.5\) and \(\beta_{Rates} = 0.3\) would have implied return:

\[\mu_{new} = 0.5 \times 3.5\% + 0.3 \times 0.6\% = 1.75\% + 0.18\% = 1.93\%\]

14.8 Julian's Calibration Methods (Summary)

See Section 15 for Full Implementation

Julian Lorenz (Bantleon) developed two practical methods for calibrating Market Implied Returns from the BRISMA factor model:

  1. Method 1: 10Y Bond Calibration - Uses German 10Y yield as anchor to calibrate factor premium
  2. Method 2: Past Performance - Uses time-weighted historical factor returns

See Section 15: Julian's Calibration Methods for complete R code, detailed explanations, comparison table, and validation framework.


14.10 Model Validation Framework

How do we know if our implied returns are "good"?

Rolling Backtest

  1. At each date \(t\), compute implied returns \(\mu_t^*\)
  2. Observe realized returns at \(t+1\): \(r_{t+1}\)
  3. Compare: Are assets with higher implied returns actually returning more?

Validation Metrics

MetricFormulaInterpretation
Rank Correlation\(\rho_{Spearman}(\mu^*, r_{realized})\)Do rankings match?
Hit Ratio\(\frac{1}{n}\sum \mathbb{1}[\text{sign}(\mu_i^*) = \text{sign}(r_i)]\)Sign prediction accuracy
Tracking Error\(\sqrt{\E[(r - \mu^*)^2]}\)Magnitude of errors
R-squared\(\frac{\beta_i^2 \sigma_f^2}{\sigma_i^2}\)Factor model fit per asset

Economic Sanity Checks

  • Is equity premium positive? (typically 3-6%)
  • Is credit spread positive? (bonds with risk > govt bonds)
  • Do alternatives show diversification benefit? (lower correlation -> lower required return)

14.11 Beyond Mean-Variance: MRAR and Omega Inverse

Mean-variance optimization assumes quadratic utility. Real investors may use different utility functions. Can we still do inverse optimization?

Key Difference

Mean-variance inverse has a closed-form solution: \(\mu^* = \lambda \bm{Q} \bm{w}\).

MRAR and Omega inverse require numerical optimization because their forward problems don't have tractable inverse forms.

14.11.1 Morningstar Risk-Adjusted Return (MRAR)

MRAR uses a CRRA (constant relative risk aversion) utility function with Gamma parameter \(\gamma\):

MRAR Utility
\[U_{MRAR}(\bm{w}; \bm{r}) = \left(\frac{1}{T}\sum_{t=1}^{T}\left(1 + r_{p,t}\right)^{-\gamma}\right)^{-12/\gamma} - 1\]

where \(r_{p,t} = \bm{w}'\bm{r}_t\) is the portfolio monthly return and \(\gamma > 0\) is the risk aversion.

Typical values:

  • \(\gamma = 0\): Risk-neutral (geometric mean return)
  • \(\gamma = 2\): Moderate risk aversion (Morningstar default)
  • \(\gamma = 5\): High risk aversion
The Inverse Problem

Given observed weights \(\bm{w}^{obs}\), find \(\bm{\mu}\) such that \(\bm{w}^{obs}\) maximizes MRAR utility.

MRAR Inverse (Bilevel Formulation)

Solve the outer optimization:

\[\min_{\bm{\mu}} \|\bm{w}^*(\bm{\mu}) - \bm{w}^{obs}\|^2\]

where \(\bm{w}^*(\bm{\mu})\) is the solution to the inner (forward) MRAR optimization:

\[\bm{w}^*(\bm{\mu}) = \arg\max_{\bm{w}} U_{MRAR}(\bm{w}; \bm{\mu}, \bm{\Sigma})\]
Numerical Approach (Pseudo-Code)
def inverse_mrar(w_obs, Q, gamma=2.0):
    """Find mu such that w_obs is MRAR-optimal."""

    def forward_mrar(mu, Q, gamma):
        """Solve forward MRAR optimization."""
        # Generate scenarios from N(mu, Q)
        scenarios = np.random.multivariate_normal(mu, Q, size=1000)

        def mrar_utility(w):
            port_returns = scenarios @ w
            utility = (np.mean((1 + port_returns)**(-gamma)))**(-12/gamma) - 1
            return -utility  # minimize negative utility

        # Optimize with constraints
        result = minimize(mrar_utility, x0=w_obs,
                         constraints={'type': 'eq', 'fun': lambda w: sum(w) - 1},
                         bounds=[(0, 1) for _ in w])
        return result.x

    def objective(mu):
        """Distance between optimal and observed weights."""
        w_opt = forward_mrar(mu, Q, gamma)
        return np.sum((w_opt - w_obs)**2)

    # Initial guess: mean-variance implied returns
    mu_init = 2.5 * Q @ w_obs

    # Solve bilevel problem
    result = minimize(objective, x0=mu_init, method='Nelder-Mead')
    return result.x
MRAR Example

Using our 3-asset example (Equity, Bond, CTA) with \(\bm{w}^{obs} = (0.40, 0.45, 0.15)\) and \(\gamma = 2\):

AssetMV Implied (\(\lambda=2.5\))MRAR Implied (\(\gamma=2\))Difference
Equity (18% vol)3.60%4.12%+0.52%
Bond (6% vol)0.51%0.38%-0.13%
CTA (12% vol)1.19%1.45%+0.26%

Interpretation: MRAR penalizes downside risk more heavily than variance. To justify the same allocation, assets with negative skewness (like equities) require higher expected returns under MRAR.


14.11.2 Omega-Ratio Inverse

The Omega ratio measures the probability-weighted gain over a threshold relative to the probability-weighted loss:

Omega Ratio
\[\Omega(\bm{w}; L) = \frac{\int_L^{\infty}(1 - F_{r_p}(r))dr}{\int_{-\infty}^{L}F_{r_p}(r)dr} = \frac{\E[\max(r_p - L, 0)]}{\E[\max(L - r_p, 0)]}\]

where \(r_p = \bm{w}'\bm{r}\) is the portfolio return, \(F_{r_p}\) is its CDF, and \(L\) is the threshold (often \(L = 0\) or \(L = r_f\)).

Connection to Lower Partial Moments (LPM)
LPM Derivation
Proof: Omega and LPM

The denominator of Omega is the first-order lower partial moment (LPM1):

\[\text{LPM}_1(L) = \E[\max(L - r_p, 0)] = \int_{-\infty}^{L}(L - r)f_{r_p}(r)dr\]

The numerator is the first-order upper partial moment (UPM1):

\[\text{UPM}_1(L) = \E[\max(r_p - L, 0)]\]

For normally distributed returns:

\[\text{LPM}_1(L) = \sigma_p \cdot \phi\left(\frac{L - \mu_p}{\sigma_p}\right) - (L - \mu_p) \cdot \Phi\left(\frac{L - \mu_p}{\sigma_p}\right)\]

where \(\phi\) and \(\Phi\) are the standard normal PDF and CDF.

QED

The Inverse Problem

Given observed weights \(\bm{w}^{obs}\), find \(\bm{\mu}\) such that \(\bm{w}^{obs}\) maximizes Omega ratio.

Omega Inverse (Bilevel Formulation)
\[\min_{\bm{\mu}} \|\bm{w}^*(\bm{\mu}) - \bm{w}^{obs}\|^2\]

where \(\bm{w}^*(\bm{\mu}) = \arg\max_{\bm{w}} \Omega(\bm{w}; L)\).

Numerical Approach

Under normality, the Omega ratio becomes:

\[\Omega(\bm{w}; L) = \frac{\sigma_p \phi(z) + (\mu_p - L)(1 - \Phi(z))}{\sigma_p \phi(z) - (\mu_p - L)\Phi(z)}\]

where \(z = (L - \mu_p)/\sigma_p\), \(\mu_p = \bm{w}'\bm{\mu}\), \(\sigma_p = \sqrt{\bm{w}'\bm{Q}\bm{w}}\).

This enables gradient-based optimization for the forward problem, making the bilevel inverse computationally tractable.

Omega Example

Using the same 3-asset example with threshold \(L = 0\):

AssetMV ImpliedOmega Implied (\(L=0\))Difference
Equity3.60%3.85%+0.25%
Bond0.51%0.42%-0.09%
CTA1.19%1.31%+0.12%

Interpretation: Omega penalizes probability of loss (\(r < L\)). Higher-volatility assets need higher expected returns to compensate for their higher probability of falling below threshold.


14.11.3 Comparison Across Utility Functions

The same observed weights imply different expected returns under different utility assumptions:

Implied Returns Comparison (3-Asset Portfolio)
AssetVolWeightMV (\(\lambda=2.5\))MRAR (\(\gamma=2\))Omega (\(L=0\))
Equity18%40%3.60%4.12%3.85%
Bond6%45%0.51%0.38%0.42%
CTA12%15%1.19%1.45%1.31%

Key Insights:

  • MV is a baseline: Closed-form, easy to compute, interpretable
  • MRAR increases equity premium: Downside-sensitive utility demands higher compensation for left-tail risk
  • Omega falls between: Penalizes loss probability but less severe than MRAR's power utility
  • All methods agree on ranking: Equity > CTA > Bond (higher vol needs higher return)
Practical Advice

When to use each:

  • Mean-Variance: Default choice. Interpretable, fast, and often sufficient.
  • MRAR: When investor explicitly cares about downside (e.g., pension funds with liability constraints).
  • Omega: When a specific return threshold matters (e.g., absolute return target, minimum acceptable return).

In practice, start with MV. If implied returns seem economically unreasonable, check if alternative utilities give more sensible results.

15. Julian's Calibration Methods

This section presents Julian Lorenz's (Bantleon) practical methods for calibrating Market Implied Returns (MIR) from factor models. Both methods are implemented in R/examples/original/example1.R (lines 1083-1244).

Complete Tutorial Available

For a comprehensive step-by-step guide with exercises and practice problems, see:

Julian's Calibration Methods - Full Tutorial →


15.1 The Calibration Problem

The factor model gives us asset betas on risk factors, but not the factor risk premia. We need to calibrate these premia to derive implied returns.

Julian's Key Insight

"The covariance of assets to risk model factors describes the risk of assets and thus also the expected returns. The betas are nothing other than the scaled covariance of assets to risk model factors. To determine the expected returns of assets, we can multiply the betas of assets on risk model factors with the expected returns of the risk model factors. Since we don't know the expected returns of the risk model factors, we calibrate them so that the expected returns of selected assets (e.g., 10-year government bonds) correspond to a specified value. This is a linear system of equations which we can solve."

The mathematical framework:

  • We have: Asset betas \(\beta_{i,k}\) on risk factors \(k\)
  • We need: Factor risk premia \(\pi_k\)
  • Goal: \(\mu_i = \sum_k \beta_{i,k} \cdot \pi_k\)

Julian proposes two calibration approaches:

  1. Method 1: Single-factor calibration using 10Y German government bond yield as anchor
  2. Method 2: Past-performance based approach using time-weighted historical returns

15.2 Method 1: Single-Factor Calibration via 10Y Bonds

15.2.1 Theoretical Foundation

Key Idea: Use a known market rate (10Y German Bund yield) as anchor to calibrate the factor risk premium.

Single-Factor Calibration

Given:

  • \(\beta_{i,1}\) = asset \(i\)'s beta on Factor 1 (first principal component)
  • \(r_{target}\) = known expected return for reference asset (10Y bond index)
  • \(\beta_{ref,1}\) = reference asset's beta on Factor 1

Solve for factor premium:

\[\lambda = \frac{r_{target}}{\beta_{ref,1}}\]

Project to all assets:

\[\mu_i = \beta_{i,1} \cdot \lambda\]

15.2.2 Implementation: Setup and Data Extraction

Julian's comment: "The asset 'ICE BofA 7-10 Year Euro Government Index' should have an implied return corresponding to the difference between the 10-year government bond rate and the overnight rate."

# Reference rates and assets
rate_overnight <- "ESTR Volume Weighted Trimmed Mean Rate"
rate_10year <- "Germany Govt 10 Yr"
asset_10year <- "ICE BofA 7-10 Year Euro Government Index"

# Extract current rates from data and calculate target return
return_asset_10year <- tbl_map_id_name |>
  dplyr::filter(name %in% c(!!rate_overnight, !!rate_10year)) |>
  dplyr::left_join(
    tbl_idx_data |>
      dplyr::filter(date == max(date)),
    by = "id"
  ) |>
  dplyr::select(name, date, value) |>
  dplyr::pull(value) |>
  (\(.x) {
    rate_overnight_value <- .x[1] / 100
    rate_10year_value <- .x[2] / 100
    # Calculate implied excess return of 10Y bond
    return_asset_10year <- log((1 + rate_10year_value) / (1 + rate_overnight_value))
    return_asset_10year
  })()

# Extract risk-free rate (overnight rate)
risk_free_rate <- tbl_map_id_name |>
  dplyr::filter(name %in% c(!!rate_overnight)) |>
  dplyr::left_join(
    tbl_idx_data |> dplyr::filter(date == max(date)),
    by = "id"
  ) |>
  dplyr::pull(value)

15.2.3 Implementation: Lambda Calibration

Julian's comment: "How must the beta be scaled so that the implied return of the asset corresponds to the desired value?"

# Calibrate lambda: scale factor for betas
lambda_ <- return_asset_10year /
  beta_id_id_comp.fit[
    "comp1",
    tbl_map_id_name |>
      dplyr::filter(name == asset_10year) |>
      dplyr::pull(id) |>
      paste0(".fit")
  ]
Formula: \(\lambda = \frac{r_{10Y} - r_f}{\beta_{10Y,1}}\)

This is the factor risk premium that makes the 10Y bond index's implied return equal to the market yield spread.

15.2.4 Implementation: Generate Market Implied Returns Table

# Generate Market Implied Returns for all assets
tbl_mir_1 <- tibble::tibble(
  id = gsub("\\.fit", "", names(beta_id_id_comp.fit["comp1", ])),
  mi_er = beta_id_id_comp.fit["comp1", ] * lambda_,           # Excess return
  mi_tr = beta_id_id_comp.fit["comp1", ] * lambda_ +
          log(1 + risk_free_rate / 100)                       # Total return
) |>
  dplyr::left_join(tbl_map_id_name, by = "id") |>
  dplyr::arrange(-mi_er)

# Verification: Check that reference asset has correct implied return
tbl_mir_1 |>
  dplyr::filter(name == asset_10year)

# Display all Market Implied Returns
knitr::kable(tbl_mir_1, format = "simple",
             col.names = c("ID", "Market Implied Excess Return",
                          "Market Implied Total Return", "Name"))

15.2.5 Variance Explanation Check (R-squared)

Julian's comment: "Note that this 1-factor model has its limits and is only conditionally able to project the market implied returns to assets. This is ultimately because the explained variance of individual assets in the 1-factor model is relatively low."

# Calculate R-squared: How much variance does Factor 1 explain per asset?
var_comp1 <- sd_comp[id_comp == "comp1"]^2                    # Annualized factor variance
beta_comp1_port <- beta_id_port_id_comp.fit["comp1", ]        # Asset betas on Factor 1
var_explained_comp1 <- (beta_comp1_port^2) * var_comp1        # Explained variance
names(var_explained_comp1) <- gsub("\\.fit$", "", names(var_explained_comp1))
idx <- match(names(var_explained_comp1), tbl_map_id_name$id)
names(var_explained_comp1) <- tbl_map_id_name$name[idx]
var_total <- Matrix::diag(q_shrink)                           # Total variance

# R-squared per asset
r_squared <- round(var_explained_comp1 / var_total, 2)
Variance Explanation Formula
\[R^2_i = \frac{\beta_{i,1}^2 \cdot \sigma^2_{f_1}}{\sigma^2_i}\]

where \(\sigma^2_{f_1}\) is the factor variance and \(\sigma^2_i\) is total asset variance.

R-squared RangeInterpretationReliability
> 0.70Excellent - factor captures most riskHigh
0.50 - 0.70Good - factor is primary driverModerate
0.30 - 0.50Moderate - other factors matterUse with caution
< 0.30Poor - factor misses key risksUnreliable

15.2.6 Limitations and Concerns

Julian's Concerns

"It is also unclear whether calibration with only one rates asset is sufficient to derive good implied rates for the entire asset universe (especially non-Fixed Income assets like Equity, Alternatives, etc)."

"Whether this is sufficient to derive meaningful market implied returns for the assets could be provided by a historical rolling analysis - comparing the market implied returns of the assets e.g., at the beginning of each year and what was actually realized."

Key Limitations:

  1. Single calibration point - all implied returns scale from one reference asset
  2. Factor 1 dominance - may not explain non-fixed-income assets well (low R-squared)
  3. No diversification - no multiple anchors to cross-validate
  4. Yield curve assumption - assumes 10Y yield equals expected bond return

15.3 Method 2: Past-Performance Based Approach

15.3.1 Theoretical Foundation

Key Idea: Use historical factor returns (time-weighted) as proxy for expected returns.

Julian's Comment

"Simply use the past performance of the Risk Model Components. For the performance calculation, I weight the past returns with the defined weighting vector. With this intention, one might perhaps want to calculate the covariance from the beginning with the weighted average."

Past-Performance Calibration

Steps:

  1. Calculate rolling returns for each risk factor: \(r_{f,t}\)
  2. Weight by time-decay + GARCH weights: \(\hat{\mu}_f = \sum_t w_t \cdot r_{f,t}\)
  3. Project factor returns through betas: \(\mu_i = \sum_k \beta_{i,k} \cdot \hat{\mu}_k\)

15.3.2 Implementation: Factor Return Calculation

# Calculate 22-day rolling log returns for each risk factor component
ret_roll_date_id_comp <- apply(idx_rm_comp[, id_comp], 2, \(.x) diff(log(.x))) |>
  apply(2, RcppRoll::roll_sum, n = period_length, align = "right") |>
  (\(.x) {
    rownames(.x) <- rownames(idx_rm_comp)[-seq_len(period_length)]
    return(.x)
  })()

# Weight factor returns by time-decay + GARCH weights
# (same weights used for covariance estimation)
mu_comp <- Matrix::t(ret_roll_date_id_comp) %*% weight

# Project to all assets via betas and annualize
mu_past_performance <- (mu_comp[, 1] %*% beta_id_id_comp.fit)[1, ] * annualization_factor

15.3.3 Implementation: Generate Market Implied Returns Table

# Generate Past-Performance based Market Implied Returns
tbl_mir_2 <- tibble::tibble(
  id = gsub("\\.fit", "", names(mu_past_performance)),
  mi_er = mu_past_performance,                                # Excess return
  mi_tr = mu_past_performance + log(1 + risk_free_rate / 100) # Total return
) |>
  dplyr::left_join(tbl_map_id_name, by = "id") |>
  dplyr::arrange(-mi_er)

# Display all Market Implied Returns
knitr::kable(tbl_mir_2, format = "simple",
             col.names = c("ID", "Market Implied Excess Return",
                          "Market Implied Total Return", "Name"))

15.3.4 Limitations and Concerns

Julian's Concern

"Whether and to what extent a simple 'average past performance' -> 'expected future return' assumption yields meaningful results is of course unclear. Here too, a historical rolling analysis could provide insight."

Key Limitations:

  1. Assumes persistence - past predicts future (momentum vs mean-reversion?)
  2. Lookback sensitivity - results depend on historical period chosen
  3. Regime dependence - may extrapolate regime-specific performance
  4. No market anchor - purely data-driven, no observable market rates

15.4 Detailed Comparison of Methods

15.4.1 Side-by-Side Comparison

AspectMethod 1: 10Y Bond CalibrationMethod 2: Past Performance
Calibration SourceSingle market rate (10Y yield)All historical factor returns
Formula\(\mu_i = \beta_{i,1} \cdot \frac{r_{target}}{\beta_{ref,1}}\)\(\mu_i = \sum_k \beta_{i,k} \cdot \hat{\mu}_k^{hist}\)
Key Assumption10Y yield = expected bond returnPast performance predicts future
Factor CoverageFactor 1 onlyAll factors implicitly
AnchorObservable market rateHistorical data
WeightingPoint estimate (latest yield)Time-decay + GARCH weights
Best ForFixed-income dominated portfoliosTrend-following / momentum assets
Quality CheckR-squared per asset (explicit)Implicit in beta quality
ValidationRolling backtest suggestedRolling backtest suggested

15.4.2 When to Use Each Method

Use Method 1 (10Y Bond) When:
  • Portfolio is primarily fixed-income
  • You trust the yield curve as a forward indicator
  • R-squared of Factor 1 is high (>50%) for most assets
  • You want a market-based, observable anchor
  • Regime has stable interest rate expectations
Use Method 2 (Past Performance) When:
  • Portfolio includes trend-following assets (CTAs)
  • Historical returns show persistent patterns
  • You want consistency with covariance estimation
  • Multiple asset classes with diverse factor exposures
  • Momentum effects are economically important

15.4.3 Hybrid Approach (Potential Extension)

Proposed Hybrid Strategy
  • Use Method 1 for fixed-income assets (where R-squared > 0.50)
  • Use Method 2 for alternatives/trend-following (where R-squared < 0.50)
  • Blend based on R-squared: \(\mu_i = R^2_i \cdot \mu_i^{M1} + (1-R^2_i) \cdot \mu_i^{M2}\)

15.5 Validation Framework

15.5.1 Julian's Validation Suggestion

Julian's Recommendation

"Whether this is sufficient to derive meaningful market implied returns for the assets could be provided by a historical rolling analysis - comparing the market implied returns of the assets e.g., at the beginning of each year and what was actually realized."

15.5.2 Rolling Backtest Methodology

Steps:

  1. At each date \(t\), compute MIR using both methods
  2. Record realized returns over next period (1Y, 6M, 3M)
  3. Calculate prediction metrics
MetricFormulaInterpretation
Rank Correlation\(\rho_{Spearman}(\mu^{MIR}, r_{realized})\)Do rankings match? (higher = better)
Hit Ratio\(\frac{1}{n}\sum \mathbb{1}[\text{sign}(\mu_i) = \text{sign}(r_i)]\)Sign prediction accuracy (>50% = better than random)
Tracking Error\(\sqrt{\E[(r - \mu^{MIR})^2]}\)Magnitude of prediction errors (lower = better)
Information Coefficient\(\text{Corr}(\mu^{MIR}, r_{realized})\)Linear predictive power

15.5.3 R-squared Quality Decision Rule

Decision Rule for Method 1 Reliability:

IF R-squared_asset > 0.50 THEN
    Method 1 is reliable for this asset
    Use 10Y bond calibrated MIR
ELSE IF R-squared_asset > 0.30 THEN
    Method 1 is moderately reliable
    Consider averaging with Method 2
ELSE
    Method 1 is unreliable for this asset
    Use Method 2 or hybrid approach

15.5.4 Economic Sanity Checks

Regardless of method, verify implied returns make economic sense:

  • Equity premium positive? Equities should have higher implied returns than bonds
  • Credit spread positive? Corporate bonds > government bonds
  • Duration premium? Longer bonds have higher implied returns (normally)
  • Alternatives diversification? Low-correlation assets can have lower required returns

15.6 Complete Numerical Example: 2-Asset Case

Let's work through both methods with a minimal example to see how they compare.

Setup

Given Data
ParameterBondEquity
Volatility (\(\sigma\))4%16%
Beta on Factor 1 (\(\beta_1\))0.950.25

Market Rates (current):

  • 10Y German Bund yield: \(y_{10Y} = 2.8\%\)
  • ESTR overnight rate: \(r_f = 2.4\%\)
  • Target bond excess return: \(\ln\left(\frac{1.028}{1.024}\right) = +0.39\%\)

Historical Data:

  • Factor 1 time-weighted return: \(\hat{\mu}_{f_1} = 3.5\%\) (annualized)
  • Factor 1 variance: \(\sigma^2_{f_1} = 0.0016\) (4% volatility)
The Single-Factor Pricing Model

Starting point: The factor model decomposes asset returns into systematic and idiosyncratic components:

\[r_i = \alpha_i + \beta_{i,1} \cdot f_1 + \epsilon_i\]

where \(r_i\) is asset return, \(f_1\) is the factor return, \(\beta_{i,1}\) is the factor loading (sensitivity), and \(\epsilon_i\) is idiosyncratic noise.

No-arbitrage condition: In equilibrium, expected returns must compensate only for systematic risk (idiosyncratic risk is diversifiable). This implies \(\alpha_i = 0\) and:

\[\E[r_i] = \beta_{i,1} \cdot \E[f_1]\]

Define the factor premium: Let \(\lambda = \E[f_1]\) be the expected factor return (the "price of risk" for Factor 1). Then:

\[\boxed{\mu_i = \beta_{i,1} \cdot \lambda}\]

Interpretation: An asset's expected excess return equals its factor exposure times the factor premium. Higher beta = higher expected return (more compensation for bearing systematic risk).

Method 1: 10Y Bond Calibration

Step 1: Calculate lambda (factor premium)

Derivation: From the single-factor model above, we can solve for \(\lambda\) using the reference asset (10Y bond) where we know the target return:

\[\lambda = \frac{r_{target}}{\beta_{ref,1}} \quad \Rightarrow \quad \lambda = \frac{+0.39\%}{0.95} = +0.41\%\]

Step 2: Project to all assets

Derivation: Once we have \(\lambda\), we apply the factor model \(\mu_i = \beta_{i,1} \cdot \lambda\) to every asset. This assumes all expected returns are driven by exposure to Factor 1:

\[\mu_{bond} = \beta_{bond,1} \times \lambda = 0.95 \times 0.41\% = \boxed{+0.39\%} \quad \checkmark\] \[\mu_{equity} = \beta_{equity,1} \times \lambda = 0.25 \times 0.41\% = \boxed{+0.10\%}\]

Step 3: R-squared quality check

Derivation: R-squared measures what fraction of asset variance is explained by Factor 1. From the factor model \(r_i = \beta_{i,1} f_1 + \epsilon_i\), we get \(\text{Var}(r_i) = \beta_{i,1}^2 \sigma^2_{f_1} + \sigma^2_{\epsilon}\). The R-squared is the systematic portion:

\[R^2_i = \frac{\beta_{i,1}^2 \cdot \sigma^2_{f_1}}{\sigma^2_i} = \frac{\text{systematic variance}}{\text{total variance}}\] \[R^2_{bond} = \frac{0.95^2 \times 0.0016}{0.04^2} = \frac{0.00144}{0.0016} = 0.90 \quad (90\%)\] \[R^2_{equity} = \frac{0.25^2 \times 0.0016}{0.16^2} = \frac{0.0001}{0.0256} = 0.004 \quad (0.4\%)\]
AssetImplied Excess ReturnR-squaredReliability
Bond+0.39%90%High
Equity+0.10%0.4%Unreliable

Method 2: Past Performance

Step 1: Use historical factor returns

Derivation: Instead of calibrating from market rates, we estimate the factor premium directly from historical data. The factor return is computed as a time-weighted average of past returns (see Section 15.3), giving more weight to recent observations:

\[\hat{\mu}_{f_1} = \sum_t w_t \cdot r_{f_1,t} = 3.5\% \quad \text{(annualized)}\]

Step 2: Project to assets via betas

Derivation: Same factor model as Method 1: \(\mu_i = \beta_{i,1} \cdot \mu_{f_1}\). The only difference is that \(\mu_{f_1}\) comes from historical data rather than market calibration:

\[\mu_{bond} = \beta_{bond,1} \times \hat{\mu}_{f_1} = 0.95 \times 3.5\% = \boxed{3.33\%}\] \[\mu_{equity} = \beta_{equity,1} \times \hat{\mu}_{f_1} = 0.25 \times 3.5\% = \boxed{0.88\%}\]

Step 3: R-squared quality check

Derivation: R-squared is identical to Method 1 because it depends only on betas and variances, not on how we estimate the factor premium. It tells us how much of each asset's risk is explained by Factor 1:

\[R^2_{bond} = \frac{\beta_{bond,1}^2 \cdot \sigma^2_{f_1}}{\sigma^2_{bond}} = \frac{0.95^2 \times 0.0016}{0.04^2} = 0.90 \quad (90\%)\] \[R^2_{equity} = \frac{\beta_{equity,1}^2 \cdot \sigma^2_{f_1}}{\sigma^2_{equity}} = \frac{0.25^2 \times 0.0016}{0.16^2} = 0.004 \quad (0.4\%)\]
AssetImplied Excess ReturnR-squaredReliability
Bond+3.33%90%High
Equity+0.88%0.4%Unreliable

Comparison

Side-by-Side Results
AssetMethod 1 (10Y Bond)Method 2 (Past Perf)Difference
Bond+0.39%+3.33%2.94%
Equity+0.10%+0.88%0.78%

Key Insights

Critical Observations
  1. Methods give different answers! A 3% difference for bonds is economically significant.
  2. Method 1 reflects current market view: The normal yield curve (10Y 2.8% > overnight 2.4%) implies small positive bond excess returns.
  3. Method 2 reflects historical momentum: Bonds performed well historically (falling rates = capital gains), so the model extrapolates higher positive returns.
  4. R-squared matters for both methods: Equity's 0.4% R-squared means Factor 1 barely explains equity risk. The implied returns for equity are unreliable with either method.
  5. Neither is "correct": Method 1 is forward-looking (market expectations), Method 2 is backward-looking (momentum). Choose based on your investment philosophy.

Recommendation: For bonds (high R-squared), Method 1 is reliable. For equities (low R-squared), consider Method 2 or a hybrid approach.


15.7 Academic Foundations and References

Julian's calibration methods build on well-established academic foundations in asset pricing theory. Here we document the key papers and their relevance.

15.7.1 Factor Pricing Theory (Foundation for Both Methods)

The core formula \(\mu_i = \beta_{i,1} \cdot \lambda\) derives from factor pricing models:

Foundational Papers

1. Arbitrage Pricing Theory (APT)

Ross, S.A. (1976). "The arbitrage theory of capital asset pricing." Journal of Economic Theory, 13(3), 341-360.

  • Introduced APT as alternative to CAPM
  • Shows expected returns are linear in factor betas under no-arbitrage
  • Key result: \(\E[r_i] = r_f + \beta_{i,1}\lambda_1 + \beta_{i,2}\lambda_2 + \ldots\)
  • Julian's methods use the single-factor special case

2. Capital Asset Pricing Model (CAPM)

Sharpe, W.F. (1964). "Capital asset prices: A theory of market equilibrium under conditions of risk." Journal of Finance, 19(3), 425-442. [17,243 citations]

  • Original single-factor model: \(\E[r_i] = r_f + \beta_i(\E[r_m] - r_f)\)
  • The market is the single factor; market risk premium is \(\lambda\)
  • Nobel Prize 1990

3. Multi-Factor Extensions

Fama, E.F. & French, K.R. (1992). "The cross-section of expected stock returns." Journal of Finance, 47(2), 427-465. [14,994 citations]

Fama, E.F. & French, K.R. (1993). "Common risk factors in the returns on stocks and bonds." Journal of Financial Economics, 33(1), 3-56.

  • Extended single-factor CAPM to three factors (market, size, value)
  • Showed that bond factors are also priced
  • Foundation for using multiple principal components as factors

15.7.2 Method 1: Bond Yield Calibration

Using bond yields to anchor expected returns is standard practice in fixed-income portfolio management:

Theoretical Basis

Term Premium Literature

Campbell, J.Y. & Shiller, R.J. (1991). "Yield spreads and interest rate movements: A bird's eye view." Review of Economic Studies, 58(3), 495-514.

  • Yield-to-maturity approximates expected return for buy-and-hold investors
  • Term premium = compensation for duration risk

Cochrane, J.H. & Piazzesi, M. (2005). "Bond risk premia." American Economic Review, 95(1), 138-160.

  • Shows bond risk premia are predictable from yield curve shape
  • Supports using current yields to infer expected returns

Practical Implementation

Method 1's approach (calibrating \(\lambda\) from a reference bond) is analogous to:

  • Black-Litterman model: Using market equilibrium to derive expected returns
  • Reverse optimization: Backing out implied returns from observed prices

15.7.3 Method 2: Historical Returns

Using past performance to estimate expected returns is related to momentum and time-series predictability:

Momentum and Predictability Literature

Jegadeesh, N. & Titman, S. (1993). "Returns to buying winners and selling losers: Implications for stock market efficiency." Journal of Finance, 48(1), 65-91.

  • Documented momentum effect: past winners continue to outperform
  • 3-12 month holding periods show strongest momentum
  • Justifies using recent historical returns as predictors

Carhart, M.M. (1997). "On persistence in mutual fund performance." Journal of Finance, 52(1), 57-82. [16,548 citations]

  • Added momentum factor to Fama-French 3-factor model
  • Shows momentum is a priced risk factor

Time-Weighted Averaging

Julian's use of exponentially-weighted historical returns is standard in:

  • GARCH models: Recent observations get higher weight
  • Exponential smoothing: Decay parameter controls memory
  • RiskMetrics: J.P. Morgan's approach to volatility estimation

15.7.4 R-Squared Quality Check

Using R-squared to assess model reliability is fundamental in econometrics:

Variance Decomposition

Cochrane, J.H. (2005). Asset Pricing (Revised Edition). Princeton University Press.

  • Chapter 5: Factor models and variance decomposition
  • R-squared = fraction of variance explained by systematic factors
  • Low R-squared implies large idiosyncratic component (not captured by factor model)

Interpretation for Portfolio Management

R-squaredInterpretationReliability of \(\mu_i = \beta_i \lambda\)
> 80%Factor dominates riskHigh - factor model reliable
50-80%Mixed systematic/idiosyncraticModerate - use with caution
< 50%Idiosyncratic risk dominatesLow - consider alternatives

15.7.5 Practitioner References

Investment Management Texts

Ilmanen, A. (2011). Expected Returns: An Investor's Guide to Harvesting Market Rewards. Wiley.

  • Comprehensive treatment of expected return estimation
  • Chapters on historical vs forward-looking approaches
  • Discusses trade-offs between Methods 1 and 2

Grinold, R.C. & Kahn, R.N. (2000). Active Portfolio Management (2nd Edition). McGraw-Hill.

  • Chapter on alpha forecasting and information ratios
  • Factor model implementation for expected returns

Dimson, E., Marsh, P., & Staunton, M. (2002). Triumph of the Optimists: 101 Years of Global Investment Returns. Princeton University Press.

  • Long-run historical risk premia estimates
  • Global evidence on equity and bond returns
  • Provides context for Method 2's historical approach

15.7.6 Is Julian's Approach Standard?

Assessment

Yes, Julian's methods are standard practice in quantitative fixed-income portfolio management:

AspectJulian's ApproachAcademic/Industry Standard
Factor modelPCA-based factorsStandard (Fama-French, Barra, Axioma)
Lambda calibrationFrom 10Y bond yieldCommon (Black-Litterman uses market cap)
Historical returnsTime-weighted averageStandard (momentum, GARCH weighting)
R-squared checkVariance decompositionStandard diagnostic in factor models
Single reference asset10Y German BundCommon for EUR fixed-income

What makes Julian's approach practical:

  1. Uses readily observable market data (10Y yield)
  2. Leverages the existing BRISMA factor model
  3. Provides explicit quality metric (R-squared)
  4. Offers two complementary perspectives (forward vs backward-looking)