🧩 模拟模型选型:先描述世界怎样运转
模型地图
| 模型 | 适合的机制 | 社医卫管例子 | 特别检查 |
|---|---|---|---|
| 队列Markov | 人群在状态间按周期转移 | 慢病筛查的长期成本效果 | 状态是否充分表达历史 |
| 个体微观模拟 | 个体异质、既往史影响风险 | 多病共存与终身费用 | 事件风险、路径记忆、个体噪声 |
| 离散事件 DES | 时间连续、排队与资源容量 | 门诊等待、床位与转诊 | 到达/服务分布、暖机期、拥堵 |
| 系统动力学 SD | 总量存量流量与反馈 | 医生供给、服务需求和财政循环 | 量纲、反馈延迟与可辨识性 |
| 多主体 ABM | 异质主体互动与适应 | 患者择医、医院竞争、风险扩散 | 交互规则、行为依据、涌现验证 |
ABM中的agent是模型主体,与执行检索/编码任务的AI Agent不是同一概念。没有交互机制时,不能仅因逐人模拟就称ABM。
任务书与交付
先写决策问题、视角、目标人群、时间尺度、政策情景、状态/事件、干预作用点和校准目标。参数表记录单位、来源、估计误差、相关性及可迁移性。给出可执行的最小模型后再扩展,不凭空增加行为机制。
校准使用部分观测目标约束未知参数,验证尽可能使用独立时期/地区/结局。拟合与验证同一批数据只能说明内部重现;多个参数组合都拟合良好时应讨论不可辨识。按 AHRQ模型指南 组织模型透明度和验证说明。
一个很小的R排队实验
set.seed(20261023)
n <- 1000
arrival <- cumsum(rexp(n,rate=4))
service <- rexp(n,rate=5)
start <- finish <- numeric(n)
for(i in seq_len(n)){
start[i] <- max(arrival[i],if(i==1) 0 else finish[i-1])
finish[i] <- start[i]+service[i]
}
wait <- start-arrival
c(mean_wait=mean(wait),p95_wait=unname(quantile(wait,.95)))
这里是假定单服务台、指数到达/服务、先到先服务的教学模型;一次运行不能给出可靠政策比较。正式应用要核对时间单位、到达率稳定性、多个服务台、优先级、暖机期、独立重复与区间。
个体微观模拟的详细入口
需保留病史、个体异质性和竞争事件时,使用个体微观模拟技能。包含痴呆/衰弱及慢病应用对照、R教学实现、Stata模板、MCSE与PSA边界。
健康经济连接
若目标为成本效果,模型还需累计成本、效用、生存与贴现,再按参数联合分布做PSA;若比较资源排队,拥堵反馈可能让简单队列Markov不足。详见Markov、卫生经济及蒙特卡洛Skill。先检查模型边界是否覆盖决定性机制,再决定复杂度。
小心这几个坑 🐾
把拟合叫验证;用任意规则生成“政策一定有效”的结论;只报一次运行;忽视资源容量与跨主体干扰;把结构不确定性压缩成参数置信区间;画了复杂流程却没有可执行的事件与状态规则。
可复制请求:请从研究问题、历史依赖、资源约束与主体交互出发比较五类模型,给最小可验证结构、参数清单与缺口,区分校准、验证、个体随机性和参数不确定性。
普贤 · 社医卫管方法库 · 教学参数与代码接口需结合实际数据、软件版本和研究设计核对。