01它问的是什么问题(The Question It Poses)
你手上有一个会波动的量:明年的客流、这批零件的应力、这次给药的剂量、服务器的并发数。你通常只知道它的平均值。于是你把平均值代进公式,算出一个结果,然后拿这个结果去做计划。
这个动作合不合法?答案完全取决于一件事:结果对这个量的响应曲线是直的还是弯的。直的时候代平均值毫无问题;弯的时候,你算出来的那个数根本不是平均结果,而且偏差有固定方向。Jensen 不等式回答的就是这个方向朝哪儿、以及为什么必然朝那儿。
02规则本身(The Rules)
- 有一个会波动的输入 x,和一个把它变成结果的函数 f;你关心的是 f(x)。
- 在某个区间上,如果曲线上任取两点、把它们连成一条直线(叫作弦),这条弦总是落在曲线上方,就说 f 在这段区间上是凸的(convex);弦总在下方就是凹的(concave);弦与曲线重合就是直线。
- Jensen 不等式:f 凸时,"结果的平均" ≥ "平均的结果";f 凹时不等号反过来;f 是直线时两者相等。用记号写就是 E[f(x)] ≥ f(E[x]),其中 E[·] 读作"取平均"。
- 差多少,由两件事决定:曲线弯得多厉害(二阶导数 f″)和 x 波动得多大(方差)。波动不大时有个好用的近似:落差 ≈ ½ × f″ × 方差。
- 不想求导也能测:把 x 往上下各推同样的幅度,把两侧结果的变化量绝对值比一比。下行大于上行 = 凹,反过来 = 凸。
第 2 条里"弦在上方"这个说法值得记住,因为它就是整件事的图像版:弦上的每个点,都是"两端结果按比例平均";曲线上的对应点,是"先把输入平均、再算结果"。两者不重合,正是波动的全部效果。
凸函数上,任意两点的弦都在曲线上方。弦与曲线之间的那段距离,就是波动带来的全部差别。
03跑起来会看到什么(What You See When It Runs)
做一个最能说明问题的实验:把平均值钉死,只调波动。让 x 的平均值一直是 100,先让它完全不动,再让它在 90 和 110 之间跳,最后让它在 60 和 140 之间跳。三种情况下的平均值一模一样。
三组的平均值完全相同,只有波动在变。凸的那条靠波动赚钱,凹的那条靠波动亏钱。
凸响应的平均结果一路上升,凹响应的一路下降。均值一动没动,结果却在系统性地移动——这就是"波动本身有价格"的来源。金融里给这个敏感度起了个名字叫 vega:期权价格随波动率上升而上升,说到底就是因为期权的收益结构是凸的。
反过来这也给出了一个诊断法:如果有人的方案"平均看没问题、就是怕波动",那不是心理素质问题,是他手上那条曲线是凹的。
04它解释了现实中的什么(What It Explains)
凸性的应用面宽得有点吓人,因为"弯曲的响应"实在太普遍了:
期权定价:波动率越高期权越贵,是 Jensen 的直接后果。放射治疗的分次给药:正常组织的损伤里有一项随单次剂量平方增长(凸),所以同样的总剂量分成几十次给,损伤显著更小。容量规划:排队延迟随利用率是凸的,用平均利用率估算高峰体验会严重乐观。工期估计:一堆并行任务的完工时间取决于最慢的那个,而"取最大值"是一个凸运算,所以用每项的平均工期算出来的总工期,系统性地早于实际。投资的波动拖累:复利下长期增长率取决于几何平均,而几何平均总是小于等于算术平均,差距随波动增大——这也是同一条不等式。农业与气候:作物产量对高温的响应在阈值之上急剧变凹,因此只看"平均升温多少"会低估损失,真正要看的是极端高温天数的分布。
共同的教训只有一句:凡是关系弯曲的地方,"平均值"这个词就不再是一个中性的概括,而是一个带方向的错误。
它不能解释什么(What It Cannot Explain)
- 不能告诉你差多少。Jensen 只保证方向,不给量级。方向本身已经很有用(知道自己在被系统性高估还是低估),但要回答"到底差多少",必须真的把分布代进去算,或者做模拟。
- 不能跨出区间。凸凹几乎总是局部性质:同一条曲线可以在一段凸、另一段凹(S 形曲线到处都是)。把某一段测出的结论外推到全程,是这个工具最常见的误用,也是"某某东西反脆弱"这类断言翻车的主要方式。
- 不能处理"波动改变了函数本身"的情况。不等式假定 f 固定不变,只有 x 在动。可现实里大的波动常常把规则本身改掉:对手换打法、监管介入、供应商倒闭。这时前提已经不成立,再套公式只是自我安慰。
- 不能替你决定纵轴是什么。凹凸随纵轴的定义整个翻转(时间还是结果、成本还是收益)。任何没说清"纵轴是什么、越大越好还是越小越好"的凸性讨论,都无法判断对错。
- 不能给你概率。它讲的是同一个分布下两种算法的关系,完全不告诉你 x 实际怎么分布、尾巴有多厚。要知道尾巴,得另做功课。