随机性是税——直到它不是
点击上方的“激活”,即可运行本文中的代码单元格。
本文是夏普邮报的配套内容,旨在深入探讨随机性既有益于我们、又可能带来负面影响的各种场景。
让我们将许多现实世界中的场景抽象为以下形式:
假设你得到一个随机变量X,而你或许对它的均值或分布有一定的控制权。随后,生活会将这个随机变量通过某个函数f进行处理,而你最终观察到的结果就是f(X)。
这是一种简单的世界观,却能很好地捕捉到大量令人惊讶的情境。
选取三种不同的场景
场景1
$f$ 是线性的。
假设你用一枚公平的硬币换取1美元,或者干脆选择不参与任何游戏。
如果你的效用仅仅等同于金钱本身,即$f(X) = X$,那么:
[E[X] = 0]
在两种情况下,结果都是一样的。
没有任何特别有趣的事情发生。
场景2
现在,假设你手头有1万美元——这可是一笔不小的数目——并且有两种投资选项:(i) 每年都能获得10%的稳定回报;(ii) 每年有50%的概率获得收益,同时有50%的概率遭遇-30%的亏损。
如果你必须长期持有这些投资,你会更倾向于选择哪一种呢?
如果只投资一年,那么预期收益其实相当接近:第一种方案能让你稳稳地拿到1.1万美元,而第二种方案则有50%的概率获得1.5万美元,也有50%的概率只拿到7000美元,因此其预期价值同样为1.1万美元。
不过,我们之前已经说过,你追求的是长期投资的成果。
在阅读更多相关内容之前,请先仔细思考这一练习。打开计算器,必要时在脑海中进行模拟,然后看看自己更倾向于选择哪一种。
假设你在T年后拥有的财富为:
[W_T = W_0 \prod_{t=1}^{T}(1+r_t)]
需要注意的是,收益并不是简单相加,而是相乘。
因此,与其直接计算$E[r]$,不如取对数:
[log(W_T) = log(W_0) + \sum_{t=1}^{T}\log(1+r_t)]
所以,长期的收益率增长速度由以下公式决定:
[E[\log(1+r)]]
对于选项(i):
[log(1.1) ≈ 0.0953]
对于选项(ii):
[\\frac{1}{2}\\log(1.5) + \\frac{1}{2}\\log(0.7) ≈ 0.0244]
尽管两者在算术意义上都拥有相同的10%预期收益率,但它们的长期复利增长率却大相径庭。
更一般地说,对于小幅度的收益:
[log(1+r) ≈ r - \\frac{r^2}{2}]
取期望值:
[E[\log(1+r)] ≈ E[r] - \\frac{1}{2}E[r^2]]
如果$\mu = E[r]$,$\sigma^2 = Var(r)$,那么:
[E[r^2] = \mu^2 + \sigma^2]
因此:
[E[\log(1+r)] ≈ \mu - \\frac{1}{2}\\mu^2 - \\frac{1}{2}\\sigma^2]
忽略掉$\mu^2$这一项后:
[E[\log(1+r)] ≈ \mu - \\frac{1}{2}\\sigma^2]
这就是波动率带来的拖累。方差悄然间对你造成了负担。
在这里,相关函数是$f(x) = \\log{x}$,而随机性最终变成了一种“税”。
场景3
假设有一份股票看涨期权。假设这只股票明天将以50%的概率达到80美元,或者以50%的概率达到120美元。那么,如果行使价为100美元,这份看涨期权的到期收益会是多少呢?
(实际上,它相当于以当前股票的“合理”价格买入该期权。)从直觉上来看,这似乎毫无价值——为什么我要花钱去以与明天股票预期价格相等的价格买入期权呢?
然而,不妨比较一下购买该期权后的预期收益:你将以50%的概率赚到20美元,也会以50%的概率空仓获利0美元,因此预期收益为10美元。
也就是说,该期权的价值为10美元。如果你在市场上看到该期权的价格更低,那就应该果断买入。此外,还要注意到,如果股票的波动性更高,比如达到70/130或60/140,那么期权的预期收益还会更高;因此,股票的波动性越大,期权的价值也就越高。
这也正是为什么做多期权意味着你是在押注波动率的上升。
在这里,相关函数是:$f(S) = \\max(S-100,0)$,其中$S$代表到期时的股票价格,而随机性最终变成了资产。
规律
至此,我们已经见识了随机性:
- 随机性什么也不做
- 随机性会对我们造成伤害
- 随机性反而能帮助我们
究竟发生了什么变化?
在场景1中,$f$ 是线性的。$f(x) = x$
这里没有曲率。随机性既不会带来益处,也不会造成伤害。真正重要的只有均值。
在场景2中,$f$ 是凹函数。$f(x) = \\log x$
糟糕的结果造成的伤害远大于好结果带来的帮助。随机性最终成了一种“税”。
在场景3中,$f$ 是凸函数。$f(S) = \\max(S-100,0)$
糟糕的结果被限制在零,而好的结果则持续增长。随机性最终化身为资产。
这种现象可以用杰森不等式来概括。
对于凸函数:$E[f(X)] \\geq f(E[X])$
对于凹函数:$E[f(X)] \\leq f(E[X])$
杰森演示
import numpy as np
import matplotlib.pyplot as plt
# 使用同一随机变量
# 将X视为明天的股票价格
x_vals = np.array([80, 120])
probs = np.array([0.5, 0.5])
EX = np.sum(probs * x_vals)
functions = [
("线性:$f(x)=x$", lambda x: x),
("凸函数:看涨期权 $f(x)=\\max(x-100,0)$", lambda x: np.maximum(x - 100, 0)),
("凹函数:$f(x)=\\log(x)$", lambda x: np.log(x))
]
x_grid = np.linspace(60, 140, 400)
fig, axes = plt.subplots(1, 3, figsize=(15, 4))
for ax, (title, f) in zip(axes, functions):
y_grid = f(x_grid)
y_vals = f(x_vals)
EfX = np.sum(probs * y_vals)
fEX = f(EX)
gap = EfX - fEX
ax.plot(x_grid, y_grid)
ax.scatter(x_vals, y_vals, s=90, color="red", zorder=3, label="X可能的取值")
ax.scatter([EX], [fEX], s=110, zorder=4, label="$f(E[X])$")
ax.axvline(EX, linestyle="--", alpha=0.6)
ax.axhline(EfX, linestyle=":", alpha=0.8, label="$E[f(X)]$")
ax.set_title(title)
ax.set_xlabel("$X$")
ax.set_ylabel("$f(X)$")
ax.legend(fontsize=8)
ax.text(
0.03, 0.95,
f"$E[X]$ = {EX:.1f}\n"
f"$f(E[X])$ = {fEX:.3f}\n"
f"$E[f(X)]$ = {EfX:.3f}\n"
f"差距 = {gap:.3f}",
transform=ax.transAxes,
verticalalignment="top",
bbox=dict(boxstyle="round", alpha=0.15)
)
plt.tight_layout()
plt.show()import numpy as np
import matplotlib.pyplot as plt
# 使用同一随机变量
# 将X视为明天的股票价格
x_vals = np.array([80, 120])
probs = np.array([0.5, 0.5])
EX = np.sum(probs * x_vals)
functions = [
("线性:$f(x)=x$", lambda x: x),
("凸函数:看涨期权 $f(x)=\\max(x-100,0)$", lambda x: np.maximum(x - 100, 0)),
("凹函数:$f(x)=\\log(x)$", lambda x: np.log(x))
]
x_grid = np.linspace(60, 140, 400)
fig, axes = plt.subplots(1, 3, figsize=(15, 4))
for ax, (title, f) in zip(axes, functions):
y_grid = f(x_grid)
y_vals = f(x_vals)
EfX = np.sum(probs * y_vals)
fEX = f(EX)
gap = EfX - fEX
ax.plot(x_grid, y_grid)
ax.scatter(x_vals, y_vals, s=90, color="red", zorder=3, label="X可能的取值")
ax.scatter([EX], [fEX], s=110, zorder=4, label="$f(E[X])$")
ax.axvline(EX, linestyle="--", alpha=0.6)
ax.axhline(EfX, linestyle=":", alpha=0.8, label="$E[f(X)]$")
ax.set_title(title)
ax.set_xlabel("$X$")
ax.set_ylabel("$f(X)$")
ax.legend(fontsize=8)
ax.text(
0.03, 0.95,
f"$E[X]$ = {EX:.1f}\n"
f"$f(E[X])$ = {fEX:.3f}\n"
f"$E[f(X)]$ = {EfX:.3f}\n"
f"差距 = {gap:.3f}",
transform=ax.transAxes,
verticalalignment="top",
bbox=dict(boxstyle="round", alpha=0.15)
)
plt.tight_layout()
plt.show()在这三幅图中,随机变量始终相同:$X$要么是80美元,要么是120美元,且概率相等。唯一改变的是函数的形式。
对于线性函数,随机性什么也不做。
对于看涨期权,随机性起到了积极作用:$E[f(X)] > f(E[X])$。
对于对数函数,随机性却带来了负面影响:$E[f(X)] < f(E[X])$。
不等式只是数学上的表达而已。关键在于随机性如何与函数的曲率相互作用。
其他例子
- 保险定价:从原始的预期价值角度来看,保险往往显得像一笔“亏本”的交易;然而,当您具有风险厌恶心理,也就是您的效用函数是$\\log{W}$或$\\sqrt{W}$,其中$W$代表您的财富时,保险实际上有助于降低您财富的波动性,从而变得颇具价值。当财富经过一个凹函数的效用函数时,降低波动性反而能创造价值。这也是为什么尽管保险的原始预期价值为负,但它们依然存在,并且发挥着重要作用。
- 杠杆ETF:TQQQ在横盘市中长期持有时,之所以容易遭受损失,是有原因的。(当$\sigma$较高时)$E[log(1+r)]$会变为$E[log(1+3r)] \\approx 3\\mu - \\frac{9}{2}\\sigma^2$。请注意,波动率拖累的规模扩大了9倍,而预期收益仅提升了3倍,因此波动率拖累逐渐占据了主导地位。
值得深思:许多现实世界系统并非线性。在“胜者为王”的体系中,收益函数往往呈凸形。创业公司、科研领域、内容的传播力、体育运动,以及某些职业,往往带有这样的特征:大多数尝试都收效甚微,但一个异常出色的成果却能彻底改变一切。在这样的体系中,随机性未必只是噪音,它甚至可能是你通往收益高点的钥匙。
结论
我们大多数人曾在学校里接触过杰森不等式,解了几道习题,然后便认为这只是又一个数学公式而已。然而,许多现实世界的决策都可以被建模为:将一个随机变量通过某个函数进行处理,并关注输出的预期值。
无论是从投资机会中做出选择,还是购买保险,抑或是决定使用多少杠杆,我们往往都在隐含地决定要向何种程度的随机性敞开心扉。杰森不等式告诉我们,答案不仅取决于随机性本身,还取决于它所经过的函数的形状。
随机性本身并不一定是好是坏。
在线性系统中,随机性往往会被冲淡、被抹去。
在凹函数系统中,随机性则会变成一种“税”。
在凸函数系统中,随机性则会化身为资产。