M5.0 保險為什麼存在:Convex Function 與 Jensen 不等式
平均多付錢,為什麼還願意買?
先想一個簡化的保險模型,不是實際保單報價:一年有 2% 的機率損失 20 萬,其他時候沒有損失;付 6,000 元後,這筆損失會完全獲得補償。期望損失是 元,所以買保險平均多付了 2,000 元。
但「確定付 6,000」與「偶爾突然少掉 20 萬」,對生活的影響可能差很多。少掉一萬元還能應付,少掉二十萬元卻可能要借錢。我們在意的,究竟是損失的金額,還是這個金額造成的影響? 要比較兩者,就得先把這個影響寫成函數。
課堂提問Q1
翻成數學。這裡的隨機變數是什麼?「你在意的東西」是它的哪個函數?「平均虧 2,000」比較的是哪兩個量——而它漏掉了哪個量?
先想一想,再展開看整理後的答案
隨機變數是你的年度損失 :以 0.98 的機率是 0,以 0.02 的機率是 200,000。。
「平均虧 2,000」比較的是保費 6,000 與 。這個比較假設你在意的是金額本身。但你在意的其實是金額對你生活的影響——損失 20 萬對一個存款 30 萬的人,不是損失 2 萬的十倍那麼糟,而是糟得不成比例:要借錢、要賣東西、可能失去工作。把「有多糟」寫成一個函數 :損失 元帶來的痛苦。這個函數的特徵是越虧越痛、而且痛得越來越快——每多虧一萬元,增加的痛苦比前一萬元更多。
所以你真正比較的不是 與 ,而是兩種痛苦:確定付 6,000 的痛苦 ,對上不買保險時的期望痛苦 。
漏掉的量就是 與 的差。「平均虧 2,000」只算了 附近的事——它把痛苦當成線性的。
弦在曲線上方
畫 的圖:橫軸是損失,縱軸是痛苦。「越虧越痛、痛得越來越快」讓這條曲線往上彎,像一個碗。
在曲線上取兩個點: 與 ,用一條直線(弦)連起來。弦上橫座標 的那個點——也就是從左端點往右走 2% 的位置——高度正是 。而曲線上橫座標 的點是 。
碗往上彎,所以弦在曲線上方:。「不買保險的期望痛苦」比「確定損失 4,000 的痛苦」高。高出多少,就是弦與曲線在 處的垂直距離——曲線彎得越厲害、兩個端點拉得越開,這段距離越長。
不過,Jensen 目前只比較了 與 ,還沒有比較保費 6,000。只有再確認 ,我們才能說這份保險在這個模型下比較合適。
若公司承保很多互相獨立的同類損失,每人的平均損失會比較穩定: 人的平均變異數是 。這是分散風險的效果,不是公司保證獲利;共同事故、營運成本與理賠條件仍會影響結果。
圖:凸曲線的弦在曲線上方;Jensen gap 同時由曲線彎度與隨機量散佈決定。
Convex 與 Jensen
定義。 函數 是 convex(往上彎)的,若對任意兩點 與任意 ,
左邊是曲線在 之間某點的高度,右邊是弦在同一點的高度——「弦在曲線上方」的逐字翻譯。若 二次可微,等價的判準是 (M0.2 的二階項永遠往上)。、、()都是 convex;、 是 concave(往下彎, 是 convex)。
Jensen 不等式。 若 convex 且 、 存在,則
證明。 假設 位於 convex 函數定義區間的內部。在這裡畫一條支撐線 :整條曲線都在它上方,(可微時 ,就是切線)。對兩邊取期望:
整個證明只用了兩件事:曲線在切線上方,以及期望是線性的(M1.1)。兩點的 convex 定義是 Jensen 的特例( 只取兩個值),Jensen 是它對任意分佈的推廣。
等號何時成立。 ,被積函數 ,期望為零只能是它幾乎處處為零: 落在的每一個點上曲線都貼著切線。若 strictly convex(弦嚴格在上方、沒有平的段),這只在 是常數時發生。Jensen 的等號成立 ⟺ 不隨機(strictly convex 時)。這就是保險公司不怕的數學版本。
差距有多大。 把 在 附近二階展開(M0.2):,取期望,一階項消失:
這個近似適合 集中在 附近、且高階餘項可忽略時;不能只因為變異數很大,就拿它當精確公式。若整個相關區間都滿足 ,Taylor 餘項才給出明確的界:
所以,曲線的彎度與輸入的散佈共同影響 gap,但一般情況下不能只看變異數,就比較兩個 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 的另一個生活版本。
條件版本:用 表示已知資訊,在適當可積分條件下, 幾乎必然成立。固定已知資訊後,用同樣的支撐線證明即可;斜率可以依資訊而變。
直覺對了,數字現在有了
回到起點:要比較的是 與 ,不是只比較金額。選好 後,這兩個量都能直接算;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 的 :,——不等式整個反過來,這樣的人寧願賭。理論預告了方向,數字確認了大小。
互動 demo:拖動彎度、散佈與保單池大小,直接比較 E[φ(X)] 與 φ(E[X])。
檢查理解
參考文獻
- 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。)