我們生活在陌生的時代。 在撰寫這篇文章時,我已經 #WFH 整整兩個星期了。 曾經繁華的城市現在就像鬼城一樣。 電視和社交媒體都充斥著一個話題:Covid-19,更通俗地稱為冠狀病毒(儘管它只是其中之一)。
雖然這場流行病確實帶來了很多焦慮和困難,但它也帶來了一些有趣的挑戰。 感謝約翰霍普金斯大學和其他研究人員等研究人員,我們每天都能獲得來自世界各國確診病例數量的數據。 這對於像我這樣的數據迷來說是一個福音! 但這也可能是一種詛咒。 我們中的許多人將獲取這些數據並使用它來運行,不顧一切地創建各種圖表和模型,然後繼續使用這些結果對大流行的範圍和嚴重性做出古怪的說法。 最近幾天,我的推特上充斥著專家,他們點出弊大於利的圖表和文章,它們比任何病毒都更快地傳播恐懼。 套用我發現的一句話,“很多數據,即人們在完成這一切後將不得不進行一些反省”( https://twitter.com/wisevis/status/1237021575926472704 )。
這並不是說繪製和分析數據無論如何都是錯誤的。 我工作在JMP ,一個充滿數據迷的地方,其中許多人正在跟踪和繪製數據。 快速瀏覽JMP 公共將揭示許多驚人的圖表,精心準備以信息豐富的方式呈現數據而不會引起警報。 事實上,我們自己的拜倫·溫格德最近舉辦了一次網絡研討會並寫了自己的博文正確繪製 Covid-19 數據。 我強烈建議您檢查一下,因為他提出了幾個出色的觀點,並且以前對此類數據有過經驗。 所有這些之間的一個共同點是它們僅可視化當前數據。 沒有建模,沒有預測。 都非常安全。
好吧,無畏的讀者,我必須承認我並不安全。 正如某個著名的卡通鴨子所說,我“變得危險了”。 這是正確的… 我製作了預測模型。
邊緣生活
現在,在你拿起你的火把和乾草叉之前,聽我說完。 在製作這些預測模型時,我之前無意將它們公開。 它們僅供我私人使用。 事實上,我現在分享它們的原因是為了準確地說明你為什麼不應該一開始就對他們充滿信心。 正如 George Box 雄辯地指出的那樣,“所有模型都是錯誤的,但有些模型是有用的”。 是的,我知道這句話被使用和濫用的次數太多了,但我希望我將要向您展示的內容可以讓您重新認識它。 僅僅因為你擬合了一個模型並且所有指標都指向它是高度準確的,並不意味著它是正確的。
在我們深入研究之前,先了解一些背景信息。 我一直使用的數據是約翰霍普金斯大學在他們的GitHub 網站從 2020 年 1 月 22 日開始。 正如許多人之前所說,計數只有在測試全面時才會準確。 換句話說,有限的測試意味著可信度較低的數據。 此外,出於我希望是顯而易見的原因,我沒有,也不打算對累積死亡人數進行建模。
第 1 課:了解自己的極限
在選擇如何對累積確認計數進行建模時,我根據我非常非常基本的流行病學知識選擇了我的模型。 毫無疑問,您聽說過人們使用指數模型。 該模型適合我們一直在經歷的確診病例中的快速加速。 但是,我沒有使用這樣的模型有一個很好的理由:它在物理上根本不准確。
請允許我用一些真實數據來說明。 下圖顯示了指數(綠色,假設這是人們正在談論的模型)和邏輯(藍色)符合意大利確認的計數(截至 2020 年 3 月 22 日)。

請注意,兩個模型都非常適合數據。 然而,指數模型繼續無限增長,而邏輯模型最終穩定在某個更高的值。 流行病學家用來描述在人群中傳播的疾病行為的最簡單模型是SIR模型. 該名稱來自於人群的劃分方式:易患疾病、感染疾病和遠離疾病。 基本思想是,有一些固定的人群容易感染某種新疾病,其中很大一部分人將過渡到感染和移除階段(通過康復或……)。 如果您實施這樣的模型並跟踪受感染個體的累積計數,您最終會得到看起來很像邏輯曲線的東西。 這完全是因為一個關鍵事實:人口規模是固定的。 請注意,指數模型像超級英雄一樣繼續上升,上升和消失,沒有註意到任何可能試圖反對它的所謂人口閾值。 這顯然與現實不符,因為已採取措施阻止感染或整個人口都被感染,因此感染的累積數量將不得不在某個時候趨於平穩。
您還可以從其他幾個來源清楚地看到這種行為。 來自中國的記錄數據顯然遵循了這一趨勢。 甚至原版中顯示的曲線扁平化曲線和現在著名的模擬華盛頓郵報文章甚至這個驚人的擴大在每日計數中顯示這種趨勢(這轉化為我在上圖中顯示的累積計數行為;想想該曲線的一階導數)。 所以,總而言之,我沒有使用指數模型。 相反,我從邏輯模型開始。
這並不是說邏輯模型或任何其他 sigmoid 模型(sigmoid = S 形)也不是沒有弱點。 在過於煽動性方面的指數錯誤的情況下,邏輯會在過於樂觀的方面犯錯。 任何 sigmoid 模型都可以大致分為三個基本部分:增長率、拐點和漸近線。
第一部分是不言自明的:累積總數從 0 增加的速度有多快。 這部分是兩個模型唯一的共同點。 第二部分,拐點,是模型中增長率開始從快到慢轉變的點。 在上圖中,邏輯模型的拐點大約是最後一個點所在的位置,就在曲線的中間。 就每日計數而言,這是病例數達到峰值然後開始下降的地方。 最後一部分,漸近線,是可能發生的最大情況。 就每日計數而言,病例數最終降至零(或至少是非常小的數字)。
顯然,漸近線和增長率可能是該模型中最受歡迎的兩個方面,因為它們告訴您預期的總病例數以及多快。 事實上,漸近線可能更受歡迎,因為它告訴你你應該期望事情有多糟糕。 然而,這也是最大的弱點。 太低的漸近線會讓你產生一種錯誤的安全感和理解感。 事實上,我認為拐點更重要。 如果您不知道拐點在哪裡,那麼如果您使用的是指數模型,那麼您將處於沒有更好的位置。 當我們查看數據時,我將進行更多解釋。
總之,構建模型的第一課是不僅要了解數據的限制,還要了解模型的限制。 如果您了解模型的工作部分,您就會了解它的優勢和劣勢,最重要的是,它可能會崩潰。 此外,了解模型運行的環境也很重要。 與快速現成的模型相比,應盡可能首選更符合主題專業知識的模型。 最後,了解您的模型將如何被解釋、使用以及可能被濫用。 在這種大流行的背景下,指數模型表明沒有復甦的希望;一個邏輯模型說它會消退。 這只是時間問題。
第 2 課:沒有計劃能在戰場上倖存
日期:2020 年 3 月 23 日。 時間:我猜是凌晨? 沒關係。 上週末,我已經在使用 JMP 中的 Fit Curve 平台來處理數據並嘗試 Logistic 模型擬合(對於那些在家跟隨的人來說,這是 Logistic 3P 模型)。 那個星期一,我決定對我的模型進行測試。
現在,我只對來自四個地點的數據進行建模:意大利(當時病例數僅次於中國)、紐約、加利福尼亞(兩個有大量確診病例的州)和北卡羅來納(因為我當然會)。 雖然我使用相同的模型形式,但我確保每個位置都有自己的參數估計值(使用位置作為按組)。 這是我在自然分組中擬合模型時的自然傾向。 它還反映了這樣一個事實,即每個位置都是獨一無二的,應該彼此區別對待。 意大利的檢測和治療方式與美國有很大不同,甚至在各個州之間也存在差異。 數據建模應反映這一事實。
以下是我使用截至 2020 年 3 月 22 日的每日累積計數得到的擬合,大約兩個月的數據:

看看這些合身有多神奇! 我只能聽到報告說“這是什麼?! 如此乾淨的數據全部排列整齊,表現得非常好。 還有那近乎完美的趨勢?! 哦,多麼美好的一天! 如此精妙的數據,先生,值得表揚! 太棒了,好先生,太棒了!”我敢打賭,許多數據分析師會看到這一點,並嫉妒這些擬合有多近乎完美。 誰該怪他們? 看看數據看起來有多乾淨! 如果我沒有得到這麼好的合身,我會感到驚訝!如此低的 p 值加上 R^2 值非常接近 1,這些模型應該是正確的,對吧? 出色地…
正如你可能從我明顯諷刺的語氣中猜到的那樣,這些模型並不是指標所聲稱的寶石。 我們可能出現問題的第一個警告信號是查看參數估計本身。 注意每個位置的拐點估計值(記得我說過這是最重要的參數)。 它們都大致相同……它們都是記錄數據的最後一天。 是的,該模型說您恰好抓住了病例率開始放緩並且病例應該很快開始減少的時刻! 多麼幸運! 再次為諷刺的語氣道歉,但很明顯這是模型估計過程的僥倖。 事實上,在我寫這篇博客之前,我什至沒有註意到它。 就這麼容易錯過。
但是讓我們假裝那天你和我一樣,錯過了那個重要的事實。 估計模型後,我意識到我將有機會通過跟踪模型預測與未來幾天的實際計數來測試它。 所以,這正是我所做的。
週二早上(請注意,獲取計數數據會有一天的延遲……這就是它的本質),我輸入前一天的計數並將它們與我的模型預測以及逐點 95% 置信區間進行比較(因為沒有不確定性的預測是失去我的統計執業執照的快速方法)。 那我過得怎麼樣?
地點
|
實際計數
|
預言
|
降低 95%
|
95% 上
|
意大利
|
63927
|
64721.72
|
63662.40
|
65781.04
|
美國加利福尼亞
|
2108
|
1829.92
|
1758.63
|
1901.21
|
美國紐約
|
20884
|
19171.40
|
18616.80
|
19726.00
|
美國北卡羅來納州
|
353
|
386.29
|
367.21
|
405.37
|
一天。 有一天,我的準確率下降到區區 25%。 我所有的美國模特幾乎立刻就被轟炸了。 加利福尼亞和紐約模型低估了真實數量,而北卡羅來納模型高估了真實數量。 意大利模型在技術上也高估了真實數據,但不確定性下限仍然可以捕捉到它。 但是,嘿,也許這一切都只是僥倖? 也許實際上數據的噪音比乍一看更多,我只需要給模型時間來啟動,對吧?
這是截至週四計數的本週剩餘時間的數據。
地點
|
天
|
實際計數
|
預言
|
降低 95%
|
95% 上
|
意大利
|
週二
|
69176
|
70487.69
|
68933.02
|
72042.36
|
週三
|
74386
|
76058.94
|
73906.42
|
78211.46
|
週四
|
80589
|
81345.24
|
78513.24
|
84177.24
|
美國加利福尼亞
|
週二
|
2538
|
2041.74
|
1925.52
|
2157.95
|
週三
|
2998
|
2238.73
|
2067.96
|
2409.51
|
週四
|
3899
|
2415.94
|
2184.81
|
2647.07
|
美國紐約
|
週二
|
25681
|
21698.12
|
20692.37
|
22703.87
|
週三
|
30841
|
23357.28
|
21946.15
|
24768.41
|
週四
|
37877
|
24361.26
|
22648.06
|
26074.46
|
美國北卡羅來納州
|
週二
|
495
|
461.98
|
422.16
|
501.77
|
週三
|
590
|
530.14
|
463.68
|
596.59
|
週四
|
738
|
586.96
|
491.78
|
682.14
|
太好了……前景肯定看起來不太好。 至少在幾天內,我有 4 分中的 2 分是正確的。 但是,總的來說,我的模型表現得很糟糕。 尤其是加利福尼亞和紐約的模型,它們嚴重低估了真實數據。
“我是怎麼回答的?”,你可能會問。 “我指的是你”,你也可以澄清一下。 我是否蜷縮成一堆,每天看著我的大多數模型墜毀和燃燒,從殘骸中升起煙霧和火焰? 實際上,我對結果印象深刻。
雖然聽起來很矛盾,但我發現這是一個完美的例子,說明為什麼你不應該盲目相信我們在模型評估中使用的指標。 它還提供了一個很好的理由,為什麼您應該始終驗證和測試您的模型,無論指標看起來多麼完美。 這就是為什麼交叉驗證等技術在統計建模界如此流行的原因。 你可以擁有最漂亮的模型,它幾乎完美地擬合了數據。 但是一旦無法做出準確的預測,那就完全是垃圾了。 模型的好壞取決於其超越數據的預測能力。
敬請關注…
那麼接下來會發生什麼? 我們的英雄將如何從這場悲劇中崛起? 有什麼新的挑戰在等著他? 他將學到什麼新的教訓? 而且,最重要的是,我什麼時候才能回到辦公室?
查看本系列的下一部分,在這裡我討論了更多的經驗教訓,並希望能回答你所有的問題。 除了最後一個。 正如你所清楚地看到的,我無法給你一個誠實的答案。
偉大的文章迦勒! 期待後續。 我們在桑迪亞想念你!
謝謝@matteo_patelmo !
我很高興看到你玩不同的模型。 這實際上是我將在後續帖子中討論的內容。 我實際上使用的和你一樣,所以這讓我覺得我在正確的軌道上。 事實上,Logistic 模型和 Gompertz 模型都是廣義邏輯模型,我也開始使用了。 它有一個額外的參數會影響發生最大增長率的位置。 我也計劃在我的後續帖子中討論它,但我很想看看它如何與您的數據一起使用。
我曾考慮過交叉驗證,但我不確定它以最常見的形式在這裡表現如何。 您可以做的最接近的方法是將一部分最新數據子集並將其用於驗證。 就像@russ_wolfinger 在周五的 JMP On Air 演示中所做的那樣,他使用上週的數據進行驗證。
你好@calking ,非常有趣的帖子。
我還對用於預測 covid19 病例的模型的預測準確性進行了一些嘗試,並希望與社區分享我的發現。
我將 Logistic 3P 與 Gompertz 3P 的能力進行了比較,後者根據截至某個日期收集的數據預測未來數據的能力。下圖顯示了意大利受災最嚴重的倫巴第大區的結果。曲線表示對第 95 年(4 月 5 日)的預測,數據在一年中的某一天(x 軸)可用。4 月 5 日,倫巴第的實際病例總數為 49118 例。
Gompertz 3P 模型(順便說一下,AICc 始終是最低的)已經高估了這個值很多天,並在最近幾天收斂到實際值。另一邊的物流 3P 總是低估真正的價值。我從中得到的主要教訓是長期預測(超過幾天)可能會變得非常不准確,並且對於這種模型選擇,必須非常小心地使用 min AICc。我不確定如何也可以應用交叉驗證。
