网易首页 > 网易号 > 正文 申请入驻

监测预警基础36-移动流行区间大白话理解+R语言实操→彻底理解吃透MEM

0
分享至


系列简介

这是我们一系列原创技术贴,从易到难,每天学习一点。所有内容均为疾控数据分析、科研论文相关,或者说很多和现在的热门监测预警相关,所以我们这个系列就叫“监测预警基础”。

今天是第36节,之前我们其实就介绍过移动流行区间法,→

通过这3篇其实基本把移动流行区间法的内容将差不多了,应部分粉丝要求,我们今天再用大白话把整个步骤和关键点讲一下,另外,我们之前虽然那已经介绍的很详细了,但是并没有介绍MEM的R语言操作,我们今天把R代码补上。

怎么说呢,这一篇的内容比较长,但是收藏这一篇,好好理解,基本上所有关于MEM的内容你就都清楚了!

当然我也相信,除非确有需要,很多人不会看完这篇内容的,有点长(哈哈哈)

之前咱们分三期讲了移动流行区间法(MEM):从核心原理、Excel 手算拆解到阈值计算公式。

不少同行私信留言,希望把整套流程的实际应用,用大白话串一遍,另外关于R的操作也希望讲一讲。

今天,我们就解决MEM的所有问题!


咱们疾控日常做预警,最常用的就是移动百分位数法 —— 拍定一个 P75、P90 作为阈值,超过就报警。

但这个方法有个绕不开的问题:你没法说清这个阈值准不准,没有统一的 “标尺” 去验证漏报了多少、误报了多少。

MEM 最大的价值,就是解决了这个问题。但这里必须先纠正一个容易误解的说法:MEM 并不是能识别出 “真正的、客观的流行期”。

它的核心逻辑是:先定一套统一的划分规则,用这套规则给所有历史年份分别划出流行期 / 非流行期,把这个划分结果作为方法内部的参照基准(俗称 “金标准”);再基于非流行期的数据算出预警阈值;最后拿阈值和基准比对,算出灵敏度、特异度,量化告诉你 “这个预警线,漏报率多少、误报率多少”。

简单说:传统方法是 “我定个线,报警就完事了”;MEM 是 “我先定一把统一的标尺,再算预警线,还能量化证明这条线有多准”,这也是它被 WHO 推荐、越来越多用于手足口、流感预警的核心原因。


实际操作中,我们通常需要 5-10 年的历史监测数据,用发病数或发病率都可以,两者各有优势。完整操作步骤可以总结为 4 步:

第 1 步:单年数据只能划流行期,选不出参数
如果只有 1 年的数据,我们确实可以用任意一个 δ 值 + MAP 算法,给这一年划出流行期和非流行期,这个也就是我们说的金标准。
但核心问题是:你没有任何依据判断这个 δ 选得合不合理—— 没有多年数据做对比,就不知道哪个 δ 对应的预警效果最好。

这就是我们需要 5-10 年多年数据的根本原因:只有多年数据才能验证参数的好坏,筛选出适配本地流行特征的最优 δ。

第 2 步:遍历 δ,用回代法初选最优参数
整理好 10 年数据后,第一步是批量筛选最优 δ(我们记为 δ₁),对应 R 里的roc.analysis函数。
具体逻辑:我们遍历几十个候选 δ 值,对每一个 δ,都统一做三件事:
第一,划金标准:用这个 δ,给每一年分别划出各自的流行期 / 非流行期(每年的金标准是独立的,但划分规则完全统一);
第二,算统一阈值:把 10 年所有数据放在一起,算出1 个全局统一的流行阈值—— 这个阈值的计算里,包含了所有年份的数据;
第三,合并算总账:把 10 年所有周的结果全部混在一起统计,用这个统一阈值和每年的金标准逐一比对,把 10 年的真阳性、假阳性全部累加,算出整体的灵敏度、特异度、约登指数等一套总指标。也就是说我们遍历的每一个δ都有一套指标。然后,我们选约登指数最高的那个 δ,作为初选的最优 δ₁。这一步叫回代法。特点是计算速度快,适合批量筛参数,但结果偏乐观 —— 因为被检验的年份本身参与了阈值计算,相当于 “自己出卷自己考”。
第 3 步:留一交叉验证,检验真实预警能力
选出最优 δ₁之后,我们用留一交叉验证法,检验这个参数在真实预警场景下的实际效果,对应 R 里的memgoodness函数,方法选cross
具体逻辑:10 年数据循环跑 10 轮,每一轮都严格遵循 “训练集、测试集分离” 的原则:
第一,单独拎出 1 年作为测试年,这一年的数据全程不参与阈值计算;第二,用剩下 9 年的数据,以 δ₁为参数,按 MEM 规则算出一个独立的流行阈值;第三,用这个完全不含测试年信息的阈值,去判定测试年每周是流行还是非流行;第四,测试年自身的金标准,同样用 δ₁+MAP 算法划分,两者比对,算出这一年专属的灵敏度、特异度、约登指数。

10 年全部跑完,就能得到每一年单独的预警效果。这一步的核心原则是:被检验的年份,绝对不参与阈值计算,100% 模拟 “用历史数据预警未来” 的真实工作场景,结果最贴近实战、最可信。

这个交叉验证有什么用呀?

它的核心作用是给这个 δ 的模型做性能鉴定、查边界、找短板。很多人会误以为 “交叉验证是为了再选一次最优 δ”,这是典型的误解。行业通用的流程永远是:回代法初选参数,交叉验证评价效果,不会用交叉验证反过来推翻初选的 δ。

第 4 步:计算最终阈值,落地预警与年度复盘
确认模型效果符合预期后,我们用全部 10 年历史数据 + 最优 δ₁,计算出最终的流行阈值、中 / 高 / 超高流行强度阈值,这套阈值就可以直接用于下一年的日常监测预警。

等新的一年结束后,我们也可以用 δ₁+MAP 算法划出这一年的金标准流行期,复盘当年预警的实际灵敏度、约登指数,再把这一年的数据加入基线,更新下一年的阈值,形成闭环。


第一步:拆分流行季节 —— 给模型 “单峰” 数据
MEM 有个硬性前提:一个流行季节里,只能有一个连续的流行高峰。咱们常见的手足口病、部分地区流感,一年都是双峰(夏季主高峰、秋季次高峰),如果直接把全年数据扔进去,模型只会认出最高的那个峰,次高峰直接被忽略,算出来的阈值会严重偏高。
所以第一步永远是先拆数据:

  • 看多年平均发病曲线,找到两个高峰之间的低谷;

  • 把一年拆成两个独立的流行季节(比如夏季流行季、秋季流行季);

  • 后续所有计算,都分开做、各算各的阈值。

就像考试分科复习一样,语文和数学不能放一张卷子里评分,分开算才准。

第二步:定 δ 参数,划出统一规则下的 “参照基准”

这是 MEM 最核心的一步,也是很多疑问的起点。

先搞懂 δ 是什么?

δ 就是一把 “尺子的松紧度”,用来控制流行期的长短。它的底层逻辑叫最大累计发病占比法(MAP),大白话讲就是:在一个流行季节里,从峰值开始往前后扩连续的周数,每多扩一周,这些周的发病数占整个流行季总发病的比例就会涨一点;当涨幅第一次小于 δ 的时候,就停下来,这一段连续的周数,就是当年的流行期。

  • δ 越小,尺子越松,流行期划得越长;

  • δ 越大,尺子越紧,流行期划得越短。


有两个必须明确的关键点
第一,规则统一,结果不统一:所有年份用的是同一个 δ 值、同一套 MAP 算法,这是标准统一的核心;但因为每年发病曲线的形状、峰值、升降速度都不一样,所以每一年划出来的流行期起止周、持续长度都是不同的,每年有自己的基准区间。
第二,单年数据选不出最优 δ:只用 1 年数据,随便给一个 δ,都能划出当年的流行期;但你没法判断这个 δ 划得好不好、合不合理,因为没有外部参照。δ 的优劣,必须通过 “预警阈值的准确性” 来衡量,而预警效果的验证,必须靠多年数据才能实现。
划出来的这个流行期,就是后面所有计算的参照基准:算阈值要靠它拆分流行前期,验证效果要靠它当 “标准答案”。
第三步:算流行阈值 —— 找到 “预警启动线”
基准划好了,接下来就算咱们最关心的预警阈值,也就是 “超过这个数,就判定进入流行期” 的那条线。

MEM 标准算法是:从所有历史年份的「流行前期」(流行期开始之前的那段时间)里,一共挑 30 个发病最高的周,算它们算术均数的单侧 95% 置信区间上限,这个上限就是流行阈值。

大白话翻译一下:找历史上 “非流行阶段里发病最高的那些值”,再往上留一点余量(95% CI 上限),得到一条线。正常非流行期,发病几乎不会超过这条线;一旦超过了,就大概率是真的要进入流行期了,可以启动预警。

这条线,就是咱们日常监测里最常用的 “预警启动阈值”。

第四步:算强度分级阈值 —— 把流行分轻重

光知道 “进入流行了” 还不够,疾控防控是分级响应的,所以 MEM 还能算出三级强度阈值:中流行、高流行、超高流行。

算法逻辑和流行阈值类似,只是数据源换了:从所有历史年份的「流行期」里,挑 30 个发病最高的周,算它们几何均数的单侧置信区间上限:

  • 40% CI 上限 → 中流行强度阈值

  • 90% CI 上限 → 高流行强度阈值

  • 95% CI 上限 → 超高流行强度阈值

这样一来,从基线到超高流行,一共 5 个等级,对应不同的防控响应级别,完全贴合咱们分级处置的工作需求。

第五步:参数筛选与效果验证 —— 回代初选,交叉终检

这一步是 MEM 的灵魂,也是大家疑问最多的地方。咱们分两部分讲透。

①回代法:快速批量筛参数
你之前用roc.analysis跑出来的每个 δ 一行的结果,就是回代法。
它的计算逻辑(以某一个 δ 为例)

  1. 用这个 δ,给所有年份分别划出流行期(基准);

  2. 把所有年份的数据凑在一起,只算出 1 个统一的流行阈值—— 注意,这里面包含了每一年的数据;
  3. 把所有年份的所有周合并在一起算总账:用这个统一阈值逐周判定流行 / 非流行,和各自年份的基准比对,把 10 年的真阳性、假阳性全部加起来,算出一套总的灵敏度、特异度、约登指数。

为什么每个 δ 只有一套结果?
不是不能算分年的,是完全没必要。回代法的唯一使命,就是快速对比不同 δ 的整体好坏,帮你缩小参数范围。它本身就是 “全量数据一起建模、一起检验”,本质是 “自己考自己”,就算拆成分年的,也还是每年自己考自己,没有额外的学术价值。所以 mem 包直接做了合并输出,每个 δ 对应一行总结果,方便你一眼挑出约登指数最高的候选参数。
特点
  • 计算速度快,适合遍历几十个 δ 值;

  • 结果偏乐观、偏高,因为被检验的年份本身参与了阈值计算,相当于 “考前见过原题”;

  • 只能用于初选参数,绝对不能当作最终的模型效能写进论文。


② 交叉验证:严谨检验真实能力

你用memgoodness(method="cross")跑出来的分年结果,就是留一交叉验证,这是学术论文里唯一认可的效能评价口径。

它的计算逻辑(10 年数据为例)循环跑 10 轮,每一轮都严格独立:

  1. 拿出其中 1 年当 “测试年”,这一年的数据完全不参与阈值计算;

  2. 用剩下 9 年的数据,以选定的 δ,按 MEM 规则算出一个流行阈值;

  3. 用这个完全独立的阈值,去判断测试年每周是流行还是非流行;

  4. 和「测试年用同一个 δ 划出的流行期(基准)」比对,算出这一年专属的灵敏度、特异度、约登指数。

10 年轮流当一次 “测试年”,最终就得到了每年一套的验证结果。

这个时候每年都要一套结果,为什么每年各有一套结果?

因为每一年用的阈值都不一样 —— 验证 2016 年的阈值里没有 2016 年数据,验证 2017 年的阈值里没有 2017 年数据,10 年对应 10 个不同的阈值、10 次独立的验证。它天然就是分年的,因为每一年都是一次完整的 “模拟真实预警”:站在去年年底,用历史数据算阈值,预判今年的流行情况,完全还原真实工作场景。

特点

  • 结果更保守、更真实,代表模型在未知年份的实际预警能力;

  • 可以看到每年的效果差异,能分析异常年份对模型的影响;

  • 是所有 MEM 类论文通用的效能评价标准。

第六步:落地应用 —— 用历史阈值预警未来

前面所有步骤都走完,得到一套稳定的阈值,就可以落地用了。真实工作里逻辑非常简单:

  • 用截至目前所有的历史数据,算出最终的流行阈值和三级强度阈值;

  • 新的流行季到来后,每周拿到发病数据,和这四条线比对;

  • 对应到哪个等级,就启动相应级别的防控响应。

这就是 MEM 从历史数据到一线预警的完整闭环。


1. 别把 “金标准” 当绝对真实的流行期

MEM 的流行期是用统一算法定义出来的参照基准,不是客观上天然存在的 “标准答案”。它的价值是保证评判规则统一,让阈值的效果可量化、可对比,不用纠结它是不是 “真正的流行期”。

2. 别混淆回代拟合和交叉验证

拿回代的灵敏度去写论文、吹模型效果,是新手最容易犯的错。记住:回代只是选参数的工具,只有交叉验证的结果,才能代表模型的真实预警能力。

3. 异常年份别硬塞进基线

比如新冠疫情这几年,手足口、流感的流行规律完全变了,硬塞进基线里,会把阈值带偏。可以剔除异常年份单独建模,再和全数据模型对比,选效果更好的。

4. 别直接照搬外地的 δ 和阈值

不同省份、不同人群的发病水平差很多,δ=2.8 是欧洲流感的经验值,不是通用金标准。一定要用本地的历史数据,筛选适合本地的最优 δ,计算本地的阈值。

5. 别把 “流行期划分” 和 “阈值预警” 混为一谈

基准流行期是用 δ+MAP 回顾性划出来的,是标尺;流行阈值是用来前瞻性预警的工具。不是 “超过阈值就是流行期”,而是 “超过阈值,我们预警认为进入流行期”,对不对要靠基准来验证。


说实话,我们前面讲的太细了,讲了太多了,但是我个人感觉讲清楚了。

如果你不是实际应用遇到问题,我相信很多人是不会看到这的,如果你看到这,请给我留个言吧!

接下来是R代码操作,其实也很简单,

数据整理工作我们就不在R里面进行了,假设你现在有10年的数据,已经整理成下面这样了,每一行代表每一周的病例数。


R代码及步骤如下,很简单的一套代码

#结束,以上阈值用于新的一年验证就行,画图手动画图就行

参考文献和书籍:

[1]杨鹏, 王小莉. [M]传染病预测预警技术及实践案例分析.[M] 人民卫生出版社: 267-275.

[2] 杨筱婷,王龙, 等. 基于移动流行区间法的甘肃省手足口病流行阈值估计及强度分级研究[J]. 疾病监测, 2025, 40(7): 876-882.



编辑:普通疾控人 | 审核:诗酒趁年华

文章来源 | 原创

说明 | 转载只为分享,如有侵权联系删除

©版权声明 | 部分信息和图片来自公开网络

转载请注明

再次转载请注明出处


科普健康 | 宣传疾控

本号为多位疾控机构从业者运营

重点关注国内外健康事件

致力于疾控科普

在做好科普服务大众的同时

做好疾控机构的宣传

让更多的人了解疾控,拥抱健康

欢迎加「小编」微信(cdcjkr126com)

本文具体说明

本文为原创内容,文章为个人理解所学,不涉及疫情信息及内部保密数据,发表的目的为自我总结及给有需求的人士学习使用。如有不妥之处,欢迎联系小编修改、删除。

更多精彩视频,尽在“CDC疾控人”视频号


特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
又一女间谍被抓!国安部披露,大量航天机密遭外泄,作案手段高超

又一女间谍被抓!国安部披露,大量航天机密遭外泄,作案手段高超

兵鉴史
2026-10-06 19:39:19
寿命长不长,头发有暗示?白发越少的人活得越久?真相来了

寿命长不长,头发有暗示?白发越少的人活得越久?真相来了

芹姐说生活
2026-10-07 20:16:22
全员预判失败!国庆首批提前返程车主集体翻车,自嘲大聪明又失算

全员预判失败!国庆首批提前返程车主集体翻车,自嘲大聪明又失算

小虎新车推荐员
2026-10-07 09:38:01
工信部派出百人专家团队常驻云南边境,与公安机关并肩作战,仅仅3个月关停木姐地区涉诈手机号码7.5万个,宽带账号4000多个

工信部派出百人专家团队常驻云南边境,与公安机关并肩作战,仅仅3个月关停木姐地区涉诈手机号码7.5万个,宽带账号4000多个

政知新媒体
2026-10-07 10:20:03
热搜上令人窒息的“母女吃牛肉面一幕”,精神穷人可怕的三观

热搜上令人窒息的“母女吃牛肉面一幕”,精神穷人可怕的三观

蝴蝶花雨话教育
2026-08-18 09:57:05
自取其辱!梅西告别赛与C罗声明同日引爆足坛,变成荒诞闹剧表演

自取其辱!梅西告别赛与C罗声明同日引爆足坛,变成荒诞闹剧表演

林子说事
2026-10-07 20:39:47
花旗银行重磅信息,中国住房供应量再下降30%,迎来第3次价格上涨

花旗银行重磅信息,中国住房供应量再下降30%,迎来第3次价格上涨

房产有点意思
2026-10-06 22:27:10
特朗普岳母100岁生日 四代同堂10曾孙到齐 伊万卡:无比特别的团聚

特朗普岳母100岁生日 四代同堂10曾孙到齐 伊万卡:无比特别的团聚

环球趣闻分享
2026-10-06 13:30:18
梅西告别国家队!他把10号还给了阿根廷

梅西告别国家队!他把10号还给了阿根廷

五星体育
2026-10-07 10:14:42
致命一击!泽连斯基,彻底输了!

致命一击!泽连斯基,彻底输了!

大嘴说天下
2026-10-07 21:13:44
俄罗斯辟谣肺鼠疫传言,美国“强烈关注”

俄罗斯辟谣肺鼠疫传言,美国“强烈关注”

环球网资讯
2026-10-07 14:10:35
艾滋病新增130万!多人无辜中招!公众场合千万坚持“6不碰”原则

艾滋病新增130万!多人无辜中招!公众场合千万坚持“6不碰”原则

医学科普汇
2026-10-05 18:49:25
欠薪2300万元!估值140亿的机器人巨头,如今连工资都发不出来了

欠薪2300万元!估值140亿的机器人巨头,如今连工资都发不出来了

李砍柴
2026-10-07 18:56:23
珠海游客怒了!一盘皮皮虾480元,游客自费800元投流,曝光珠海一家海鲜大排档,网友:就在海洲路,出名了

珠海游客怒了!一盘皮皮虾480元,游客自费800元投流,曝光珠海一家海鲜大排档,网友:就在海洲路,出名了

火山詩话
2026-10-05 06:35:30
最强反腐来了!中纪委:2026坚决清除害群之马,拒绝漏网之鱼!

最强反腐来了!中纪委:2026坚决清除害群之马,拒绝漏网之鱼!

职场资深秘书
2026-10-07 18:27:50
送君千里!8万人膜拜39岁梅西:独造3球告别阿根廷队 挥手21年青春

送君千里!8万人膜拜39岁梅西:独造3球告别阿根廷队 挥手21年青春

风过乡
2026-10-07 09:43:26
除了U23球员外,这3人有望重回国足!归化中场领衔,皇马旧将或取代布尼亚明

除了U23球员外,这3人有望重回国足!归化中场领衔,皇马旧将或取代布尼亚明

大卫的篮球故事
2026-10-07 18:36:31
笑死,经济上行时的自己能有多敢买,网友:好想回到过去打死自己

笑死,经济上行时的自己能有多敢买,网友:好想回到过去打死自己

夜深爱杂谈
2026-09-30 15:33:39
父亲提前半年为儿子婚礼预订单价2599元一桌的婚宴,结果14道主菜上错7道,“这让我很没面子”,酒店:愿意赔偿2万元

父亲提前半年为儿子婚礼预订单价2599元一桌的婚宴,结果14道主菜上错7道,“这让我很没面子”,酒店:愿意赔偿2万元

都市快报橙柿互动
2026-10-07 00:37:33
丢7球!U17国足在世界杯前最后3战皆负:跟强队差距明显,赛后阿根廷队跳起欢快舞蹈

丢7球!U17国足在世界杯前最后3战皆负:跟强队差距明显,赛后阿根廷队跳起欢快舞蹈

足球大腕
2026-10-07 20:31:59
2026-10-07 22:59:00
CDC疾控人 incentive-icons
CDC疾控人
关注疾控,科普健康
250文章数 8关注度
往期回顾 全部

科技要闻

诺贝尔化学奖揭晓,两位科学家摘得大奖

头条要闻

郑钦文战胜本届中网"最大黑马"进8强 4连胜迎24岁生日

头条要闻

郑钦文战胜本届中网"最大黑马"进8强 4连胜迎24岁生日

体育要闻

从骑马舞到开口全中文 德约在北京不止七冠

娱乐要闻

蔡康永风波再升级!这次谁也救不了他

财经要闻

谷歌签下科技史上最大核能协议

汽车要闻

智能化再提升 2027款东风标致、东风雪铁龙新车更人性化了

态度原创

房产
教育
亲子
数码
时尚

房产要闻

保利大爆发,冲到榜一!海南楼市前三季度,热销榜出炉!

教育要闻

逼孩子学习有没有作用

亲子要闻

工程车小故事:倒车请注意

数码要闻

准系统6689元:铭凡MS-03迷你主机酷睿Ultra 9 386H版本开售

50套高智感通勤穿搭,怎么穿都时髦好看!

无障碍浏览 进入关怀版