![]()
系列簡介
這是我們一系列原創(chuàng)技術(shù)貼,從易到難,每天學習一點。所有內(nèi)容均為疾控數(shù)據(jù)分析、科研論文相關(guān),或者說很多和現(xiàn)在的熱門監(jiān)測預警相關(guān),所以我們這個系列就叫“監(jiān)測預警基礎(chǔ)”。
今天是第38節(jié),我們繼續(xù)上一節(jié)內(nèi)容,你已經(jīng)會STL分解了,那之后呢?
我們現(xiàn)在就講之后的故事。
上一篇我們講了怎么用STL分解把傳染病發(fā)病曲線"大卸八塊"。分解完,你手里多了3個變量:
趨勢項、季節(jié)性、殘差項。
這3個零件到底是什么?各自能回答什么疾控問題?還能繼續(xù)做什么分析?有哪些坑不能踩?
如果你用的是加法模型,所有3個成分的本質(zhì)其實還是病例數(shù),只不過是代表不同意義的病例數(shù),單位也都是"例"(或者你原始數(shù)據(jù)用的發(fā)病率,那就是"例/10萬")。
但它們的含義和取值特點不同:
![]()
以下我們每一部分拆開,再詳細講一講
![]()
趨勢項其實就是把每年同一周的"季節(jié)性波動"全部抹平,再平滑處理后,得到的一條長期走向曲線。它回答的是:拋開"每年這個時候本該高/低"的季節(jié)因素,這個病近5年、近10年到底是在走高還是在走低?
第一,可以用來做什么?
比如評估防控效果——EV71疫苗納入免疫規(guī)劃后,趨勢項是否從2017年后開始下降?比如識別階段性變化——2020年發(fā)病數(shù)突然下臺階,是報告減少還是真減少了?比如資源規(guī)劃——趨勢項持續(xù)上升的病種,需要提前儲備防控資源
第二,還能怎么樣分析?
但這趨勢性我們一般就是視覺查看趨勢,以及采用Mann-Kendall趨勢檢驗判斷趨勢是否顯著上升/下降給"這個病越來越嚴重"提供統(tǒng)計學證據(jù)。再搭配Sen's 斜率估計,計算所有時間配對斜率的中位數(shù),量化趨勢的具體幅度(如 “發(fā)病率每年下降 0.42/10 萬”),共同完成 “趨勢是否存在 + 趨勢幅度多大” 的完整判斷。
或者與政策時間點疊加直觀展示政策前后趨勢斜率變化。需要注意的是,Joinpoint、ITS等方法自帶趨勢建模,通常對原始數(shù)據(jù)做。
![]()
季節(jié)項其實就是季節(jié)性特征量化,把每年同一周的發(fā)病水平跨年度平均,得到一個"標準季節(jié)模板"。比如第20周的季節(jié)項是-200,意思是:每年第20周,手足口病發(fā)病數(shù)平均比全年均值低200例。比如手足口病,春末夏初(約20-30周)季節(jié)項為正且很高,冬季(約1-10周)為負。
第一,可以用來做什么?
可以用來找高峰周/低谷周,季節(jié)項最大的幾周就是每年流行高峰;判斷流行開始,季節(jié)項由負轉(zhuǎn)正的周次,提示流行季啟動,年際比較,2020年后季節(jié)項峰值是否后移?計算季節(jié)強度量化季節(jié)性有多強。
要注意,季節(jié)強度(如0.38)回答"季節(jié)性整體有多重要",是一個單一數(shù)值,可以比較不同疾病。季節(jié)指數(shù)(如第20周=0.6)回答"這一周比全年均值高/低多少",是52個數(shù)值(周數(shù)據(jù)),描述具體模式。
seasonal_strength <- 1 - var(remainder) / var(ts_cases - trend)第二,還能怎么樣分析?
![]()
![]()
殘差項就是原始發(fā)病數(shù)減去趨勢項和季節(jié)項后,剩下的"解釋不了"的部分。理論上應該是隨機噪聲,但在傳染病數(shù)據(jù)中,往往藏著暴發(fā)信號、報告延遲、診斷標準變化。
第一,殘差項長什么樣?大部分時間圍繞0上下小幅波動;偶爾出現(xiàn)尖峰(正值)或深谷(負值);如果連續(xù)多周為正或負,說明不是隨機的
第二,殘差項隊傳染病數(shù)據(jù)分析有什么意義?
![]()
第二,殘差項我們一般怎么分析?
![]()
![]()
第一,數(shù)據(jù)必須是等間隔的
周數(shù)據(jù):一年按52周還是53周?建議統(tǒng)一按52周,多出的1周做插值或歸并
月數(shù)據(jù):注意2月只有28天,月數(shù)據(jù)的時間間隔不等,建議用周數(shù)據(jù)
日數(shù)據(jù):傳染病通常不用日數(shù)據(jù)做STL,波動太劇烈,建議聚合到周
第二,缺失值處理
STL不能自動處理缺失值(
stlplus包可以)如果某周數(shù)據(jù)缺失,建議用線性插值或同期歷史均值填補,不要直接刪除
第三,異常值(暴發(fā))會"污染"趨勢和季節(jié)
如果某一年出現(xiàn)大暴發(fā),STL會把這部分異常"分攤"到趨勢和季節(jié)中
建議開啟
robust = TRUE,降低異常值對分解的影響或者:先剔除已知異常年份,再分解
第四,周期長度(frequency)要選對
周數(shù)據(jù):
frequency = 52月數(shù)據(jù):
frequency = 12注意:52周不是精確的1年(365/7≈52.14),長期數(shù)據(jù)可能產(chǎn)生"季節(jié)漂移"假象
第五,加法模型 vs 乘法模型
加法:
原始 = 趨勢 + 季節(jié) + 殘差,adjusted = 原始 - 季節(jié)乘法:
原始 = 趨勢 × 季節(jié) × 殘差,adjusted = 原始 / 季節(jié)怎么選:如果高峰年波動大、低谷年波動小,用乘法;如果波動幅度穩(wěn)定,用加法。傳染病通常加法即可,但流感等波動劇烈的病種建議嘗試乘法
第六,分解后不是"萬事大吉"
殘差理論上應隨機分布,務必畫ACF圖檢驗
如果殘差還有自相關(guān),說明STL沒提取干凈,可能需要調(diào)整參數(shù)或換方法
不要對趨勢項做ITS分析——ITS要求原始序列的干預前后突變,STL的平滑會把突變抹掉
STL分解給你的不是“答案”,而是一套更精細的分析工具箱:趨勢項告訴你:長期是升是降,拐點在哪年;季節(jié)項告訴你:每年什么時候高,高峰漂移了嗎;殘差項告訴你:這周是不是異常,有沒有暴發(fā)信號;季節(jié)調(diào)整序列告訴你:拋開季節(jié)偏見,真實水平如何。
3個零件,3個維度,合在一起才是對一條發(fā)病曲線的完整解讀。下次再看到那條熟悉的周發(fā)病曲線,不妨先做一次STL分解——你會發(fā)現(xiàn),看了無數(shù)遍的數(shù)據(jù),原來還有這么多沒讀懂的信息。
![]()
![]()
編輯:普通疾控人 | 審核:詩酒趁年華
文章來源 | 原創(chuàng)
說明 | 轉(zhuǎn)載只為分享,如有侵權(quán)聯(lián)系刪除
?版權(quán)聲明 | 部分信息和圖片來自公開網(wǎng)絡
轉(zhuǎn)載請注明
再次轉(zhuǎn)載請注明出處
![]()
科普健康 | 宣傳疾控
本號為多位疾控機構(gòu)從業(yè)者運營
重點關(guān)注國內(nèi)外健康事件
致力于疾控科普
在做好科普服務大眾的同時
做好疾控機構(gòu)的宣傳
讓更多的人了解疾控,擁抱健康
歡迎加「小編」微信(cdcjkr126com)
本文具體說明
本文為原創(chuàng)內(nèi)容,文章為個人理解所學,不涉及疫情信息及內(nèi)部保密數(shù)據(jù),發(fā)表的目的為自我總結(jié)及給有需求的人士學習使用。如有不妥之處,歡迎聯(lián)系小編修改、刪除。
更多精彩視頻,盡在“CDC疾控人”視頻號
![]()
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
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.