案例 098 保险怎么配

案例 098 保险怎么配

摘要:骑手手握 400 元年度保障预算,面对意外险 120 元(赔 5 万)、三者险 80 元(赔 10 万)、超时险 2 元/天三项。本文建 3 变量 0-1 背包:目标为保费加期望自担,约束为预算。先修正题面 \((1-0.8z_1-0.9z_2)\) 的重复报销问题(两项都买时系数 \(-0.7\)、自担为负),改为分暴露扣减 \(p[L_1(1-r_1z_1)+L_2(1-r_2z_2)]\),四种组合自担 880/688/304/112 元。基准最优为三项全买:保费 252 元、总成本 364.0 元,比不买省 1077.6 元,预算余 148 元。每百元保费减损:超时险 1080、三者险 720、意外险 160 元,性价比差 6.75 倍。灵敏度给出临界事故率(意外 0.50%、三者 0.111%)与临界保费(192/576/561.6 元);事故率降至 0.2% 时意外险先退出,最优变为 011。

关键词:保障组合;0-1 背包;期望自担;临界保费;损失补偿原则

1 问题提出

年终盘点,骑手手里有 400 元"保障预算",柜台推三项:意外险 120 元保一年、赔 5 万;三者险 80 元保一年、赔 10 万;超时险 52 元(2 元/天,按 26 天/月 折)。三项加起来 252 元,预算还剩 148 元。听起来是道口算题——可到底该买几项、先买哪项、事故率降下来以后还买不买,三个问题一个都不小。先把暴露摆清楚。一次事故同时砸两头:自己医疗 3 万,撞了人赔 8 万,合计 11 万。年事故概率 0.8%,期望损失 880 元。超时那头是另一本账:日均 1.8 单超时、每单罚 1 元、年跑 312 天,期望罚金 561.6 元。两项相加,不做任何保障的年自担期望是 1441.6 元。三项全买,保费 252 元,自担期望压到 112 元,净赚 1077.6 元。结论是"都买",但这个结论几乎不需要模型——真正需要模型的是它的边界:题面原式 \((1-0.8z_1-0.9z_2)\) 在两项都买时给出 \(-0.7\),自担期望变成 \(-616\) 元,等于保险倒贴钱,这显然违反损失补偿原则;超时险的 52 元是月度折算式,若按 312 天计则是 624 元,结论立刻翻转。先把口径写对,再谈最优。

表 1 案例 098 的参数与派生量(年口径)

符号 含义 取值 来源
\(z_1\) 是否买意外险 0-1 决策
\(z_2\) 是否买三者险 0-1 决策
\(z_3\) 是否买超时险 0-1 决策
\(c_1,c_2,c_3\) 三项年保费 120 / 80 / 52 元 条款
\(r_1,r_2\) 报销比例 80% / 90% 条款
\(p\) 年事故概率 0.8% 行业统计
\(B\) 年预算 400 元 题面

为什么值得当成优化问题。 一是组合性:三项各自独立、预算封顶,是标准的 0-1 背包,8 种组合可以穷举,但"穷举"本身不给出优先级。二是边际差异极大:三者险每百元保费买回 720 元期望减损,意外险只有 160 元,差 4.5 倍,预算一紧先砍谁一目了然。三是有临界:事故率降到 0.5% 以下意外险就该退,保费涨到 192 元也一样——"买不买"是一个随参数移动的区间,不是一句口号。

2 数学模型

决策变量三项,各为 0-1:

\[z_{i}=\begin{cases}1,&\text{买第 }i\text{ 项}\\ 0,&\text{不买}\end{cases},\qquad i=1,2,3\tag{1} \]

先把赔付口径写对。 题面把自担写成 \(0.008\times(3\text{ 万}+8\text{ 万})\times(1-0.8z_1-0.9z_2)\)。这个式子的本意是"意外险报销医疗自付的 80%、三者险报销三者自付的 90%",但把它写成加减关系,两项都买时系数变成 \(1-1.7=-0.7\),自担变负——保险赔的钱超过了实际损失。正确写法是两项各管各的暴露、分别扣减:

\[\mathbb{E}[\text{自担}]=p\Big[L_1(1-r_1z_1)+L_2(1-r_2z_2)\Big]+v_3(1-z_3)\tag{2} \]

其中 \(L_1=3\) 万、\(L_2=8\) 万、\(v_3=1.8\times1\times312=561.6\) 元。四种组合的自担期望(\(p=0.008\)):

\[\mathbb{E}_{00}=880,\quad \mathbb{E}_{10}=688,\quad \mathbb{E}_{01}=304,\quad \mathbb{E}_{11}=112\tag{3} \]

\(\mathbb{E}_{11}=112\) 元 = \(0.008\times(30000\times0.2+80000\times0.1)\),即医疗残 6000 元加三者残 8000 元再乘概率。赔付上限 5 万/10 万都大于对应暴露 3 万/8 万,上限不绑定;真正起作用的是"赔付不超过暴露"这条约束,式 (3) 的非负性就是它的体现。

目标与预算:

\[\min\ Z=\sum_{i=1}^{3}c_iz_i+\mathbb{E}[\text{自担}]=1441.6-72z_1-496z_2-509.6z_3\tag{4} \]

\[\text{s.t.}\quad c_1z_1+c_2z_2+c_3z_3=120z_1+80z_2+52z_3\le 400\tag{5} \]

\[z_i\in\{0,1\}\tag{6} \]

式 (4) 的系数是净收益 \(v_i-c_i\):意外 72、三者 496、超时 509.6,三个都为正,且 \(\sum c_i=252\le 400\),故全买最优、预算约束不起作用。写成背包形式更清楚:

\[\max\ \sum_{i}v_iz_i\quad \text{s.t.}\quad \sum_i c_iz_i\le B,\ z_i\in\{0,1\}\tag{7} \]

单项的临界概率与临界保费由 \(v_i=c_i\) 反解:

\[p_1^{*}=\frac{c_1}{r_1L_1}=0.50\%,\qquad p_2^{*}=\frac{c_2}{r_2L_2}=0.111\%\tag{8} \]

\[c_i^{*}=v_i:\quad c_1^{*}=192,\quad c_2^{*}=576,\quad c_3^{*}=561.6\tag{9} \]

式 (8) 是本例的主结论:意外险的临界概率是三者险的 4 倍,事故率一降,先退出的必然是意外险。

3 Gurobi 求解实现

数据为构造示例:3 万医疗、8 万三者、0.8% 事故率、1.8 单/天超时,全部取自题面;超时险年费按题面 \(2\times26\times12/12=52\) 元,图 9 的分布用 20000 次蒙特卡洛(种子 98)生成,不参与求解。

表 2 8 种组合的穷举结果(Gurobi 逐个固定 $z$ 求解)

组合 \(z_1z_2z_3\) 年保费 / 元 事故自担 / 元 超时自担 / 元 总成本 / 元 备注
000 0 880 562 1441.6 预算内
001 52 880 0 932.0 预算内
010 80 304 562 945.6 预算内
011 132 304 0 436.0 预算内
100 120 688 562 1369.6 预算内
101 172 688 0 860.0 预算内
110 200 112 562 873.6 预算内
111 252 112 0 364.0 最优

建模只有四行,关键是第一行把"报销"写成乘在各自暴露上:

z = m.addVars(3, vtype=GRB.BINARY, name="z")
sp = p * (MED * (1 - R1 * z[0]) + TP * (1 - R2 * z[1])) + V3 * (1 - z[2])
m.setObjective(prv[0]*z[0] + prv[1]*z[1] + prv[2]*z[2] + sp, GRB.MINIMIZE)
m.addConstr(prv[0]*z[0] + prv[1]*z[1] + prv[2]*z[2] <= 400)

(1)别把报销写成 \(1-r_1z_1-r_2z_2\)。它默认两项报销同一个基数,两项都买就重复报销。写成 \(L_1(1-r_1z_1)+L_2(1-r_2z_2)\) 后,式 (3) 的四个值 880/688/304/112 单调、非负,符合直觉。(2)期望直接进目标是精确等价的:事故是伯努利、超时是天数乘频率,都与 \(z\) 独立,没有耦合约束,所以 \(\mathbb{E}[\cdot]\) 可以原样写进目标;一旦加入"全年最多赔 3 次"这类条款,就必须改成分段。(3)8 种组合逐点固定求解比一次求解更有用:它同时给出每个方案的成本与自担,图 2、图 8 的散点就是这 8 个点;闭式解 \(v_i>c_i\) 与求解器结果逐点一致,误差为 0。全部 26 次求解合计 1.7 s。

4 结果分析

4.1 三项的性价比差 6.75 倍

图 1 三项保险的年保费与年期望减损(左柱保费合计 252 元,右柱减损合计 1329.6 元)

图 1 把三项摆成三对棒棒糖:意外险 120 元买回 192 元、三者险 80 元买回 576 元、超时险 52 元买回 561.6 元。橙柱(保费)最高的是意外险、最低的是超时险,蓝柱(减损)最高的却是三者险——保费贵的不一定赔得多,赔得多的不一定贵。换算成"每百元保费买回多少期望减损":三者险 720 元、超时险 1080 元、意外险只有 160 元,最高与最低差 6.75 倍。题面说"差 3 倍",实算是 4.50 倍(三者对意外)——先算再引,别照抄量级。

图 2 8 种组合的保费—自担期望(气泡=净收益,标注为 z1z2z3)

图 2 是背包的全景:8 个点从 \((0,1441.6)\) 排到 \((252,112)\),越往左上越划算。两点值得看:只买超时险 \((52,880)\) 把总成本压到 932 元,比"只买意外险"的 1370 元低 438 元;而"意外+三者" \((200,674)\) 总成本 874 元,还不敌"三者+超时" \((132,304)\) 的 436 元。便宜的那项往往是性价比最高的那项,贵的那项靠的是"绝对额大"。

图 3 五种方案的年保费、期望自担与总成本(黑横线)

图 3 按"不买 / 只意外 / 只三者 / 只超时 / 全买"排开,红柱是自担、蓝柱是保费、黑线是两者之和。总成本 1442 → 1370 → 946 → 932 → 364,全买比不买省 1078 元。注意"只超时"(932 元)比"只意外"(1370 元)便宜 438 元:一项 52 元的险打赢一项 120 元的险,靠的不是保额,是发生频率——超时一年撞上 562 次,事故一年 0.8% 才一次。

图 4 12 个月的累计保费投入与累计期望减损(阴影为净收益)

图 4 按月摊:保费每月 21.0 元、减损每月 110.8 元,两条阶梯从第一个月就分开,12 个月净赚 1077.6 元。回本不需要等:第一个月的减损 111 元已覆盖当月保费 21 元的 5.3 倍。这条曲线也解释了为什么"按年缴"比"按次买"划算——三项的期望减损都远高于保费,摊到每月都是净流入。

4.2 事故率一降,先退的是意外险

图 5 事故概率对两项净收益(左轴)与购买状态(右轴阶梯)的影响

图 5 把式 (8) 画成两条直线:意外险净收益在 \(p=0.50\%\) 过零,三者险在 \(p=0.111\%\) 过零。安全骑行把事故率从 0.8% 压到 0.2%,意外险净收益变成 \(-72\) 元(亏),三者险还有 \(64\) 元(赚)。 此时最优组合从 111 变成 011,年保费 132 元、总成本 208 元。原因是分母不同:意外险的暴露只有 3 万、报销 80%,一年期望减损 192 元,120 元的保费要 0.50% 的事故率才打平;三者险暴露 8 万、报销 90%,80 元保费只要 0.111% 就打平。保额大、保费低的那项,抗得起事故率下降。

图 6 事故概率与意外险保费的购买分区(黑线为临界线,星号为本案)

图 6 把式 (8) 摊成二维:横轴事故率、纵轴意外险保费,黑线 \(p\cdot r_1L_1=c_1\) 是双曲线。红线区该买、蓝线区不该买,本案星号(0.8%、120 元)落在红区,事故率是临界值的 1.60 倍——这也是为什么事故率稍微一降它就出局。图上另有一条隐含信息:保费降到 60 元时,即使事故率只有 0.25% 也该买;保费涨到 200 元,则要 0.83% 以上才值。同一个险种,"值不值"取决于两个坐标,不是一句话。

图 7 单项保费上涨时的净收益(与横轴交点即退出临界保费)

图 7 换第三个维度:保费。三条斜率同为 \(-1\) 的直线,与横轴的交点就是式 (9):意外险 192 元、三者险 576 元、超时险 561.6 元。这是"涨价容忍度":三者险从 80 涨到 576 元(7.2 倍)才该退,意外险只能涨到 1.6 倍。 圆点是本案保费,三点都在零线以上,但余量差别很大——意外险只留了 72 元缓冲,三者险留了 496 元。续保谈判时,这个缓冲就是还价空间。

4.3 预算其实不紧

图 8 保费—自担期望的帕累托前沿(灰区为预算外)

图 8 是背包的几何版:8 个点里 5 个落在帕累托前沿上(000→001→011→111 与 010),预算线 400 元远远在右边界之外,灰区(不可行)里一个点都没有。全买只要 252 元,占预算 63%,余 148 元。三个"被支配"的点(100、110、101)都被"三者+超时"或"三项全买"压住。结论:这道题里预算约束是冗余的——把它写进模型不是为了求紧,而是为了证明它不紧;如果超时险按 312 天真实计费(624 元),三项合计 824 元就会顶到 400 元,那时候背包才真的开始工作。

图 9 年自担损失的分布与累积分布(对数横轴,买 vs 不买)

图 9 说清保险到底买的是什么。不买的年自担损失是双峰:99.2% 的年份只付超时罚金(中位数 562 元),0.8% 的年份跳到 11 万;全买则全部压到 112 元一条竖线。期望只从 1441.6 降到 112(降 13 倍),但分布的右尾被整根砍掉——99.2% 分位从不买的 110536 元降到 112 元。保险卖的不是均值,是那条尾巴。

图 10 三项减损的拆解与费率比(下标注每百元保费的减损)

图 10 把 1329.6 元减损拆开:三者险 576(720 元/百元)、超时险 561.6(1080 元/百元)、意外险 192(160 元/百元),合计 528 元/百元。绝对额最大的是三者险,性价比最高的是超时险,两头都不占的只有意外险。 这就是"都买但优先级不同"的由来:预算宽裕时按净收益全买,预算收紧时按费率比砍——第一个砍的永远是意外险。

5 结论

(1)三项全买,最优总成本 364.0 元,比不买省 1077.6 元。 保费 252 元、期望自担从 1441.6 元降到 112 元:事故部分 880→112,超时部分 561.6→0。预算 400 元用掉 63%,余 148 元,约束不起作用。

(2)口径必须写对,否则结论会翻。 题面 \(1-0.8z_1-0.9z_2\) 在两项都买时给 \(-0.7\)、自担 \(-616\) 元,等于保险倒贴;正确写法是 \(p[L_1(1-r_1z_1)+L_2(1-r_2z_2)]\),四组合 880/688/304/112。题面又说"预期损失 720 元",那是按 9 万暴露算的;按题面写明的 3 万 + 8 万应为 880 元。两个数都远大于保费 200 元,"都买"的结论不受影响,但报告里的数字得对得上。

(3)性价比排序:超时险 1080 > 三者险 720 > 意外险 160(元/百元保费)。 绝对减损排序:三者 576 > 超时 561.6 > 意外 192。两个排序不一致,所以"都买"不等于"都重要"——预算砍到 200 元时先砍意外险,砍到 80 元时只剩三者险。

(4)临界:事故率降到 0.50% 以下意外险先退(三者险要到 0.111%);保费方面,意外险涨过 192 元、三者险涨过 576 元、超时险涨过 561.6 元就都该退。 事故率从 0.8% 降到 0.2% 时,最优变成 011、总成本 208 元——安全骑行本身就是在替代意外险。

(5)最该盯的是超时险的 52 元口径。 按题面 \(2\times26\times12/12\) 是年费 52 元、明显划算;若真按 312 天每天 2 元计 624 元,净收益变成 -62.4 元、最优组合回到 110、总成本 874 元(比全买贵 510 元)。一处口径之差,最优解从"三项全买"退回"两项",总成本差 510 元。 全部 26 次求解合计 1.7 s,3 个 0-1 变量、1 条预算约束,求解器毫秒级收敛;这道题的难点从头到尾不在算法,在口径。

参考文献

[1] Gurobi Optimization LLC. Gurobi Optimizer Reference Manual[Z]. 2024.

[2] Kellerer H, Pferschy U, Pisinger D. Knapsack Problems[M]. Berlin: Springer, 2004.

[3] Martello S, Toth P. Knapsack Problems: Algorithms and Computer Implementations[M]. Chichester: John Wiley & Sons, 1990.

[4] 司守奎, 孙玺菁. 数学建模算法与应用[M]. 3 版. 北京: 国防工业出版社, 2021.

复现方式:python batch_098.py;数据与结果见同目录 data_098.csv / results_098.json,图见 figs/

posted @ 2026-11-12 18:02  小青蛙电气  阅读(3)  评论(0)    收藏  举报