2、投资组合基础:收益、风险、协方差矩阵、有效前沿的基本概念与计算

投资组合理论是现代资产配置与组合构建的基石。无论是量化选股、行业轮动还是大类资产配置,最终都要落到“如何度量一组资产的收益与风险”以及“如何在收益与风险之间做出权衡”这两个核心问题上。本章将系统梳理单个资产与组合的收益/风险度量方法、协方差矩阵的数学含义与计算路径,并推导马科维茨有效前沿的构建逻辑,为后续章节中的优化求解与约束处理奠定数学与金融学基础。

投资组合基础概念关系图 投资组合构建 收益度量 单期收益率 年化收益率 期望收益率 组合收益率 风险度量 方差/标准差 下行风险 VaR/CVaR 跟踪误差 协方差矩阵 Σ σ₁² σ₁₂ σ₁₃ σ₂₁ σ₂² σ₂₃ σ₃₁ σ₃₂ σ₃² 有效前沿 最小方差 最高夏普

2.1 收益的度量:从单期收益率到组合期望收益

核心原理

收益是投资回报的量化表达。在组合构建中,我们通常使用简单收益率(算术收益率)或对数收益率。简单收益率 \( R_t = (P_t - P_{t-1}) / P_{t-1} \) 直观易懂,但对多期加总时存在近似误差;对数收益率 \( r_t = \ln(P_t / P_{t-1}) \) 具有时间可加性,更适合统计建模与优化计算。对于组合而言,若资产权重向量为 \( \mathbf{w} = (w_1, w_2, ..., w_n)^T \),各资产期望收益率向量为 \( \boldsymbol{\mu} = (\mu_1, \mu_2, ..., \mu_n)^T \),则组合期望收益为:

\( \mu_p = \mathbf{w}^T \boldsymbol{\mu} = \sum_{i=1}^{n} w_i \mu_i \)

这一线性关系是组合优化中目标函数的基础。需要注意的是,权重 \( w_i \) 必须满足预算约束 \( \sum w_i = 1 \),且在实际操作中通常还要求 \( w_i \geq 0 \)(禁止做空)或允许 \( w_i < 0 \)(允许做空)。

判断方法与操作流程

  1. 数据清洗:剔除停牌、退市、异常跳空数据,处理分红送转(使用后复权价格)。
  2. 收益率计算:对每只资产计算日/周/月收益率序列,推荐使用对数收益率以消除偏度影响。
  3. 年化处理:日收益率年化乘以252(交易日),周收益率年化乘以52,月收益率年化乘以12。
  4. 期望收益估计:常用方法包括历史均值法、CAPM隐含收益法、因子模型预测法。历史均值法简单但噪声大,建议结合行业景气度或分析师预期进行修正。
经验提醒:在组合优化中,期望收益的估计误差远大于协方差矩阵的估计误差。建议对μ采用“收缩估计”或“贝叶斯调整”,避免极端权重出现。

案例拆解:三资产组合的收益计算

假设某投资组合包含三只资产:沪深300ETF(权重40%)、中证500ETF(权重35%)、国债ETF(权重25%)。过去一年各资产的年化收益率分别为:8.5%、12.0%、3.2%。则组合期望收益为:

\( \mu_p = 0.40 \times 8.5\% + 0.35 \times 12.0\% + 0.25 \times 3.2\% = 3.4\% + 4.2\% + 0.8\% = 8.4\% \)

若将权重调整为50%沪深300、20%中证500、30%国债,则组合收益变为 \( 0.50 \times 8.5\% + 0.20 \times 12.0\% + 0.30 \times 3.2\% = 4.25\% + 2.4\% + 0.96\% = 7.61\% \)。可见,权重变化直接影响组合收益,优化求解的核心就是寻找最优权重向量。

常见误区

  • 混淆算术平均与几何平均:多期收益应使用几何平均(时间加权),但组合优化中通常使用单期期望收益的算术平均。
  • 忽略无风险利率:在计算超额收益时,应减去无风险利率(如国债收益率),否则优化结果会偏向高波动资产。
  • 权重未归一化:所有资产权重之和必须等于1,否则组合收益计算失真。

2.2 风险的度量:方差、标准差与协方差矩阵

核心原理

风险在经典投资组合理论中定义为收益率的波动性,即方差或标准差。单个资产的方差 \( \sigma_i^2 = E[(R_i - \mu_i)^2] \) 衡量其自身波动程度。但组合的风险不仅取决于各资产自身波动,还取决于资产之间的相关性。协方差 \( \sigma_{ij} = E[(R_i - \mu_i)(R_j - \mu_j)] \) 描述两资产收益的协同变动关系。组合方差的计算公式为:

\( \sigma_p^2 = \mathbf{w}^T \boldsymbol{\Sigma} \mathbf{w} = \sum_{i=1}^{n} \sum_{j=1}^{n} w_i w_j \sigma_{ij} \)

其中 \( \boldsymbol{\Sigma} \) 为 \( n \times n \) 协方差矩阵,对角线元素为各资产方差,非对角线元素为两两协方差。协方差矩阵是组合优化的核心输入,其质量直接决定优化结果的可靠性。

协方差矩阵的估计方法

方法原理优点缺点
历史样本协方差直接计算样本协方差矩阵简单、无偏噪声大、维度灾难(n>T时奇异)
收缩估计(Ledoit-Wolf)将样本协方差向结构化目标(如单位矩阵)收缩降低估计误差、保证正定性需要选择收缩强度参数
因子模型协方差基于多因子模型(如Barra、Fama-French)分解结构清晰、参数少依赖因子选择,可能遗漏特质风险
DCC-GARCH动态条件相关模型捕捉时变相关性计算复杂、样本需求高

操作流程:构建协方差矩阵

  1. 确定资产池:选择n个待配置资产,通常为5-30个。
  2. 收益率序列对齐:确保所有资产在同一时间区间内有完整数据。
  3. 计算样本协方差:\( \hat{\sigma}_{ij} = \frac{1}{T-1} \sum_{t=1}^{T} (r_{it} - \bar{r}_i)(r_{jt} - \bar{r}_j) \)。
  4. 诊断与修正:检查矩阵是否正定(所有特征值大于0),若不正定则需收缩或正则化处理。
风险提示:当资产数量n接近或超过样本期长度T时,样本协方差矩阵将不可逆或严重病态,直接用于优化会产生极端权重。此时必须采用收缩估计或因子模型降维。

案例拆解:两资产组合的风险分散效应

考虑两个资产A和B,标准差分别为20%和30%,相关系数ρ=0.3。若等权重配置(w_A=w_B=0.5),则组合方差为:

\( \sigma_p^2 = 0.5^2 \times 0.2^2 + 0.5^2 \times 0.3^2 + 2 \times 0.5 \times 0.5 \times 0.3 \times 0.2 \times 0.3 \)

\( = 0.01 + 0.0225 + 0.009 = 0.0415 \),即 \( \sigma_p = 20.37\% \)

组合标准差20.37%低于A和B标准差的加权平均25%,体现了分散化降低风险的效果。若相关系数ρ=-1,组合方差可降至0(完全对冲),但现实中负相关资产稀缺。

常见误区

  • 忽略协方差只关注方差:组合风险的核心在于协方差结构,而非单个资产方差。
  • 使用日频数据直接年化:日频协方差年化需乘以252,但日频数据噪声较大,建议使用周频或月频数据。
  • 未处理极端值:收益率序列中的极端值(如股灾日)会显著扭曲协方差估计,建议进行Winsorize处理。

2.3 有效前沿:从可行集到最优边界

核心原理

有效前沿(Efficient Frontier)是马科维茨均值-方差框架下的核心概念。给定n个资产的期望收益向量μ和协方差矩阵Σ,所有可能的组合权重w构成可行集。在可行集中,对于任意风险水平,期望收益最高的组合;或对于任意期望收益水平,风险最低的组合,构成有效前沿。数学上,有效前沿通过求解以下二次规划问题获得:

\( \min_{\mathbf{w}} \frac{1}{2} \mathbf{w}^T \boldsymbol{\Sigma} \mathbf{w} \quad \text{s.t.} \quad \mathbf{w}^T \boldsymbol{\mu} = \mu_0, \quad \mathbf{w}^T \mathbf{1} = 1 \)

其中 \( \mu_0 \) 为目标期望收益。通过改变 \( \mu_0 \) 并重复求解,可得到一系列最优组合,连接这些组合即形成有效前沿曲线。

有效前沿的几何特征

  • 最小方差组合(MVP):前沿最左端的点,对应全局最小方差。
  • 上半部分为有效前沿:从MVP向上延伸的曲线,下半部分为无效前沿(相同风险下收益更低)。
  • 加入无风险资产后:有效前沿变为资本市场线(CML),切点组合为市场组合。

计算流程:Python实现有效前沿

import numpy as np
import pandas as pd

# 假设mu为期望收益向量,Sigma为协方差矩阵
def efficient_frontier(mu, Sigma, n_points=100):
    # 获取资产数量
    n = len(mu)
    # 生成目标收益范围
    mu_min, mu_max = mu.min(), mu.max()
    target_mu = np.linspace(mu_min, mu_max, n_points)
    # 存储结果
    results = []
    for mu_target in target_mu:
        # 定义优化问题:最小化 0.5 * w^T Σ w
        # 约束:w^T μ = mu_target, w^T 1 = 1
        # 使用拉格朗日乘子法解析求解
        ones = np.ones(n)
        Sigma_inv = np.linalg.inv(Sigma)
        # 构建矩阵
        A = np.array([[mu @ Sigma_inv @ mu, mu @ Sigma_inv @ ones],
                      [ones @ Sigma_inv @ mu, ones @ Sigma_inv @ ones]])
        b = np.array([mu_target, 1])
        # 求解拉格朗日乘子
        lmbda = np.linalg.solve(A, b)
        # 计算最优权重
        w = Sigma_inv @ (lmbda[0] * mu + lmbda[1] * ones)
        # 计算组合风险
        sigma_p = np.sqrt(w @ Sigma @ w)
        results.append((mu_target, sigma_p, w))
    return results

案例拆解:三资产有效前沿构建

假设三只资产的年化收益率为μ=(10%, 12%, 6%),协方差矩阵为:

Σ = [[0.04, 0.01, 0.005], [0.01, 0.09, 0.002], [0.005, 0.002, 0.01]]

通过求解上述优化问题,可得到有效前沿上的关键组合:

组合类型权重(资产1,2,3)期望收益标准差
最小方差组合(0.42, 0.15, 0.43)8.1%12.3%
目标收益9%(0.55, 0.25, 0.20)9.0%13.8%
目标收益11%(0.30, 0.65, 0.05)11.0%18.2%

从结果可见,随着目标收益提高,组合权重向高收益高波动资产(资产2)倾斜,标准差同步上升。有效前沿上的每个点都是在给定收益下风险最小的组合。

常见误区与复盘

  • 有效前沿不是直线:在均值-方差框架下,有效前沿是凸曲线,除非所有资产完全正相关。
  • 输入敏感性:μ和Σ的微小变化会导致前沿显著移动,建议进行敏感性分析或采用稳健优化。
  • 忽略约束条件:实际组合构建中常有权重上下限、行业中性、换手率约束等,这些约束会改变前沿形状。
总结复盘:本章核心在于理解“收益-风险-相关性”三位一体的分析框架。收益用期望值度量,风险用方差度量,资产间关系用协方差矩阵刻画。有效前沿将这三者统一为一条可操作的曲线,为后续章节中的最优化求解(如风险平价、最大夏普、BL模型)提供了基准框架。实际应用中,务必重视协方差矩阵的估计质量,并考虑约束条件对前沿的影响。