M5.0 保險為什麼存在:Convex Function 與 Jensen 不等式
本篇重用M1.1從鞋子猜身高:Conditional Expectation·M0.2導航的三十秒:Taylor 展開與「假設直線」
一筆穩賠的交易
你一年付 6,000 元的機車險。保險公司的資料說:像你這樣的騎士,一年裡有 2% 的機率出一次事故、平均賠 20 萬,其他 98% 什麼事也沒有。算一下期望損失: 元。你付 6,000,拿回的期望值是 4,000——平均而言你每年虧 2,000,保險公司每年賺 2,000。
這筆交易對雙方都是自願的,而且幾百年來一直存在。請先用直覺回答:一筆平均讓你虧錢的交易,你為什麼還是買?寫下你有多確定、依據是什麼。
課堂上的回答大致是「因為我怕」「因為 20 萬我付不出來」「因為安心」。這些都對,但它們說不出為什麼「怕」可以值 2,000 元、而不是 200 元或 20,000 元——也說不出保險公司為什麼不怕。這一篇要把「怕」寫成一條曲線的形狀,然後那個 2,000 元就會有一個數學位置。
課堂提問Q1
翻成數學。這裡的隨機變數是什麼?「你在意的東西」是它的哪個函數?「平均虧 2,000」比較的是哪兩個量——而它漏掉了哪個量?
先想一想,再展開看整理後的答案
隨機變數是你的年度損失 :以 0.98 的機率是 0,以 0.02 的機率是 200,000。。
「平均虧 2,000」比較的是保費 6,000 與 。這個比較假設你在意的是金額本身。但你在意的其實是金額對你生活的影響——損失 20 萬對一個存款 30 萬的人,不是損失 2 萬的十倍那麼糟,而是糟得不成比例:要借錢、要賣東西、可能失去工作。把「有多糟」寫成一個函數 :損失 元帶來的痛苦。這個函數的特徵是越虧越痛、而且痛得越來越快——每多虧一萬元,增加的痛苦比前一萬元更多。
所以你真正比較的不是 與 ,而是兩種痛苦:確定付 6,000 的痛苦 ,對上不買保險時的期望痛苦 。
漏掉的量就是 與 的差。「平均虧 2,000」只算了 附近的事——它把痛苦當成線性的。
先抓住這個畫面:弦在曲線上方
畫 的圖:橫軸是損失,縱軸是痛苦。「越虧越痛、痛得越來越快」讓這條曲線往上彎,像一個碗。
在曲線上取兩個點: 與 ,用一條直線(弦)連起來。弦上橫座標 的那個點——也就是從左端點往右走 2% 的位置——高度正是 。而曲線上橫座標 的點是 。
碗往上彎,所以弦在曲線上方:。「不買保險的期望痛苦」比「確定損失 4,000 的痛苦」高。高出多少,就是弦與曲線在 處的垂直距離——曲線彎得越厲害、兩個端點拉得越開,這段距離越長。
你願意多付的那 2,000 元,就是把這段垂直距離換成錢:只要 ,買保險就是理性的。保險公司呢?它同時承保十萬個人,它的 是十萬個獨立損失的平均,散佈小到幾乎是一個定點——弦與曲線的距離趨近零,它的曲線在這個尺度上幾乎是直的。它不怕,因為它的 幾乎不隨機。
寫成數學:Convex 與 Jensen
定義。 函數 是 convex(往上彎)的,若對任意兩點 與任意 ,
左邊是曲線在 之間某點的高度,右邊是弦在同一點的高度——「弦在曲線上方」的逐字翻譯。若 二次可微,等價的判準是 (M0.2 的二階項永遠往上)。、、()都是 convex;、 是 concave(往下彎, 是 convex)。
Jensen 不等式。 若 convex 且 、 存在,則
證明(五行)。 在 處畫一條支撐線:convex 函數在任何一點都有一條直線 ,整條曲線都在它上方, 對所有 成立(可微時 ,就是切線)。對這個不等式兩邊取期望:
整個證明只用了兩件事:曲線在切線上方,以及期望是線性的(M1.1)。兩點的 convex 定義是 Jensen 的特例( 只取兩個值),Jensen 是它對任意分佈的推廣。
等號何時成立。 ,被積函數 ,期望為零只能是它幾乎處處為零: 落在的每一個點上曲線都貼著切線。若 strictly convex(弦嚴格在上方、沒有平的段),這只在 是常數時發生。Jensen 的等號成立 ⟺ 不隨機(strictly convex 時)。這就是保險公司不怕的數學版本。
差距有多大。 把 在 附近二階展開(M0.2):,取期望,一階項消失:
Jensen gap ≈ 彎度 × 散佈。 彎度是你「怕」的程度,散佈是風險的大小;兩者相乘就是保費裡合理的那部分溢價。
展開細節把 Jensen 用在 concave 函數與 conditional expectation 上
concave 的 φ(例如 log、√)把不等式反過來:φ(E[X]) ≥ E[φ(X)]。最常見的例子是 E[log X] ≤ log E[X]——「先取 log 再平均」小於「先平均再取 log」;一筆投資如果每年 +50% 或 −50% 各半,算術平均報酬是 0,但 E[log(1+r)] = ½(log 1.5 + log 0.5) ≈ −0.144 < 0,長期複利下財富會趨近零。這是「分散投資降低波動本身就有價值」的來源,也是 Jensen gap 的另一個生活版本。
條件版本:對任何 σ-代數(任何「已知資訊」)Y,φ(E[X|Y]) ≤ E[φ(X)|Y] 逐點成立——證明一字不改,只要把期望換成 conditional expectation,支撐線的斜率 c 可以依 Y 而變。對兩邊再取期望就回到原式。這個版本在後面比較「先平均再算」與「先算再平均」的各種情境時都會用到。
回到保險:直覺對了,數字現在有了
回答起點問題。你買保險不是因為算錯,而是因為你比較的是 與 ,不是 6,000 與 4,000。只要你的痛苦函數夠彎—— 大於 ——多付 2,000 就是理性的。,很大;一個存款 30 萬的人在 20 萬那一端的 也很大。
保險公司站在同一條不等式的另一邊:它的 是十萬個獨立損失的平均, 被除以十萬,gap 趨近零,它可以幾乎照 定價、再加一點利潤。同一個 Jensen,兩邊的 不同,就是保險存在的理由。
這個判斷依賴的假設:
- 真的 convex。 如果一個人的痛苦函數在某段是 concave 的——例如「反正欠債超過 50 萬就宣告破產,再多欠也一樣」——那在那一段 Jensen 反向,這個人對大額損失反而不在意,保險對他沒有吸引力。這不是理論錯,是假設不成立。
- 期望存在。 若損失分佈的尾巴太厚(例如 的分佈),兩邊都沒有定義,「平均」這個詞本身失去意義。
回到保險:跑一次,再把 φ 翻成 concave
import numpy as np
rng = np.random.default_rng(0)
loss = np.where(rng.random(200_000) < 0.02, 200_000.0, 0.0) # 你的年度損失 X
phi = lambda x: -np.log1p(-x / 250_000) # 一條 convex 的「痛苦」:損失越接近 25 萬的上限越痛
print(loss.mean()) # ≈ 4000:E[X]
print(phi(np.array([6000.])).item(), phi(loss).mean()) # φ(6000) vs E[φ(X)]:後者更大 → 買保險划算
# 保險公司:十萬人的平均損失
pool = loss.reshape(2, 100_000).mean(1) # 兩個「公司年度」的平均損失,幾乎都 ≈ 4000
print(pool, phi(pool).mean() - phi(np.array([pool.mean()])).item()) # Jensen gap ≈ 0
# 破壞假設:把 φ 換成 concave(破產後不在意)
phi_c = lambda x: np.sqrt(x)
print(phi_c(np.array([4000.])).item(), phi_c(loss).mean()) # φ(E[X]) > E[φ(X)]:不等式反向,保險不吸引人
前三行:; 小於 ,確定付 6,000 比冒險舒服。保險公司那兩個「年度」的平均損失都在 4,000 附近,Jensen gap 幾乎是零。最後把 換成 concave 的 :,——不等式整個反過來,這樣的人寧願賭。理論預告了方向,數字確認了大小。
先消化一下
參考文獻
- Boyd, S., Vandenberghe, L. Convex Optimization. Cambridge University Press, 2004.(第 3.1 節 convex function 的定義與二階判準;第 3.1.8 節 Jensen 不等式與其推廣。)
- Jensen, J. L. W. V. Sur les fonctions convexes et les inégalités entre les valeurs moyennes. Acta Mathematica 30, 1906.(不等式的原始出處。)
- Cover, T. M., Thomas, J. A. Elements of Information Theory. Wiley, 2nd ed., 2006.(第 2.6 節:Jensen 不等式與等號條件,作為資訊量非負性的工具。)
- Grimmett, G., Stirzaker, D. Probability and Random Processes. Oxford University Press, 3rd ed., 2001.(第 3.6 與 7.9 節:期望的不等式、conditional Jensen。)