资产配置问题

常见设置

  1. 投资者的效用为均值方差型:
$$ E[U(r_p)]=E(r_p)-\frac{A}{2}Var(r_p) $$

其中$r_p$为投资组合的回报率,其与各产品回报率的关系为 其中需要注意的是$w_i$为资金权重;$r_i$为产品$i$的投资回报率。$A$刻画了投资者对于风险或者说不确定性的厌恶程度,其值越大,投资者越厌恶风险。

  1. 投资者对于各产品期望收益有明确的判断。即$E(r_i)$已给出。
  2. 投资者对于产品的风险——以方差描述有充分的认识并且能够识别相互之间的相关性。即 已给出。

当然我们完全可以对于这些给出的参数是如何估计的,以及它们的估计误差带来的计算结果的不确定进行讨论。实际上这些讨论是必要并且有趣的,在实际应用中也有非常重要的结果。但是目前,我们先接受这些给出的已知,来看看基于此会得到什么样的结果。然后,我们在后续的讨论中再回过头来分析这些参数的估计问题。

简单例子

问题描述

一个FOF管理人,在其可投资的基金中选出了2只基金,估计其下一年收益以及风险为:

基金 期望收益 标准方差 协方差
A 15% 18% 0
B 12% 15% 0

受限于监管,无做空方法。同时为准备流动性,要求不低于10%的资产投资于银行存款等高流动性,基本无风险的产品,其收益率为3%左右。

数学描述

我们预判投资者的风险偏好系数$A=3$。我们面对的问题是在有约束条件的情况下获得投资者的效用最大化。

约束于

其中$w_A,w_B$分别是投资于基金A和B的资金权重;总投资组合回报$r_p$满足

R实现

R是一个交互式的统计计算交互式环境与编程语言,它是学界的挚爱也是工业界的新宠。在 www.r-project.org 网站可以免费获取。R已经包括了很多的金融计算模块用来解决资产配置的问题。此处我们使用一个相对基础一点模块来解决我们的问题,为的是把更多的细节展现出来。 包quadprog是用来解决二项式非线性带约束优化问题的。它处理的优化问题的数学表述为

目标 $\min -d^t x + \frac{1}{2}x^t D x$
约束 $A^tx\geq x_0$

安装计算包

install.packages('quadprog')

参数赋值与函数调用

require(quadprog)
Dmat<-matrix(0,2,2)
Dmat[1,1]=0.18^2*3
Dmat[2,2]=0.15^2*3
dvec<-c(0.15-0.03,0.12-0.03)
Amat<-matrix(c(-1,-1),2,1)
xvec<-c(-0.9)
solve.QP(Dmat,dvec,Amat,xvec)

输出

$solution
[1] 0.5510018 0.3489982

$value
[1] -0.07866421

$unconstrained.solution
[1] 1.234568 1.333333

$iterations
[1] 2 0

$Lagrangian
[1] 0.06644262

$iact
[1] 1

即:总资产的55.1%投向基金A,34.9%投向基金B,而剩下的10%投向银行存款或类似的货币产品。而同时计算结果也给出了在无约束情况下的资产配置的情况作为对比。在无约束的情况下,最大的投融资活动是借款——投资者偏好使用越1:1.5的杠杆;而最大的资金投向是基金B,这与约束情况下超过50%的资金投向基金A是不一致的。