3. 委托代理模型:基础框架、效用函数、激励相容约束
好,咱们今天聊聊委托代理模型。说实话,这是道德风险里最经典、也最绕不开的一个框架。我当年刚入行做量化风控时,总觉得这玩意儿是经济学课本里的东西,离实际交易很远。直到有一次帮一家资管公司设计基金经理的考核方案,才真正体会到——你不把激励算清楚,人家就会钻空子。
3.1 基础框架:谁委托谁代理?
先搭个最简单的场景。你想想看,一个投资人(委托人)把钱交给基金经理(代理人)去管理。投资人希望收益最大化,但基金经理可能更关心自己的奖金、名声,甚至偷懒。这就是典型的利益冲突。
基础框架里,我们通常定义这么几个要素:
- 委托人:提供资本,承担风险,但无法直接观测代理人的行动。
- 代理人:负责操作,掌握信息优势,可能采取对委托人不利的行动。
- 契约:委托人设计的激励方案,比如固定工资加业绩提成。
- 产出:最终的投资收益,受代理人努力程度和随机因素共同影响。
我个人习惯把这个框架画成一个简单的流程图,方便理解各方关系:
嗯,这里要注意:委托人看不到代理人的努力程度,只能看到最终的产出。这就是信息不对称的核心。
3.2 效用函数:每个人都有自己的小算盘
搞量化的人,喜欢把一切抽象成数学函数。委托人和代理人的目标,说白了就是最大化各自的效用。
委托人的效用函数通常很简单:
U_principal = E[产出 - 支付给代理人的报酬]
说白了,就是扣除成本后的净收益。委托人希望这个值越大越好。
代理人的效用函数就复杂一些:
U_agent = E[报酬] - 努力成本
代理人拿到报酬会开心,但付出努力会痛苦。我见过不少模型把努力成本设成二次型:c(e) = 0.5 * k * e²,其中 e 是努力水平,k 是成本系数。系数越大,代理人越懒。
关键点:代理人的效用函数里,通常假设他是风险厌恶的。什么意思?就是给他一笔确定的钱,比让他去赌一把更开心。而委托人往往是风险中性的,因为可以分散投资。
我在项目中遇到过一家对冲基金,他们给交易员的报酬是纯提成制。结果呢?交易员全去押高杠杆的期权,赌对了拿大钱,赌错了拍拍屁股走人。这就是典型的风险偏好错配——代理人比委托人更爱冒险。
3.3 激励相容约束:别让代理人耍小聪明
好,框架有了,效用函数也定了。现在的问题是:委托人怎么设计契约,才能让代理人乖乖地选择高努力?
这就引出了激励相容约束(Incentive Compatibility Constraint, IC)。它的核心思想是:
代理人选择对自己最有利的行动。委托人设计的契约,必须让代理人觉得选择高努力比选择低努力更划算。
数学上,IC约束可以写成:
E[U_agent(高努力)] ≥ E[U_agent(低努力)]
除此之外,还有一个参与约束(Participation Constraint, PC):
E[U_agent] ≥ 保留效用(比如去别家公司的工资)
如果连这个都满足不了,代理人直接走人,不跟你玩了。
实战技巧:我建议在设计契约时,先算PC约束,再算IC约束。因为如果连参与都保证不了,激励就是空谈。我曾经帮一个私募做方案,一开始只盯着IC,结果发现代理人要求的保底工资太高,委托人根本赚不到钱。后来调整了风险分担比例,才找到平衡点。
3.4 一个简单的数值例子
光说理论太干,咱们来点实际的。假设一个基金经理有两种努力选择:
- 高努力:成本 = 10,产出 = 100(概率80%)或 50(概率20%)
- 低努力:成本 = 0,产出 = 100(概率20%)或 50(概率80%)
委托人设计契约:固定工资 w 加业绩提成 b(产出每多1元,代理人拿b元)。
咱们用Python算一下,什么样的 w 和 b 能同时满足IC和PC:
import numpy as np
# 参数设置
e_high_cost = 10
e_low_cost = 0
reservation_utility = 20 # 保留效用
# 产出分布
# 高努力: 产出100概率0.8, 产出50概率0.2
# 低努力: 产出100概率0.2, 产出50概率0.8
def expected_utility(w, b, effort):
if effort == 'high':
cost = e_high_cost
prob_100 = 0.8
prob_50 = 0.2
else:
cost = e_low_cost
prob_100 = 0.2
prob_50 = 0.8
# 代理人效用 = 期望报酬 - 努力成本
# 报酬 = w + b * 产出
expected_pay = prob_100 * (w + b * 100) + prob_50 * (w + b * 50)
return expected_pay - cost
# 搜索满足条件的w和b
for b in np.arange(0, 1.1, 0.1):
for w in np.arange(0, 30, 1):
u_high = expected_utility(w, b, 'high')
u_low = expected_utility(w, b, 'low')
# IC约束:高努力效用 >= 低努力效用
ic_ok = u_high >= u_low
# PC约束:高努力效用 >= 保留效用
pc_ok = u_high >= reservation_utility
if ic_ok and pc_ok:
print(f"w={w:.0f}, b={b:.1f} -> 高努力效用={u_high:.1f}, 低努力效用={u_low:.1f}")
运行结果会显示,比如 w=10, b=0.5 就是一个可行解。你想想看,如果 b 太低(比如0.1),代理人拿不到足够激励,肯定选择偷懒。如果 b 太高(比如0.9),委托人自己赚不到钱。
避坑指南:我曾经犯过一个错误——只盯着IC约束,忽略了代理人的风险厌恶。如果代理人极度厌恶风险,你给他再高的提成比例,他也不敢冒险。这时候需要加入确定性等价的概念,把风险溢价算进去。嗯,这个咱们后面章节会细讲。
3.5 委托代理模型的现实意义
搞懂了这套框架,你会发现很多金融现象背后都是这个逻辑:
| 场景 | 委托人 | 代理人 | 激励问题 |
|---|---|---|---|
| 基金经理考核 | 投资者 | 基金经理 | 过度冒险、风格漂移 |
| 贷款审批 | 银行 | 信贷员 | 放松标准、人情贷 |
| 量化交易 | 公司 | 交易员 | 过度交易、隐藏亏损 |
说白了,只要存在信息不对称和利益冲突,委托代理模型就能派上用场。我个人习惯在搭建风控模型前,先画一张委托代理的框架图,把各方的效用函数列清楚。这一步做好了,后面的量化设计才不会跑偏。
好,这一章就到这里。记住三个关键词:基础框架、效用函数、激励相容约束。下次你设计考核方案时,不妨先问问自己:代理人会怎么选?
公众号:蓝海资料掘金营,微信deep3321