Markowitz均值-方差模型
Markowitz均值-方差模型是现代投资组合理论的基础,由Harry Markowitz于1952年提出,他因此获得了1990年诺贝尔经济学奖。这一模型也被称为现代投资组合理论(MPT)。
核心思想
Markowitz模型的核心思想是通过构建不同权重的资产组合,在一定风险水平下寻求最大收益,或在一定收益目标下寻求最小风险。
关键概念:
- 风险分散化 - 资产间相关性不完全正相关时可降低组合风险
- 有效前沿 - 所有风险收益最优组合的集合
- 效用最大化 - 投资者根据风险偏好在有效前沿上选择最优点
数学表达
组合预期收益率
组合方差(风险)
其中:
- - 组合预期收益率
- - 资产i的权重
- - 资产i的预期收益率
- - 组合方差
- - 资产i的标准差
- - 资产i和j的相关系数
优化问题
Markowitz模型可以表述为以下优化问题:
-
最小化风险: 在给定预期收益率的条件下最小化投资组合方差
-
最大化收益: 在给定风险水平下最大化投资组合预期收益率
-
最大化夏普比率: 最大化单位风险下的超额收益(通常用于无约束优化)
与其他模型的关系
- CAPM模型:CAPM可视为Markowitz模型的延伸,引入无风险资产
- Black-Litterman模型:对Markowitz模型的改进,融合了市场均衡观点和投资者主观判断
- Fama-French多因子模型:扩展了风险因子考量范围
实践方法
Markowitz模型的实际应用步骤:
- 选取资产:选择多只具有一定相关关系的资产
- 计算统计量:估计各资产的预期收益率、标准差和相关系数
- 构建协方差矩阵:基于历史数据或其他方法
- 设定约束条件:如权重约束、行业约束等
- 求解优化问题:使用二次规划等数值方法
- 分析敏感性:测试模型对输入参数变化的敏感程度
Python实现
使用Python实现Markowitz模型的示例代码:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.optimize import minimize
# 假设已有资产收益率数据
returns = pd.DataFrame([...]) # 各资产历史收益率
# 计算预期收益和协方差
mean_returns = returns.mean()
cov_matrix = returns.cov()
# 定义优化函数
def portfolio_volatility(weights, mean_returns, cov_matrix):
return np.sqrt(np.dot(weights.T, np.dot(cov_matrix, weights)))
def portfolio_return(weights, mean_returns):
return np.sum(mean_returns * weights)
# 设置约束条件
constraints = ({'type': 'eq', 'fun': lambda x: np.sum(x) - 1}) # 权重和为1
bounds = tuple((0, 1) for asset in range(len(mean_returns))) # 权重在0到1之间
# 最小化风险的优化问题
def min_volatility(mean_returns, cov_matrix, constraints, bounds):
n_assets = len(mean_returns)
args = (mean_returns, cov_matrix)
initial_guess = np.array([1/n_assets] * n_assets)
result = minimize(portfolio_volatility,
initial_guess,
args=args,
method='SLSQP',
bounds=bounds,
constraints=constraints)
return result['x']
# 获取最小风险组合的权重
min_vol_weights = min_volatility(mean_returns, cov_matrix, constraints, bounds)
局限性与挑战
Markowitz模型存在几个主要局限:
- 输入敏感性:对预期收益和协方差估计极为敏感
- 极端权重:常导致集中投资于少数资产
- 静态模型:不考虑市场条件变化
- 假设偏离:假设收益率服从正态分布,忽略尾部风险
改进方向
为解决上述问题,实务中常采用以下改进:
- 正则化方法:如收缩估计、Ridge回归等
- 稳健优化:考虑参数估计的不确定性
- 约束添加:添加更多实际约束如换手率限制
- Black-Litterman模型:结合市场均衡和主观观点