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算一下,什么样的 wb 能同时满足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