├── COVID19_clustersize.html
├── README.md
├── data
├── bycountries_27Feb2020.csv
└── dailycases_international_27Feb2020.csv
├── figures
├── fig1.tiff
├── fig2.tiff
├── figS1.tif
├── figS2.tif
├── figS3.tif
└── outbreaksize-fig1.png
├── src
├── 2020-03-11-overdispersion-from-outbreaksize.md
├── COVID19_clustersize.Rmd
├── COVID19_clustersize.ipynb
├── install.R
└── runtime.txt
└── supplementarymaterials.pdf
/README.md:
--------------------------------------------------------------------------------
1 | # Estimating the amount of superspreading using outbreak sizes of COVID-19 outside China
2 | Source code accompanying Endo et al. "Estimating the amount of superspreading using outbreak sizes of COVID-19 outside China". [https://wellcomeopenresearch.org/articles/5-67](https://wellcomeopenresearch.org/articles/5-67)
3 |
4 | ## Main files
5 | * COVID19_clustersize.ipynb/[.html](https://akira-endo.github.io/COVID19_clustersize/COVID19_clustersize.html):
6 | Jupyter Notebook to reproduce the analysis in the paper
7 | * bycountries_27Feb2020.csv:
8 | Data file of imported/local case counts by country from [WHO situation report 38](https://www.who.int/docs/default-source/coronaviruse/situation-reports/20200227-sitrep-38-covid-19.pdf)
9 | * dailycases_international_27Feb2020.csv:
10 | Data file of daily case counts by country from [COVID2019.app](https://docs.google.com/spreadsheets/d/1mmnYxABvDOG4EzTnV3j2TLJ-ikaua20C1KnpXTROIsI/)
11 | * supplementarymaterials.pdf:
12 | Supplementary materials (Figures S1-S3 and descriptions)
13 | ## Licence
14 |
15 | [MIT](https://github.com/akira-endo/COVID19_clustersize/blob/master/LICENSE)
16 |
17 | ## Dependencies
18 | * R ver. 3.6.1
19 | * {LaplacesDemon} ver. 16.1.1
20 | * {repr} ver. 1.0.1
21 | * {IRkernel} ver. 1.0.2
22 | * Python ver. 3.7.4
23 | * Jupyter Notebook ver. 4.5.0
24 |
25 | ## Authors
26 |
27 | [Akira Endo](https://github.com/akira-endo),
28 | [Sam Abbott](https://github.com/seabbs),
29 | [Adam Kucharski](https://github.com/adamkucharski),
30 | [Sebastian Funk](https://github.com/sbfnk)
31 |
--------------------------------------------------------------------------------
/data/bycountries_27Feb2020.csv:
--------------------------------------------------------------------------------
1 | ,Total,ImportedChina,ImportedOthers,Local,Unknown,Death
2 | South Korea,1766,13,4,605,1144,13
3 | Japan,186,28,11,129,18,3
4 | Singapore,93,24,0,69,0,0
5 | Australia,23,12,8,3,0,0
6 | Malaysia,22,18,2,2,0,0
7 | Vietnam,16,8,0,8,0,0
8 | Philippines,3,3,0,0,0,1
9 | Cambodia,1,1,0,0,0,0
10 | Thailand,40,23,0,7,10,0
11 | India,3,3,0,0,0,0
12 | Nepal,1,1,0,0,0,0
13 | Sri Lanka,1,1,0,0,0,0
14 | USA,59,14,42,2,1,0
15 | Canada,11,7,2,1,1,0
16 | Brazil,1,0,1,0,0,0
17 | Italy,400,3,0,121,276,12
18 | Germany,21,2,1,14,4,0
19 | France,18,6,2,7,3,2
20 | UK,13,2,10,1,0,0
21 | Spain,12,0,10,1,1,0
22 | Croatia,3,0,2,1,0,0
23 | Austria,2,0,2,0,0,0
24 | Finland,2,1,1,0,0,0
25 | Israel,2,0,2,0,0,0
26 | Russia,2,2,0,0,0,0
27 | Sweden,2,1,1,0,0,0
28 | Belgium,1,1,0,0,0,0
29 | Denmark,1,0,1,0,0,0
30 | Estonia,1,0,0,0,1,0
31 | Georgia,1,0,1,0,0,0
32 | Greece,1,0,1,0,0,0
33 | North Macedonia,1,0,1,0,0,0
34 | Norway,1,1,0,0,0,0
35 | Romania,1,0,1,0,0,0
36 | Switzerland,1,0,1,0,0,0
37 | Iran,141,0,0,28,113,22
38 | Kuwait,43,0,43,0,0,0
39 | Bahrain,33,0,33,0,0,0
40 | UAE,13,6,2,5,0,0
41 | Iraq,6,0,6,0,0,0
42 | Oman,4,0,4,0,0,0
43 | Lebanon,1,0,1,0,0,0
44 | Pakistan,2,0,1,0,1,0
45 | Afghanistan,1,0,1,0,0,0
46 | Egypt,1,0,0,1,0,0
47 | Algeria,1,0,1,0,0,0
48 |
--------------------------------------------------------------------------------
/data/dailycases_international_27Feb2020.csv:
--------------------------------------------------------------------------------
1 | HOME,Daily new,43,0,0,4,18,59,77,94,151,134,263,462,714,780,"1,779","1,477","1,755","2,011","2,127","2,604","2,834","3,242","3,922","3,726","3,163","3,446","2,668","3,005","2,549","2,071","15,156","4,110","2,662","2,097","2,133","2,002","1,850",512,970,995,979,551,885,748,"1,012","1,264","1,521","1,964","1,978","1,765","2,667","1,153",,,,,,,,,,,,,COVID2019.app Team,,,,,,,,,,,
2 | ,(Excl. China),1,0,0,0,1,0,0,1,2,3,4,18,13,11,8,18,18,30,28,15,9,9,36,32,20,51,26,32,82,56,5,63,21,89,85,114,101,121,81,172,331,337,377,342,579,937,"1,094","1,391","1,776","1,640","2,548",0,,,,,,,,,,,,,,,,,,,,,,,,
3 | Total,,43,43,43,46,64,123,200,294,445,579,843,"1,304","2,005","2,786","4,565","6,041","7,797","9,816","11,946","14,551","17,389","20,633","24,556","28,283","31,446","34,896","37,578","40,672","43,232","45,303","60,460","65,613","68,275","70,373","72,387","74,387","76,237","77,178","78,148","78,717","79,696","80,247","81,132","81,880","82,892","84,156","85,677","87,637","89,615","91,380","94,047","95,201",,,,,,,,,,,,,Contributors,,,,,,,,,,,
4 | Total,Territory / Date,"Jan 13, 2020","Jan 14, 2020","Jan 15, 2020","Jan 16, 2020","Jan 17, 2020","Jan 18, 2020","Jan 19, 2020","Jan 20, 2020","Jan 21, 2020","Jan 22, 2020","Jan 23, 2020","Jan 24, 2020","Jan 25, 2020","Jan 26, 2020","Jan 27, 2020","Jan 28, 2020","Jan 29, 2020","Jan 30, 2020","Jan 31, 2020","Feb 1, 2020","Feb 2, 2020","Feb 3, 2020","Feb 4, 2020","Feb 5, 2020","Feb 6, 2020","Feb 7, 2020","Feb 8, 2020","Feb 9, 2020","Feb 10, 2020","Feb 11, 2020","Feb 12, 2020","Feb 13, 2020","Feb 14, 2020","Feb 15, 2020","Feb 16, 2020","Feb 17, 2020","Feb 18, 2020","Feb 19, 2020","Feb 20, 2020","Feb 21, 2020","Feb 22, 2020","Feb 23, 2020","Feb 24, 2020","Feb 25, 2020","Feb 26, 2020","Feb 27, 2020","Feb 28, 2020","Feb 29, 2020","Mar 1, 2020","Mar 2, 2020","Mar 3, 2020"," Mar 4, 2020 11:44 AM GMT","Mar 5, 2020","Mar 6, 2020","Mar 7, 2020","Mar 8, 2020","Mar 9, 2020","Mar 10, 2020","Mar 11, 2020",,,,,,Updaters,,Informers,,,,,,,,,
5 | "80,270",China,+42,,-+119,+3,+17,+59,+77,+93,+149,+131,+259,+444,+688,+769,"+1,771","+1,459","+1,737","+1,982","+2,102","+2,590","+2,829","+3,235","+3,887","+3,694","+3,143","+3,399","+2,656","+3,062","+2,478","+2,015","+15,152","+5,090","+2,641","+2,009","+2,048","+1,886","+1,749",+820,+889,+397,+648,+409,+508,+406,+433,+327,+427,+573,+202,+125,+119,,,,,,,,,,,,,,@yxlearn,@jodigraphics15,,,,,,,,,,
6 | 43,Thailand,+1,,,,+1,,,,,,,+3,+2,+1,,+6,,,+5,,,,+6,,,,+7,,,+1,,,,+1,,+1,,,,,,,,+2,+3,,+1,+1,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,
7 | 299,Japan,,,+1,,,,,,,,+1,,+1,+1,,+3,+5,+10,+3,+3,,,+3,+3,,,+1,+5,+3,+2,,+4,+7,+12,+7,+6,+6,+13,+5,+11,+25,+11,+10,+11,+17,+22,+21,+9,+14,+18,+19,+6,,,,,,,,,,,,,@limahall1,,,,,,,,,,,
8 | 706,Cruise ship,,,,,,,,,,,,,,,,,,,,,,,+10,+10,,+41,+3,+6,+65,+39,,+44,,+67,+70,+99,+88,+79,+13,,,+57,,,+14,,,,,+1,,,,,,,,,,,,,,,@limahall1,,,,,,,,,,,
9 | "5,621",South Korea,,,,,,,,+1,,,,+1,,,+2,,,+2,+5,+1,+3,,+1,+7,,+1,,+3,,+1,,,,,+1,+1,+1,+20,+53,+100,+229,+169,+231,+144,+284,+505,+571,+813,+586,+476,+974,+435,,,,,,,,,,,,,@jake_spann,,,,,,,,,,,
10 | 42,Taiwan,,,,,,,,,+1,,,+2,,,+2,+2,+1,+1,+1,,,,+1,,+5,,+1,+1,,,,,,,+2,+2,,+1,+1,+2,,+2,+2,+1,+1,,+2,+5,+1,+1,+1,,,,,,,,,,,,,,Yi Lun Weng,,,,,,,,,,,
11 | 127,USA,,,,,,,,,+1,,,+1,,+3,,,,+1,+1,+1,+1,+2,,+1,,,,,,+1,,+2,,,,,,,,+20,,,+18,+4,+3,,+3,+5,+11,+23,+20,+5,,,,,,,,,,,,,@msmakita,@shernicejohnson,@GoRogueAnalysis,Gabriel Pragin,,,,,,,,
12 | 10,Macau,,,,,,,,,,+1,+1,,,+3,,,,+2,,+1,,+1,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
13 | 100,Hong Kong,,,,,,,,,,+2,,+3,,+3,,,+2,+2,+1,+1,,+1,+2,+4,+3,+2,,+10,+6,+7,+1,+3,+3,,+1,+3,+2,+3,+4,,+1,+4,+7,+4,+6,+2,+1,+1,+3,+2,+0,,,,,,,,,,,,,,@iamdaniellow,,,,,,,,,,,
14 | 110,Singapore,,,,,,,,,,,+1,+2,+1,,+1,+2,+3,+3,+3,+2,,,+6,+4,+2,+3,+7,+3,+2,+2,+3,+8,+9,+5,+3,+2,+4,+3,+1,+1,+3,,+1,+1,+2,+3,+2,+4,+4,+2,+2,,,,,,,,,,,,,,@septian,,,,,,,,,,,
15 | 16,Vietnam,,,,,,,,,,,+2,,,,,,,+3,,+1,+1,+1,+2,,+2,,+1,+1,,+1,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
16 | 1,Nepal,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
17 | 212,France,,,,,,,,,,,,+3,,,,+1,+1,+1,,,,,,,,,+5,,,,,,,+1,,,,,,,,,,+2,+4,+20,+19,+43,+30,+61,+21,,,,,,,,,,,,,,@FrCovid19,,,,,,,,,,,
18 | 43,Australia,,,,,,,,,,,,,+4,,+1,,+2,+2,,+3,,,+1,+1,+1,,,,,,,,,,,,,,,+4,+2,+1,,,+1,,+2,,+4,+1,+2,+11,,,,,,,,,,,,,,,,,,,,,,,,
19 | 50,Malaysia,,,,,,,,,,,,,+4,,,,+3,+1,,,,,+2,+2,+2,+1,+1,+1,+1,,,+1,,+3,,,,,,,,,,,,+1,+2,,+4,,+7,+14,,,,,,,,,,,,,@alanusedbooks,,,,,,,,,,,
20 | 33,Canada,,,,,,,,,,,,+1,+1,+1,,,,,+1,,,+1,,,+2,,,,,,,,+1,,,,,,+1,,,,+2,,+1,+2,+2,+4,+4,+3,+3,+3,,,,,,,,,,,,,"@officialEBoland
21 | ",@diab_elie,@radicle110,,,,,,,,,
22 | 1,Sri Lanka,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
23 | 240,Germany,,,,,,,,,,,,,,,+1,+3,,+1,+2,+1,+2,+2,,,+1,+1,,,,+2,,,,,,,,,,,,,,+2,+12,+21,+26,+4,+49,+35,+38,+37,,,,,,,,,,,,,@niemieckapolity,,,,,,,,,,,
24 | 27,UAE,,,,,,,,,,,,,,,,,+1,+3,,+1,,,,,,+2,,,+1,,,,,,+1,,,,,+2,+2,,,,,+6,,+2,,,+6,,,,,,,,,,,,,,,,,,,,,,,,,
25 | 7,Finland,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,+1,,+3,+1,,,,,,,,,,,,,,,Maire,,,,,,,,,,,
26 | 28,India,,,,,,,,,,,,,,,,,,+1,,,+1,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,,+2,+1,+22,,,,,,,,,,,,,@Sanchari_23,,,,,,,,,,,
27 | 3,Philippines,,,,,,,,,,,,,,,,,,+1,,,+1,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
28 | 1,Cambodia,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
29 | "2,502",Italy,,,,,,,,,,,,,,,,,,+2,,,,,,,+1,,,,,,,,,,,,,,,+17,+59,+73,+76,+95,+143,+184,+238,+220,+581,+347,+466,,,,,,,,,,,,,,@JJ_Cappa,@Mus0ItA,@WhiteStar97,,,,,,,,,
30 | 53,UK,,,,,,,,,,,,,,,,,,,+2,,,,,,+1,,,+1,+4,,+1,,,,,,,,,,,+4,,,,+3,+4,+3,+13,+4,+11,+2,,,,,,,,,,,,,@mayferch,,,,,,,,,,,
31 | 3,Russia,,,,,,,,,,,,,,,,,,,+2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,
32 | 32,Sweden,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,+1,+5,+4,+2,+1,+1,+15,+2,,,,,,,,,,,,,,,,,,,,,,,,
33 | 168,Spain,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,+1,,,,,,,,,,,,,,,+1,+4,+6,+14,+15,+23,+18,+41,+44,,,,,,,,,,,,,,@Sukeema,@soldiciembre,@RubenApps,,,,,,,,,
34 | 23,Belgium,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,+1,+6,+5,+10,,,,,,,,,,,,,,,,,,,,,,,,
35 | 2,Egypt,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,
36 | "2,922",Iran,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+2,+3,+13,+10,+15,+18,+34,+44,+106,+143,+205,+385,+523,+835,+586,,,,,,,,,,,,,@mohsenbarekati,,,,,,,,,,,
37 | 15,Israel,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,+1,,,,+1,+3,,+4,,+2,+3,,,,,,,,,,,,,,,,,,,,,,,,
38 | 13,Lebanon,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,+1,+1,,+1,+6,+3,,,,,,,,,,,,,,,,,,,,,,,,,,
39 | 56,Kuwait,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+5,+6,+15,+17,+2,,+1,+10,,,,,,,,,,,,,,,,,,,,,,,,,,
40 | 1,Afghanistan,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
41 | 49,Bahrain,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+2,+21,+10,,+5,,+9,+2,,,,,,,,,,,,,,,,,,,,,,,,,,
42 | 32,Iraq,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,+4,,+2,+1,+5,+6,+7,+6,,,,,,,,,,,,,,,,,,,,,,,,,
43 | 12,Oman,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+2,+2,,+2,,,,,+6,,,,,,,,,,,,,,,,,,,,,,,,,
44 | 27,Austria,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+2,,+3,+1,+3,+5,+4,+6,+3,,,,,,,,,,,,,Tanja Malle,,@scharlatanja,,,,,,,,,
45 | 9,Croatia,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,+2,,+2,+1,+1,+1,+1,,,,,,,,,,,,,,,,,,,,,,,,,
46 | 61,Switzerland,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,+7,+7,+3,+6,+18,+15,+4,,,,,,,,,,,,,Tony,,,,,,,,,,,
47 | 8,Algeria,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,+2,+2,,+3,,,,,,,,,,,,,,,,,,,,,,,,
48 | 2,Brazil,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,,
49 | 8,Greece,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,+2,+1,+3,,,,+1,,,,,,,,,,,,,@Onomastos,,Dionisios Lymp.,@Dennie____,,,,,,,,
50 | 5,Pakistan,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+2,,,+2,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,
51 | 1,North Macedonia,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
52 | 3,Georgia,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,+1,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,,
53 | 33,Norway,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,+3,+2,+9,+4,+6,+8,,,,,,,,,,,,,,Marianne,,,,,,,,,,,
54 | 4,Romania,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,+2,,,,+1,,,,,,,,,,,,,,@Gorunalex,,,,,,,,,,,
55 | 10,Denmark,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,+1,+1,+1,,+6,,,,,,,,,,,,,,,,,,,,,,,,,
56 | 2,Estonia,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,
57 | 23,Netherlands,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,+1,+5,+3,+8,+5,,,,,,,,,,,,,,,,,,,,,,,,,
58 | 10,San Marino,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,+7,+2,,,,,,,,,,,,,,,,,,,,,,,,,
59 | 1,Nigeria,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
60 | 1,Lithuania,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
61 | 2,New Zealand,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,
62 | 6,Belarus,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,+2,+3,,,,,,,,,,,,,,,,,,,,,,,,
63 | 3,Azerbaijan,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,+2,,,,,,,,,,,,,,,,,,,,,,,,,,,,
64 | 5,Mexico,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+2,+2,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,
65 | 16,Iceland,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,+2,+6,+5,+2,,,,,,,,,,,,,,,,,,,,,,,,
66 | 1,Monaco,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
67 | 7,Qatar,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,+2,+4,,,,,,,,,,,,,,,,,,,,,,,,,,
68 | 7,Ecuador,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,+5,,+1,,,,,,,,,,,,,,,,,,,,,,,,,
69 | 1,Luxembourg,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,,
70 | 2,Ireland,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,
71 | 5,Czechia,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+3,+1,+1,,,,,,,,,,,,,,,,,,,,,,,,,
72 | 1,Dominican Republic,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,
73 | 1,Armenia,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,,
74 | 2,Indonesia,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+2,,,,,,,,,,,,,,,,,,,,,,,,,,
75 | 1,Andorra,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,
76 | 5,Portugal,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+2,+2,+1,,,,,,,,,,,,,,,@_morning_,,,,,,,,,
77 | 1,Jordan,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,
78 | 1,Tunisia,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,
79 | 2,Senegal,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,+1,,,,,,,,,,,,,,,,,,,,,,,,,
80 | 1,Latvia,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,
81 | 1,Saudi Arabia,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,
82 | 1,Morocco,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,,
83 | 1,Ukraine,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,
84 | 1,Argentina ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,
85 | 1,Liechtenstein,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,
86 | 1,Chile,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,,
87 | 1,Poland,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+1,,,,,,,,,,,,,,,,,,,,,,,,
88 |
--------------------------------------------------------------------------------
/figures/fig1.tiff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akira-endo/COVID19_clustersize/e748321cf4bccd6cc5ee77afde83b51479f3f449/figures/fig1.tiff
--------------------------------------------------------------------------------
/figures/fig2.tiff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akira-endo/COVID19_clustersize/e748321cf4bccd6cc5ee77afde83b51479f3f449/figures/fig2.tiff
--------------------------------------------------------------------------------
/figures/figS1.tif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akira-endo/COVID19_clustersize/e748321cf4bccd6cc5ee77afde83b51479f3f449/figures/figS1.tif
--------------------------------------------------------------------------------
/figures/figS2.tif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akira-endo/COVID19_clustersize/e748321cf4bccd6cc5ee77afde83b51479f3f449/figures/figS2.tif
--------------------------------------------------------------------------------
/figures/figS3.tif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akira-endo/COVID19_clustersize/e748321cf4bccd6cc5ee77afde83b51479f3f449/figures/figS3.tif
--------------------------------------------------------------------------------
/figures/outbreaksize-fig1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akira-endo/COVID19_clustersize/e748321cf4bccd6cc5ee77afde83b51479f3f449/figures/outbreaksize-fig1.png
--------------------------------------------------------------------------------
/src/2020-03-11-overdispersion-from-outbreaksize.md:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | #add the title of your project
4 | title: Estimating the overdispersion in COVID-19 transmission using outbreak sizes outside China
5 |
6 | #add a description
7 |
8 | description: We evaluated the overdispersion in the number of secondary transmissions of COVID-19
9 |
10 | #add a status: in-progress, under-review, published
11 | #defaults to in-progress if not set
12 | status: in-progress
13 |
14 | #add the date at which post is updated (if applicable), in YYYY-MM-DD
15 | update: 2020-03-12
16 |
17 | #add optional hash-array with authors
18 | # see /_data/authors.yml for list of ids, or to add/edit an author
19 | # can add ncov-group as one author, will link to list of members
20 | # can set equal: X to show 'contributed equally'
21 | # can set corresponding: true to indicate corresponding author
22 | authors:
23 | - id: akira_endo
24 | corresponding: true
25 | - id: ncov-group
26 | - id: adam_kucharski
27 | - id: seb_funk
28 |
29 | ---
30 |
31 | ## Aim
32 | To estimate the level of overdispersion in COVID-19 transmission from the worldwide case count data.
33 |
34 | ## Methods summary
35 | * We extracted the number of imported/local cases in the affected countries from the [WHO situation report 38](https://www.who.int/docs/default-source/coronaviruse/situation-reports/20200227-sitrep-38-covid-19.pdf) published on 27 February 2020.
36 | * Assuming that the offspring distribution (distribution of the number of secondary transmissions) for COVID-19 cases is an identically- and independently-distributed negative-binomial distribution, we estimated the parameters of the negative-binomial distribution (reproduction number $R_0$ and overdispersion $k$) using the likelihood of observing the reported number of imported/local cases (outbreak size) of COVID-19 for each country.
37 | * The outbreak size may grow in countries with an ongoing outbreak; using the current outbreak size as the final size for such countries may introduce bias. We assumed that the growth of a cluster in a country had not been ceased if the latest reported cases were within 7 days before 27 February 2020, and adjusted the likelihood for these countries by using the condition that the final cluster size has to be at least as large as the currently observed number of cases.
38 |
39 | ## Key findings
40 | * The offspring distribution of COVID-19 is highly overdispersed.
41 | * For the likely range of $R_0$ of 2-3, the overdispersion parameter $k$ was estimated to be around 0.1, suggesting that the majority of secondary transmission is caused by a very small fraction of individuals (80% of transmissions caused by ~10% of the total cases).
42 | * Joint estimation of $R_0$ and $k$ indicated it is likely that $R_0>1.4$ and $k<0.2$. The current data and model did not provide evidence on the upper bound of $R_0$.
43 |
44 | 
45 | Figure 1. MCMC estimates given assumed R0 values.
46 | (A) Estimated overestimation parameter for various basic reproduction number R0. (B) Proportion of infected individuals responsible for 80% of the total secondary transmissions (p80%).
47 | The black lines show the median estimates given fixed R0 values and the grey shaded areas indicate 95% CrIs. The regions corresponding to the likely range of R0 (2-3) are indicated by colour.
48 |
49 |
50 | Table 1. Credible intervals from a joint estimation
51 |
52 | | Prior distribution | 95% lower bound | 95% upper bound |
53 |
54 |
55 | R0 | $\mathcal N(3,5)$ | 1.4 | 11.6 |
56 | k | $\mathrm{HalfNormal}(10)$ for the reciprocal $k^{-1}$ | 0.04 | 0.2 |
57 |
58 |
59 |
60 | ## Limitations
61 | * We used the confirmed case counts reported to WHO and did not account for possible underreporting of cases.
62 | * Reported cases whose site of infection classified as unknown, which should in principle be counted as either imported or local cases, were excluded from analysis.
63 | * The distinction between countries with and without ongoing outbreak (7 days without any new confirmation of cases) was arbitrary and the results may be sensitive to this assumption.
64 |
65 | ## Detailed methods
66 | Full details and the underlying scripts can be found on a [Github page](https://akira-endo.github.io/COVID19_clustersize/COVID19_clustersize.html).
67 | ### Data source
68 | We extracted the number of imported/local cases in the affected countries from the [WHO situation report 39](https://www.who.int/docs/default-source/coronaviruse/situation-reports/20200227-sitrep-38-covid-19.pdf) published on 27 February 2020, which, at the time of writing, is the latest report of the number of imported/local cases in each country (from the situation report 40, WHO no longer reports the number of cases stratified by the site of infection). We defined imported cases as the cases whose likely site of infection is outside the reporting country, and the local cases as those whose likely site of infection is inside the reporting country. Those whose site of infection under investigation were excluded from the analysis. In Egypt and Iran, no imported cases have been confirmed which cause the likelihood value to be zero. Data in these two countries were excluded.
69 |
70 | To distinguish between countries with and without an ongoing outbreak, we extracted daily case counts from an [online resource (COVID2019.app)](https://docs.google.com/spreadsheets/d/1Z7VQ5xlf3BaTx_LBBblsW4hLoGYWnZyog3jqsS9Dbgc) and determined the dates of the latest case confirmation for each country (as of 27 February).
71 |
72 | ### Final outbreak size
73 | Assume that the offspring distribution for COVID-19 cases is an i.i.d. negative-binomial distribution. The probability mass function for the final cluster size resulting from $s$ initial cases is, according to [Blumberg et al.](https://doi.org/10.1371/journal.ppat.1004452), given by
74 | $$
75 | c(x;s)=P(X=x;s)=\frac{ks}{kx+x-s}\binom{kx+x-s}{x-s}\frac{\left(\frac{R_0} k\right)^{x-s}}{\left(1+\frac{R_0} k\right)^{kx+x-s}}.
76 | $$
77 |
78 | If the observed case counts are part of an ongoing outbreak in a country, cluster sizes may grow in the future. To address this issue, we adjusted the likelihood corresponding those countries with ongoing outbreak by only using the condition that the final cluster size of such a country has to be larger than the currently observed number of cases. The corresponding likelihood function is
79 | $$
80 | c_\mathrm{o}(x;s)=P(X\geq x;s)=1-\sum_{m=0}^{x}c(m;s)+c(x;s)
81 | $$
82 |
83 | ### Defining countries with ongoing outbreak and total likelihood
84 | We assumed that the growth of a cluster in a country had ceased if 7 days have passed since the latest reported cases (denoted by $A$). We applied the final size likelihood $c(x;s)$ to those countries and $c_\mathrm{o}(x;s)$ to the rest of the countries (countries with an ongoing outbreak: $B$).
85 |
86 | The total likelihood is
87 | $$
88 | L(R_0,k)=\prod_{i\in A}P(X=x_i;s_i)\prod_{i\in B}P(X\geq x_i;s_i)
89 | $$
90 |
91 | ### Estimating overdispersion parameter
92 | Holding $R_0$ constant, we estimated the overdispersion parameter $k$ using the likelihood given above. We used the Markov-chain Monte Carlo (MCMC) method to provide 95% credible intervals (CrIs). The reciprocal of $k$ (concentration parameter) was sampled where the prior distribution for the reciprocal was weakly-informed half-normal ($\mathrm{HalfNormal}(\sigma=10)$). We employed the adaptive hit-and-run Metropolis algorithm and obtained 500 thinned samples from 10,000 MCMC steps (where the first half of the chain was discarded as burn-in).
93 |
94 | ### Proportion responsible for 80% of transmissions
95 | Following [Grantz et al.](https://hopkinsidd.github.io/nCoV-Sandbox/DispersionExploration.html), we calculated the estimated proportion of infected individuals responsible for 80% of secondary transmissions caused. Such proportion $p_{80\%}$ is given as
96 | $$
97 | 1-p_{80\%}=\int_0^{X}\mathrm{NB}\left(\lfloor x\rfloor;k,\frac{k}{R_0+k}\right)dx,
98 | $$
99 | where $X$ satisfies
100 | $$
101 | 1-0.8=\frac 1{R_0}\int_0^{X}\lfloor x\rfloor\mathrm{NB}\left(\lfloor x\rfloor;k,\frac{k}{R_0+k}\right)dx.
102 | $$
103 |
104 | Note that
105 | $$
106 | \frac 1{R_0}\int_0^{X}\lfloor x\rfloor\mathrm{NB}\left(\lfloor x\rfloor;k,\frac{k}{R_0+k}\right)dx=\int_0^{X-1}\mathrm{NB}\left(\lfloor x\rfloor;k+1,\frac{k}{R_0+k}\right)dx.
107 | $$
108 |
109 | We computed $p_{80\%}$ for each MCMC sample to yield median and 95% CrIs.
110 |
111 | ### Joint estimation of $R_{0}$ and $k$
112 | We performed a joint estimation of $R_0$ and $k$ by MCMC (with a weakly-informed normal prior $\mathcal N(\mu=3,\sigma=5)$ for $R_0$; the prior for $k^{-1}$ was the same as above). The posterior distribution indicated a lower bound of $R_0$ of 1.4 and the upper bound of $k$ of 0.2. The upper bound of $R_0$ did not differ much from that of the prior, suggesting that our model and data did not provide useful evidence on the upper bound of $R_0$.
--------------------------------------------------------------------------------
/src/COVID19_clustersize.Rmd:
--------------------------------------------------------------------------------
1 | ---
2 | jupyter:
3 | jupytext:
4 | formats: ipynb,Rmd
5 | text_representation:
6 | extension: .Rmd
7 | format_name: rmarkdown
8 | format_version: '1.1'
9 | jupytext_version: 1.2.4
10 | kernelspec:
11 | display_name: R
12 | language: R
13 | name: ir
14 | ---
15 |
16 | # Estimating the overdispersion in COVID-19 transmission using outbreak sizes outside China
17 | ### Akira Endo, Centre for the Mathematical Modelling of Infectious Diseases COVID-19 Working Group, Adam Kucharski, Sebastian Funk
18 | ## Background
19 |
20 | A novel coronavirus disease (COVID-19) outbreak, which is considered to be associated with a market in Wuhan, China, is now affecting a number of countries worldwide ([Zhu et al.](https://doi.org/10.1056/NEJMoa2001017)). Substantial amount of human-to-human transmissions are being observed; the basic reproduction number $R_0$ (the average number of secondary transmissions caused by a single primary case) has been estimated around 2-3 ([Zhao et al.](https://doi.org/10.1016/j.ijid.2020.01.050)). More than 30 countries have observed confirmed cases of COVID-19. A few countries have already shifted from the containment phase to the mitigation phase, with a substantial number of locally acquired cases (including those whose epidemiological link is untraceable). On the other hand, there are countries where a number of imported cases were ascertained but not as many secondary cases as one might expect with an $R_0$ value of 2-3.
21 |
22 | This suggests that not all symptomatic cases cause a secondary transmission, which was also suggested in the past coronavirus outbreaks (SARS/MERS). Such high variation in the distribution of the number of secondary transmissions, so-called superspreading events, is critical information in the epidemic control strategy ([Lloyd-Smith et al.](https://doi.org/10.1038/nature04153)). High overdispersion in the offspring distribution suggests that most cases do not contribute to the expansion of the epidemic, thereby highlighting the importance of containment efforts to prevent superspreading events from happening.
23 |
24 | Here we estimate the amount of overdispersion, or superspreading, by using a mathematical model of transmission that is characterised $R_0$ and the overdispersion parameter $k$ of a negative binomial branching process. We fit this model to worldwide data on COVID-19 cases to estimate $k$ given the likely range of $R_0$ and interpret this in the context of superspreading.
25 |
26 |
27 | ## Method
28 | Assume that the offspring distribution for COVID-19 cases is an i.i.d. negative-binomial distribution. The probability mass function for the final cluster size resulting from $s$ initial cases is, according to [Blumberg et al.](https://doi.org/10.1371/journal.ppat.1004452), given by
29 | $$
30 | c(x;s)=P(X=x;s)=\frac{ks}{kx+x-s}\binom{kx+x-s}{x-s}\frac{\left(\frac{R_0} k\right)^{x-s}}{\left(1+\frac{R_0} k\right)^{kx+x-s}}.
31 | $$
32 |
33 | If the observed case counts are part of an ongoing outbreak in a country, cluster sizes may grow in the future. To address this issue, we adjusted the likelihood corresponding those countries with ongoing outbreak by only using the condition that the final cluster size of such a country has to be larger than the currently observed number of cases. The corresponding likelihood function is
34 | $$
35 | c_\mathrm{o}(x;s)=P(X\geq x;s)=1-\sum_{m=0}^{x}c(m;s)+c(x;s)
36 | $$
37 |
38 | ### Defining countries with ongoing outbreak and total likelihood
39 | We assumed that the growth of a cluster in a country had ceased if 7 days are passed since the latest reported cases (denoted by $A$). We applied the final size likelihood $c(x;s)$ to those countries and $c_\mathrm{o}(x;s)$ to the rest of the countries (countries with ongoing outbreak: $B$).
40 |
41 | The total likelihood is
42 | $$
43 | L(R_0,k)=\prod_{i\in A}P(X=x_i;s_i)\prod_{i\in B}P(X\geq x_i;s_i)
44 | $$
45 |
46 |
47 | ### Data source
48 | We extracted the number of imported/local cases in the affected countries from the [WHO situation report 38](https://www.who.int/docs/default-source/coronaviruse/situation-reports/20200227-sitrep-38-covid-19.pdf) published on 27 February 2020, which, at the time of writing, is the latest report of the number of imported/local cases in each country (from the situation report 40, WHO no longer reports the number of cases stratified by the site of infection). We defined imported cases as the cases whose likely site of infection is outside the reporting country, and the local cases as those whose likely site of infection is inside the reporting country. Those whose site of infection under investigation were excluded from the analysis. In Egypt and Iran, no imported cases have been confirmed which cause the likelihood value to be zero. Data in these two countries were excluded.
49 |
50 | To distinguish between countries with and without an ongoing outbreak, we extracted daily case counts from an [online resource (COVID2019.app)](https://docs.google.com/spreadsheets/d/1Z7VQ5xlf3BaTx_LBBblsW4hLoGYWnZyog3jqsS9Dbgc) and determined the dates of the latest case confirmation for each country (as of 27 February).
51 |
52 | ```{r}
53 | library(repr)
54 | options(repr.plot.width=6, repr.plot.height=5)
55 | # options(jupyter.plot_mimetypes = "image/svg+xml")
56 | currdate=as.Date("2020-2-27")
57 | # buffer period: we assume the growth of a cluster is ceased when this period has been passed since the latest case report
58 | buffer=7
59 | ```
60 |
61 | ```{r}
62 | # Data
63 | # Imported and local cases outside China
64 | # Source (accessed 4/3/2020): https://www.who.int/docs/default-source/coronaviruse/situation-reports/20200227-sitrep-38-covid-19.pdf
65 | WHO_data=read.csv("../data/bycountries_27Feb2020.csv")
66 | WHO_data[,"ImportedChina"]=WHO_data[,"ImportedChina"]+WHO_data[,"ImportedOthers"]
67 | WHO_data=WHO_data[,-4]
68 | colnames(WHO_data)[3]="Imported"
69 | rownames(WHO_data)=WHO_data[,1]
70 |
71 | # Daily confirmed cases (by date of confirmation)
72 | # Source (accessed 18/2/2020): https://docs.google.com/spreadsheets/d/1Z7VQ5xlf3BaTx_LBBblsW4hLoGYWnZyog3jqsS9Dbgc
73 | daily_data=read.csv("../data/dailycases_international_27Feb2020.csv")
74 | countrynames=daily_data[-(1:3),2]
75 | names(countrynames)=as.character(countrynames)
76 | counts=suppressWarnings(apply(t(daily_data[-(1:2),-(1:2)]),1:2,as.numeric))
77 | dates=as.Date("2020-1-13")+1:nrow(counts)-1
78 | dailydata=cbind(dates,as.data.frame(counts))
79 | dailydata=dailydata[,-2]
80 | rownames(dailydata)=dailydata[,1]
81 | colnames(dailydata)=c("date",as.character(countrynames))
82 |
83 |
84 | # get dates of last reported case for each country
85 | dateidx=seq(as.Date("2020-1-13"),currdate,by="days")
86 | dailydata_tillcurrdate=dailydata[as.character(dateidx),-1]
87 | latestdates=as.Date(apply(dailydata_tillcurrdate,2,function(x){
88 | lastreported=tail(which(!(x %in% NA)),1)
89 | if(length(lastreported)==0){NA}
90 | else{as.character(dailydata[lastreported,1])}
91 | }))
92 | latestdates=data.frame(countrynames,latestdates)
93 | rownames(latestdates)=as.character(countrynames)
94 |
95 | # get the number of cases within the buffer period
96 | bufferdays=seq(currdate-buffer,currdate,by="days")
97 | ongoingbranches=colSums(dailydata[as.character(bufferdays),-1],na.rm=T)
98 |
99 | # reorder latestdates and ongoingbranches according to WHO data
100 | latestdates_WHO=latestdates[rownames(WHO_data),2]
101 | ongoingbranches_WHO=ongoingbranches[rownames(WHO_data)]
102 | WHO_data=cbind(WHO_data,latestdate=latestdates_WHO,ongoingbranches=ongoingbranches_WHO)
103 | WHO_data[,-1]
104 | WHO_data=WHO_data[!rownames(WHO_data) %in% c("Egypt","Iran","Estonia"),] # exclude Egypt and Iran, where imported cases are reported to be zero
105 | ```
106 |
107 | ```{r}
108 | # label countries with/without cases in the last (buffer) days
109 | isextinct=WHO_data$latestdate2$, the overdispersion parameter $k$ was estimated to be around 0.1, suggesting that the majority of secondary transmission is caused by a very small fraction of individuals (80% of transmissions caused by ~10% of the total cases) ([Liu et al.](https://doi.org/10.1016/S0140-6736(20)30462-1)). This suggests that the effective reproduction number could be drastically reduced by interventions targeting potential superspreading events. From the current dataset and model, we were unable to simultaneously estimate $R_0$ and $k$. More detailed dataset on the epidemiological link between cases could improve these estimates in the future.
272 |
273 |
274 | ## Additional analysis
275 | ### Model comparison with a Poisson model
276 | The baseline negative-binomial branching process model was compared with a Poisson branching process model by the widely-applicable Bayesian information criterion (WBIC).
277 |
278 | ```{r}
279 | # model comparison with a Poisson model
280 | Model_Pois=function(R0,Data){
281 | ret=Model_joint(c(R0,1e-10),Data)
282 | ret$parm=ret$parm[1]
283 | ret
284 | }
285 | Data_Pois=list(N=13,mon.names=c("R0","k"),parm.names="R0",icases=icases,lcases=lcases,ocases=ocases,isextinct=isextinct)
286 |
287 | niter=10000
288 | fit_Pois=LaplacesDemon(Model=Model_Pois,Data=Data_Pois,Initial.Values=2,Covar=NULL,Iterations=niter,Status=niter%/%10,Thinning=10,Algorithm='HARM',Specs=list(alpha.star=0.23,B=NULL))
289 |
290 | fit_Pois=LaplacesDemon(Model=Model_Pois,Data=Data_Pois,Initial.Values=2,Covar=NULL,Iterations=niter,Status=niter%/%10,Thinning=10,Algorithm='HARM',Specs=list(alpha.star=0.23,B=NULL))
291 | Model_joint_WBIC=function(parm,Data){
292 | ret=Model_joint(parm,Data)
293 | ret$LP=ret$LP/log(nrow(WHO_data))
294 | ret
295 | }
296 | Model_Pois_WBIC=function(parm,Data){
297 | ret=Model_Pois(parm,Data)
298 | ret$LP=ret$LP/log(nrow(WHO_data))
299 | ret
300 | }
301 | WBfit_joint=LaplacesDemon(Model=Model_joint_WBIC,Data=Data_joint,Initial.Values=2,Covar=NULL,Iterations=niter,Status=niter%/%10,Thinning=10,Algorithm='HARM',Specs=list(alpha.star=0.23,B=NULL))
302 | WBfit_Pois=LaplacesDemon(Model=Model_Pois_WBIC,Data=Data_Pois,Initial.Values=2,Covar=NULL,Iterations=niter,Status=niter%/%10,Thinning=10,Algorithm='HARM',Specs=list(alpha.star=0.23,B=NULL))
303 | print(list(WBIC.NBinom=WBfit_joint$Summary2["Deviance","Mean"],WBIC.Pois=WBfit_Pois$Summary2["Deviance","Mean"]))
304 | ```
305 |
306 | ### Offspring distributions for different $R_0$ and $k$
307 | Negative-binomial offspring distributions corresponding to $(R_0=2.5, k=0.1)$ and other sets of values
308 |
309 | ```{r}
310 | # Show offspring distributions
311 | par(mfrow=c(2,3))
312 | barplot(c(dnbinom(0:20,0.1,mu=2.5),NA,pnbinom(20,0.1,mu=2.5,lower.tail=F)),names.arg=c(0:20,NA,">20"),xlab="the number of secondary cases",ylab="probability",ylim=c(0,0.8))
313 | legend("topright",c("R0 = 2.5 ","k = 0.1 "),bty="n")
314 | barplot(c(dnbinom(0:20,0.05,mu=2.5),NA,pnbinom(20,0.05,mu=2.5,lower.tail=F)),ylim=c(0,0.8),border="blue",col=NA,names.arg=c(0:20,NA,">20"),xlab="the number of secondary cases",ylab="probability")
315 | legend("topright",c("R0 = 2.5 ","k = 0.05 "),bty="n")
316 | barplot(c(dnbinom(0:20,0.2,mu=2.5),NA,pnbinom(20,0.2,mu=2.5,lower.tail=F)),ylim=c(0,0.8),border="red",col=NA,names.arg=c(0:20,NA,">20"),xlab="the number of secondary cases",ylab="probability")
317 | legend("topright",c("R0 = 2.5 ","k = 0.2 "),bty="n")
318 |
319 | barplot(c(dnbinom(0:20,0.1,mu=2.5),NA,pnbinom(20,0.1,mu=2.5,lower.tail=F)),names.arg=c(0:20,NA,">20"),xlab="the number of secondary cases",ylab="probability",ylim=c(0,0.8))
320 | legend("topright",c("R0 = 2.5 ","k = 0.1 "),bty="n")
321 | barplot(c(dnbinom(0:20,0.1,mu=1.5),NA,pnbinom(20,0.1,mu=1.5,lower.tail=F)),ylim=c(0,0.8),border="blue",col=NA,names.arg=c(0:20,NA,">20"),xlab="the number of secondary cases",ylab="probability")
322 | legend("topright",c("R0 = 1.5 ","k = 0.1 "),bty="n")
323 | barplot(c(dnbinom(0:20,0.1,mu=5),NA,pnbinom(20,0.1,mu=5,lower.tail=F)),ylim=c(0,0.8),border="red",col=NA,names.arg=c(0:20,NA,">20"),xlab="the number of secondary cases",ylab="probability")
324 | legend("topright",c("R0 = 5 ","k = 0.1 "),bty="n")
325 | ```
326 |
327 | ## Smaller reproduction number for imported cases
328 | Imported cases may exhibit a smaller reproduction number due to intervention measures such as isolation/quarantine. We accounted for this possibility by modifying the likelihood function $c(x;s)$ as
329 | $$
330 | c_I(x;s)=\sum_{j=0}^x \operatorname{NB}(j;ks,\mu=sR_I)c(x-s;j).
331 | $$
332 | where $R_I$ is the effective reproduction number for imported cases, which we varied (0.5, 0.8, 1.2) to estimate $k$. $R_0$ (the reproduction number for local cases) were assumed to be 2.5 throughout.
333 |
334 | ```{r}
335 | llextinct_importcontrol<-function(icases,lcases,R0,k){
336 | if(length(icases)==0)return(0)
337 | tcases=lcases+icases
338 | lls=tcases*0
339 | for(i in 1:length(lls)){
340 | ls=sapply(0:lcases[i],function(ioffsprings){
341 | ll=dnbinom(ioffsprings,k*icases[i],mu=R0[1]*icases[i],log=T)+llextinct(ioffsprings,lcases[i]-ioffsprings,R0[2],k,F)
342 | return(ll)
343 | })
344 | lls[i]=lls[i]+logSumExp(ls)
345 | }
346 | sum(lls,na.rm=T)
347 | }
348 | ```
349 |
350 | ```{r}
351 | Data=list(N=13,mon.names=c("R0_imp","R0_loc","k"),parm.names="invk",R0=c(1,2.5),icases=icases,lcases=lcases,ocases=ocases,isextinct=isextinct)
352 | Model=function(parm,Data){
353 | invk=interval(parm,0)
354 | lp=lltotal_R0(invk,Data$icases,Data$lcases,Data$isextinct,Data$R0,T)
355 | lp=lp+dnorm(invk,0,10,log=T)
356 | return(list(LP=lp,Dev=-2*lp,Monitor=c(Data$R0,1/invk),yhat=NULL,parm=invk))
357 | }
358 | R0s=c(0.5,0.8,1.2)
359 | niter=10000
360 | set.seed(20)
361 | mcmcfits=lapply(R0s,function(R0){
362 | Data$R0[1]=R0
363 | fit=LaplacesDemon(Model=Model,Data=Data,Initial.Values=50,Covar=NULL,Iterations=niter,Status=niter,Thinning=10,Algorithm='HARM',Specs=list(alpha.star=0.2,B=NULL))
364 | })
365 |
366 | k_mcmc=sapply(mcmcfits,function(x){x$Monitor[(niter%/%20):(niter%/%10),3]})
367 | ll_mcmc=sapply(mcmcfits,function(x){-x$Deviance[(niter%/%20):(niter%/%10)]/2})
368 | ```
369 |
370 | ```{r}
371 | colnames(k_mcmc)=paste("k (R_I = ", c(0.5,0.8,1.2),")")
372 | apply(k_mcmc,2,quantile,c(0.025,0.5,0.975))
373 | ```
374 |
375 | ### Simulation of underreporting
376 | To investigate the effect of potential underreporting of cases, simulational dataset was generated and the overdispersion parameter $k$ was estimated by the maximum likelihood estimation. For each country in the WHO situation report dataset, the reporting probability $q_i$ was sampled from a beta distribution and the true number of imported cases were sampled based on the observed number and the sampled $q_i$. Three generations of transmission chains were drawn with a negative-binomial offspring distribution where $R_0=2.5$ and $k=0.1$ to provide the observed local cases given the same reporting probability $q_i$.
377 |
378 | ```{r}
379 | R0=2.5;k=0.1
380 | sim_data=function(icases,R0,k,betaparm=NULL){
381 | generations=numeric(length(icases))+3#sample(2:4,length(icases),T)+1
382 | if(is.null(betaparm)){reporting=numeric(length(icases))+1
383 | }else{reporting=rbeta(length(icases),betaparm[1],betaparm[2])}
384 | icases_all=rnbinom(length(icases),icases+1,reporting)+icases
385 | sapply(1:length(icases),function(i){sim_cluster(icases[i],icases_all[i],generations[i],reporting[i],R0,k)})
386 | }
387 | sim_cluster=function(icase,icase_all,generation,reporting,R0,k){
388 | recursive_nb=function(ts,generation,R0,k){
389 | if(length(ts)==generation){return(ts)}
390 | else if(ts[length(ts)]==0){
391 | return(c(ts,numeric(generation-length(ts))))
392 | }else{
393 | ts=c(ts,rnbinom(1,k*ts[length(ts)],k/(R0+k)))
394 | return(recursive_nb(ts,generation,R0,k))
395 | }
396 | }
397 | tseries=recursive_nb(icase_all,generation,R0,k)
398 | ts_obs=rbinom(length(tseries),tseries,reporting)
399 | c(icase,sum(ts_obs[-1]),ts_obs[length(ts_obs)]==0)
400 | }
401 | estim_k=function(times,R0,betaparm=NULL){
402 | sapply(1:times,function(x){
403 | data=sim_data(icases,R0,k,betaparm)
404 | ll=function(invk){-lltotal_R0(invk,data[1,],data[2,],as.logical(data[3,]),R0)}
405 | 1/optim(fn=ll,par=10,method="Brent",lower=1e-2,upper=1e3)$par
406 | })
407 | }
408 |
409 | set.seed(20)
410 | estims=sapply(c(8,5,2),function(x){estim_k(500,2.5,c(x,10-x))})
411 | estims=cbind(estim_k(500,2.5),estims)
412 | colnames(estims)=c("1 (constant)","beta(8,2)","beta(5,5)","beta(2,8)")
413 | ```
414 |
415 | ```{r}
416 | # plot
417 | boxplot(estims,ylim=c(0,2),col="lightgray",ylab="overdispersion parameter k",xlab="distribution of reporting probability")
418 | abline(h=0.1,lty=2,col="blue")
419 | betas=cbind(dbeta(0:100/100,8,2),dbeta(0:100/100,5,5),dbeta(0:100/100,2,8))
420 | colnames(betas)=colnames(estims)[-1]
421 | matplot(x=0:100/100,betas,type="l",ylim=c(0,5),lty=1,col=2:4,xlab="reporting probability",ylab="density")
422 | legend("topright",col=2:4,legend=paste(colnames(betas)," "),bty="n",lty=1,y.intersp=2)
423 | ```
424 |
425 | The same procedure was repeated where the reporting probability for the imported cases was assumed to be 100%.
426 |
427 | ```{r}
428 | # overwrite sim_data to assume 100% reporting for imported cases
429 | sim_data=function(icases,R0,k,betaparm=NULL){
430 | generations=numeric(length(icases))+3#sample(2:4,length(icases),T)+1
431 | if(is.null(betaparm)){reporting=numeric(length(icases))+1
432 | }else{reporting=rbeta(length(icases),betaparm[1],betaparm[2])}
433 | icases_all=icases
434 | sapply(1:length(icases),function(i){sim_cluster(icases[i],icases_all[i],generations[i],reporting[i],R0,k)})
435 | }
436 | set.seed(19)
437 | estims_all=sapply(c(8,5,2),function(x){estim_k(500,2.5,c(x,10-x))})
438 | estims_all=cbind(estim_k(500,2.5),estims_all)
439 | colnames(estims_all)=c("1 (constant)","beta(8,2)","beta(5,5)","beta(2,8)")
440 |
441 | boxplot(estims_all,ylim=c(0,0.5),col="lightgray",ylab="overdispersion parameter k",xlab="distribution of reporting probability")
442 | abline(h=0.1,lty=2,col="blue")
443 | betas=cbind(dbeta(0:100/100,8,2),dbeta(0:100/100,5,5),dbeta(0:100/100,2,8))
444 | colnames(betas)=colnames(estims)[-1]
445 | matplot(x=0:100/100,betas,type="l",ylim=c(0,5),lty=1,col=2:4,xlab="reporting probability",ylab="density")
446 | legend("topright",col=2:4,legend=paste(colnames(betas)," "),bty="n",lty=1,y.intersp=2)
447 | ```
448 |
--------------------------------------------------------------------------------
/src/COVID19_clustersize.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Estimating the overdispersion in COVID-19 transmission using outbreak sizes outside China\n",
8 | "### Akira Endo, Centre for the Mathematical Modelling of Infectious Diseases COVID-19 Working Group, Adam Kucharski, Sebastian Funk\n",
9 | "## Background\n",
10 | "\n",
11 | "A novel coronavirus disease (COVID-19) outbreak, which is considered to be associated with a market in Wuhan, China, is now affecting a number of countries worldwide ([Zhu et al.](https://doi.org/10.1056/NEJMoa2001017)). Substantial amount of human-to-human transmissions are being observed; the basic reproduction number $R_0$ (the average number of secondary transmissions caused by a single primary case) has been estimated around 2-3 ([Zhao et al.](https://doi.org/10.1016/j.ijid.2020.01.050)). More than 30 countries have observed confirmed cases of COVID-19. A few countries have already shifted from the containment phase to the mitigation phase, with a substantial number of locally acquired cases (including those whose epidemiological link is untraceable). On the other hand, there are countries where a number of imported cases were ascertained but not as many secondary cases as one might expect with an $R_0$ value of 2-3.\n",
12 | "\n",
13 | "This suggests that not all symptomatic cases cause a secondary transmission, which was also suggested in the past coronavirus outbreaks (SARS/MERS). Such high variation in the distribution of the number of secondary transmissions, so-called superspreading events, is critical information in the epidemic control strategy ([Lloyd-Smith et al.](https://doi.org/10.1038/nature04153)). High overdispersion in the offspring distribution suggests that most cases do not contribute to the expansion of the epidemic, thereby highlighting the importance of containment efforts to prevent superspreading events from happening.\n",
14 | "\n",
15 | "Here we estimate the amount of overdispersion, or superspreading, by using a mathematical model of transmission that is characterised $R_0$ and the overdispersion parameter $k$ of a negative binomial branching process. We fit this model to worldwide data on COVID-19 cases to estimate $k$ given the likely range of $R_0$ and interpret this in the context of superspreading."
16 | ]
17 | },
18 | {
19 | "cell_type": "markdown",
20 | "metadata": {},
21 | "source": [
22 | "## Method\n",
23 | "Assume that the offspring distribution for COVID-19 cases is an i.i.d. negative-binomial distribution. The probability mass function for the final cluster size resulting from $s$ initial cases is, according to [Blumberg et al.](https://doi.org/10.1371/journal.ppat.1004452), given by\n",
24 | "$$\n",
25 | "c(x;s)=P(X=x;s)=\\frac{ks}{kx+x-s}\\binom{kx+x-s}{x-s}\\frac{\\left(\\frac{R_0} k\\right)^{x-s}}{\\left(1+\\frac{R_0} k\\right)^{kx+x-s}}.\n",
26 | "$$\n",
27 | "\n",
28 | "If the observed case counts are part of an ongoing outbreak in a country, cluster sizes may grow in the future. To address this issue, we adjusted the likelihood corresponding those countries with ongoing outbreak by only using the condition that the final cluster size of such a country has to be larger than the currently observed number of cases. The corresponding likelihood function is\n",
29 | "$$\n",
30 | "c_\\mathrm{o}(x;s)=P(X\\geq x;s)=1-\\sum_{m=0}^{x}c(m;s)+c(x;s)\n",
31 | "$$\n",
32 | "\n",
33 | "### Defining countries with ongoing outbreak and total likelihood\n",
34 | "We assumed that the growth of a cluster in a country had ceased if 7 days are passed since the latest reported cases (denoted by $A$). We applied the final size likelihood $c(x;s)$ to those countries and $c_\\mathrm{o}(x;s)$ to the rest of the countries (countries with ongoing outbreak: $B$).\n",
35 | "\n",
36 | "The total likelihood is\n",
37 | "$$\n",
38 | "L(R_0,k)=\\prod_{i\\in A}P(X=x_i;s_i)\\prod_{i\\in B}P(X\\geq x_i;s_i)\n",
39 | "$$"
40 | ]
41 | },
42 | {
43 | "cell_type": "markdown",
44 | "metadata": {},
45 | "source": [
46 | "### Data source\n",
47 | "We extracted the number of imported/local cases in the affected countries from the [WHO situation report 38](https://www.who.int/docs/default-source/coronaviruse/situation-reports/20200227-sitrep-38-covid-19.pdf) published on 27 February 2020, which, at the time of writing, is the latest report of the number of imported/local cases in each country (from the situation report 40, WHO no longer reports the number of cases stratified by the site of infection). We defined imported cases as the cases whose likely site of infection is outside the reporting country, and the local cases as those whose likely site of infection is inside the reporting country. Those whose site of infection under investigation were excluded from the analysis. In Egypt and Iran, no imported cases have been confirmed which cause the likelihood value to be zero. Data in these two countries were excluded.\n",
48 | "\n",
49 | "To distinguish between countries with and without an ongoing outbreak, we extracted daily case counts from an [online resource (COVID2019.app)](https://docs.google.com/spreadsheets/d/1Z7VQ5xlf3BaTx_LBBblsW4hLoGYWnZyog3jqsS9Dbgc) and determined the dates of the latest case confirmation for each country (as of 27 February)."
50 | ]
51 | },
52 | {
53 | "cell_type": "code",
54 | "execution_count": 1,
55 | "metadata": {},
56 | "outputs": [],
57 | "source": [
58 | "library(repr)\n",
59 | "options(repr.plot.width=6, repr.plot.height=5)\n",
60 | "# options(jupyter.plot_mimetypes = \"image/svg+xml\") \n",
61 | "currdate=as.Date(\"2020-2-27\")\n",
62 | "# buffer period: we assume the growth of a cluster is ceased when this period has been passed since the latest case report\n",
63 | "buffer=7"
64 | ]
65 | },
66 | {
67 | "cell_type": "code",
68 | "execution_count": 2,
69 | "metadata": {},
70 | "outputs": [
71 | {
72 | "data": {
73 | "text/html": [
74 | "\n",
75 | "A data.frame: 46 × 7\n",
76 | "\n",
77 | "\t | Total | Imported | Local | Unknown | Death | latestdate | ongoingbranches |
\n",
78 | "\t | <int> | <int> | <int> | <int> | <int> | <date> | <dbl> |
\n",
79 | "\n",
80 | "\n",
81 | "\tSouth Korea | 1766 | 17 | 605 | 1144 | 13 | 2020-02-27 | 1715 |
\n",
82 | "\tJapan | 186 | 39 | 129 | 18 | 3 | 2020-02-27 | 112 |
\n",
83 | "\tSingapore | 93 | 24 | 69 | 0 | 0 | 2020-02-27 | 12 |
\n",
84 | "\tAustralia | 23 | 20 | 3 | 0 | 0 | 2020-02-26 | 8 |
\n",
85 | "\tMalaysia | 22 | 20 | 2 | 0 | 0 | 2020-02-27 | 1 |
\n",
86 | "\tVietnam | 16 | 8 | 8 | 0 | 0 | 2020-02-13 | 0 |
\n",
87 | "\tPhilippines | 3 | 3 | 0 | 0 | 1 | 2020-02-05 | 0 |
\n",
88 | "\tCambodia | 1 | 1 | 0 | 0 | 0 | 2020-01-30 | 0 |
\n",
89 | "\tThailand | 40 | 23 | 7 | 10 | 0 | 2020-02-26 | 5 |
\n",
90 | "\tIndia | 3 | 3 | 0 | 0 | 0 | 2020-02-03 | 0 |
\n",
91 | "\tNepal | 1 | 1 | 0 | 0 | 0 | 2020-01-24 | 0 |
\n",
92 | "\tSri Lanka | 1 | 1 | 0 | 0 | 0 | 2020-01-27 | 0 |
\n",
93 | "\tUSA | 59 | 56 | 2 | 1 | 0 | 2020-02-26 | 45 |
\n",
94 | "\tCanada | 11 | 9 | 1 | 1 | 0 | 2020-02-27 | 6 |
\n",
95 | "\tBrazil | 1 | 1 | 0 | 0 | 0 | 2020-02-26 | 1 |
\n",
96 | "\tItaly | 400 | 3 | 121 | 276 | 12 | 2020-02-27 | 647 |
\n",
97 | "\tGermany | 21 | 3 | 14 | 4 | 0 | 2020-02-27 | 35 |
\n",
98 | "\tFrance | 18 | 8 | 7 | 3 | 2 | 2020-02-27 | 26 |
\n",
99 | "\tUK | 13 | 12 | 1 | 0 | 0 | 2020-02-27 | 7 |
\n",
100 | "\tSpain | 12 | 10 | 1 | 1 | 0 | 2020-02-27 | 25 |
\n",
101 | "\tCroatia | 3 | 2 | 1 | 0 | 0 | 2020-02-26 | 3 |
\n",
102 | "\tAustria | 2 | 2 | 0 | 0 | 0 | 2020-02-27 | 5 |
\n",
103 | "\tFinland | 2 | 2 | 0 | 0 | 0 | 2020-02-26 | 1 |
\n",
104 | "\tIsrael | 2 | 2 | 0 | 0 | 0 | 2020-02-27 | 3 |
\n",
105 | "\tRussia | 2 | 2 | 0 | 0 | 0 | 2020-01-31 | 0 |
\n",
106 | "\tSweden | 2 | 2 | 0 | 0 | 0 | 2020-02-27 | 6 |
\n",
107 | "\tBelgium | 1 | 1 | 0 | 0 | 0 | 2020-02-04 | 0 |
\n",
108 | "\tDenmark | 1 | 1 | 0 | 0 | 0 | 2020-02-27 | 1 |
\n",
109 | "\tEstonia | 1 | 0 | 0 | 1 | 0 | 2020-02-27 | 1 |
\n",
110 | "\tGeorgia | 1 | 1 | 0 | 0 | 0 | 2020-02-26 | 1 |
\n",
111 | "\tGreece | 1 | 1 | 0 | 0 | 0 | 2020-02-27 | 3 |
\n",
112 | "\tNorth Macedonia | 1 | 1 | 0 | 0 | 0 | 2020-02-26 | 1 |
\n",
113 | "\tNorway | 1 | 1 | 0 | 0 | 0 | 2020-02-27 | 4 |
\n",
114 | "\tRomania | 1 | 1 | 0 | 0 | 0 | 2020-02-26 | 1 |
\n",
115 | "\tSwitzerland | 1 | 1 | 0 | 0 | 0 | 2020-02-27 | 8 |
\n",
116 | "\tIran | 141 | 0 | 28 | 113 | 22 | 2020-02-27 | 243 |
\n",
117 | "\tKuwait | 43 | 43 | 0 | 0 | 0 | 2020-02-27 | 43 |
\n",
118 | "\tBahrain | 33 | 33 | 0 | 0 | 0 | 2020-02-26 | 33 |
\n",
119 | "\tUAE | 13 | 8 | 5 | 0 | 0 | 2020-02-27 | 10 |
\n",
120 | "\tIraq | 6 | 6 | 0 | 0 | 0 | 2020-02-27 | 7 |
\n",
121 | "\tOman | 4 | 4 | 0 | 0 | 0 | 2020-02-27 | 6 |
\n",
122 | "\tLebanon | 1 | 1 | 0 | 0 | 0 | 2020-02-27 | 3 |
\n",
123 | "\tPakistan | 2 | 1 | 0 | 1 | 0 | 2020-02-26 | 2 |
\n",
124 | "\tAfghanistan | 1 | 1 | 0 | 0 | 0 | 2020-02-24 | 1 |
\n",
125 | "\tEgypt | 1 | 0 | 1 | 0 | 0 | 2020-02-14 | 0 |
\n",
126 | "\tAlgeria | 1 | 1 | 0 | 0 | 0 | 2020-02-25 | 1 |
\n",
127 | "\n",
128 | "
\n"
129 | ],
130 | "text/latex": [
131 | "A data.frame: 46 × 7\n",
132 | "\\begin{tabular}{r|lllllll}\n",
133 | " & Total & Imported & Local & Unknown & Death & latestdate & ongoingbranches\\\\\n",
134 | " & & & & & & & \\\\\n",
135 | "\\hline\n",
136 | "\tSouth Korea & 1766 & 17 & 605 & 1144 & 13 & 2020-02-27 & 1715\\\\\n",
137 | "\tJapan & 186 & 39 & 129 & 18 & 3 & 2020-02-27 & 112\\\\\n",
138 | "\tSingapore & 93 & 24 & 69 & 0 & 0 & 2020-02-27 & 12\\\\\n",
139 | "\tAustralia & 23 & 20 & 3 & 0 & 0 & 2020-02-26 & 8\\\\\n",
140 | "\tMalaysia & 22 & 20 & 2 & 0 & 0 & 2020-02-27 & 1\\\\\n",
141 | "\tVietnam & 16 & 8 & 8 & 0 & 0 & 2020-02-13 & 0\\\\\n",
142 | "\tPhilippines & 3 & 3 & 0 & 0 & 1 & 2020-02-05 & 0\\\\\n",
143 | "\tCambodia & 1 & 1 & 0 & 0 & 0 & 2020-01-30 & 0\\\\\n",
144 | "\tThailand & 40 & 23 & 7 & 10 & 0 & 2020-02-26 & 5\\\\\n",
145 | "\tIndia & 3 & 3 & 0 & 0 & 0 & 2020-02-03 & 0\\\\\n",
146 | "\tNepal & 1 & 1 & 0 & 0 & 0 & 2020-01-24 & 0\\\\\n",
147 | "\tSri Lanka & 1 & 1 & 0 & 0 & 0 & 2020-01-27 & 0\\\\\n",
148 | "\tUSA & 59 & 56 & 2 & 1 & 0 & 2020-02-26 & 45\\\\\n",
149 | "\tCanada & 11 & 9 & 1 & 1 & 0 & 2020-02-27 & 6\\\\\n",
150 | "\tBrazil & 1 & 1 & 0 & 0 & 0 & 2020-02-26 & 1\\\\\n",
151 | "\tItaly & 400 & 3 & 121 & 276 & 12 & 2020-02-27 & 647\\\\\n",
152 | "\tGermany & 21 & 3 & 14 & 4 & 0 & 2020-02-27 & 35\\\\\n",
153 | "\tFrance & 18 & 8 & 7 & 3 & 2 & 2020-02-27 & 26\\\\\n",
154 | "\tUK & 13 & 12 & 1 & 0 & 0 & 2020-02-27 & 7\\\\\n",
155 | "\tSpain & 12 & 10 & 1 & 1 & 0 & 2020-02-27 & 25\\\\\n",
156 | "\tCroatia & 3 & 2 & 1 & 0 & 0 & 2020-02-26 & 3\\\\\n",
157 | "\tAustria & 2 & 2 & 0 & 0 & 0 & 2020-02-27 & 5\\\\\n",
158 | "\tFinland & 2 & 2 & 0 & 0 & 0 & 2020-02-26 & 1\\\\\n",
159 | "\tIsrael & 2 & 2 & 0 & 0 & 0 & 2020-02-27 & 3\\\\\n",
160 | "\tRussia & 2 & 2 & 0 & 0 & 0 & 2020-01-31 & 0\\\\\n",
161 | "\tSweden & 2 & 2 & 0 & 0 & 0 & 2020-02-27 & 6\\\\\n",
162 | "\tBelgium & 1 & 1 & 0 & 0 & 0 & 2020-02-04 & 0\\\\\n",
163 | "\tDenmark & 1 & 1 & 0 & 0 & 0 & 2020-02-27 & 1\\\\\n",
164 | "\tEstonia & 1 & 0 & 0 & 1 & 0 & 2020-02-27 & 1\\\\\n",
165 | "\tGeorgia & 1 & 1 & 0 & 0 & 0 & 2020-02-26 & 1\\\\\n",
166 | "\tGreece & 1 & 1 & 0 & 0 & 0 & 2020-02-27 & 3\\\\\n",
167 | "\tNorth Macedonia & 1 & 1 & 0 & 0 & 0 & 2020-02-26 & 1\\\\\n",
168 | "\tNorway & 1 & 1 & 0 & 0 & 0 & 2020-02-27 & 4\\\\\n",
169 | "\tRomania & 1 & 1 & 0 & 0 & 0 & 2020-02-26 & 1\\\\\n",
170 | "\tSwitzerland & 1 & 1 & 0 & 0 & 0 & 2020-02-27 & 8\\\\\n",
171 | "\tIran & 141 & 0 & 28 & 113 & 22 & 2020-02-27 & 243\\\\\n",
172 | "\tKuwait & 43 & 43 & 0 & 0 & 0 & 2020-02-27 & 43\\\\\n",
173 | "\tBahrain & 33 & 33 & 0 & 0 & 0 & 2020-02-26 & 33\\\\\n",
174 | "\tUAE & 13 & 8 & 5 & 0 & 0 & 2020-02-27 & 10\\\\\n",
175 | "\tIraq & 6 & 6 & 0 & 0 & 0 & 2020-02-27 & 7\\\\\n",
176 | "\tOman & 4 & 4 & 0 & 0 & 0 & 2020-02-27 & 6\\\\\n",
177 | "\tLebanon & 1 & 1 & 0 & 0 & 0 & 2020-02-27 & 3\\\\\n",
178 | "\tPakistan & 2 & 1 & 0 & 1 & 0 & 2020-02-26 & 2\\\\\n",
179 | "\tAfghanistan & 1 & 1 & 0 & 0 & 0 & 2020-02-24 & 1\\\\\n",
180 | "\tEgypt & 1 & 0 & 1 & 0 & 0 & 2020-02-14 & 0\\\\\n",
181 | "\tAlgeria & 1 & 1 & 0 & 0 & 0 & 2020-02-25 & 1\\\\\n",
182 | "\\end{tabular}\n"
183 | ],
184 | "text/markdown": [
185 | "\n",
186 | "A data.frame: 46 × 7\n",
187 | "\n",
188 | "| | Total <int> | Imported <int> | Local <int> | Unknown <int> | Death <int> | latestdate <date> | ongoingbranches <dbl> |\n",
189 | "|---|---|---|---|---|---|---|---|\n",
190 | "| South Korea | 1766 | 17 | 605 | 1144 | 13 | 2020-02-27 | 1715 |\n",
191 | "| Japan | 186 | 39 | 129 | 18 | 3 | 2020-02-27 | 112 |\n",
192 | "| Singapore | 93 | 24 | 69 | 0 | 0 | 2020-02-27 | 12 |\n",
193 | "| Australia | 23 | 20 | 3 | 0 | 0 | 2020-02-26 | 8 |\n",
194 | "| Malaysia | 22 | 20 | 2 | 0 | 0 | 2020-02-27 | 1 |\n",
195 | "| Vietnam | 16 | 8 | 8 | 0 | 0 | 2020-02-13 | 0 |\n",
196 | "| Philippines | 3 | 3 | 0 | 0 | 1 | 2020-02-05 | 0 |\n",
197 | "| Cambodia | 1 | 1 | 0 | 0 | 0 | 2020-01-30 | 0 |\n",
198 | "| Thailand | 40 | 23 | 7 | 10 | 0 | 2020-02-26 | 5 |\n",
199 | "| India | 3 | 3 | 0 | 0 | 0 | 2020-02-03 | 0 |\n",
200 | "| Nepal | 1 | 1 | 0 | 0 | 0 | 2020-01-24 | 0 |\n",
201 | "| Sri Lanka | 1 | 1 | 0 | 0 | 0 | 2020-01-27 | 0 |\n",
202 | "| USA | 59 | 56 | 2 | 1 | 0 | 2020-02-26 | 45 |\n",
203 | "| Canada | 11 | 9 | 1 | 1 | 0 | 2020-02-27 | 6 |\n",
204 | "| Brazil | 1 | 1 | 0 | 0 | 0 | 2020-02-26 | 1 |\n",
205 | "| Italy | 400 | 3 | 121 | 276 | 12 | 2020-02-27 | 647 |\n",
206 | "| Germany | 21 | 3 | 14 | 4 | 0 | 2020-02-27 | 35 |\n",
207 | "| France | 18 | 8 | 7 | 3 | 2 | 2020-02-27 | 26 |\n",
208 | "| UK | 13 | 12 | 1 | 0 | 0 | 2020-02-27 | 7 |\n",
209 | "| Spain | 12 | 10 | 1 | 1 | 0 | 2020-02-27 | 25 |\n",
210 | "| Croatia | 3 | 2 | 1 | 0 | 0 | 2020-02-26 | 3 |\n",
211 | "| Austria | 2 | 2 | 0 | 0 | 0 | 2020-02-27 | 5 |\n",
212 | "| Finland | 2 | 2 | 0 | 0 | 0 | 2020-02-26 | 1 |\n",
213 | "| Israel | 2 | 2 | 0 | 0 | 0 | 2020-02-27 | 3 |\n",
214 | "| Russia | 2 | 2 | 0 | 0 | 0 | 2020-01-31 | 0 |\n",
215 | "| Sweden | 2 | 2 | 0 | 0 | 0 | 2020-02-27 | 6 |\n",
216 | "| Belgium | 1 | 1 | 0 | 0 | 0 | 2020-02-04 | 0 |\n",
217 | "| Denmark | 1 | 1 | 0 | 0 | 0 | 2020-02-27 | 1 |\n",
218 | "| Estonia | 1 | 0 | 0 | 1 | 0 | 2020-02-27 | 1 |\n",
219 | "| Georgia | 1 | 1 | 0 | 0 | 0 | 2020-02-26 | 1 |\n",
220 | "| Greece | 1 | 1 | 0 | 0 | 0 | 2020-02-27 | 3 |\n",
221 | "| North Macedonia | 1 | 1 | 0 | 0 | 0 | 2020-02-26 | 1 |\n",
222 | "| Norway | 1 | 1 | 0 | 0 | 0 | 2020-02-27 | 4 |\n",
223 | "| Romania | 1 | 1 | 0 | 0 | 0 | 2020-02-26 | 1 |\n",
224 | "| Switzerland | 1 | 1 | 0 | 0 | 0 | 2020-02-27 | 8 |\n",
225 | "| Iran | 141 | 0 | 28 | 113 | 22 | 2020-02-27 | 243 |\n",
226 | "| Kuwait | 43 | 43 | 0 | 0 | 0 | 2020-02-27 | 43 |\n",
227 | "| Bahrain | 33 | 33 | 0 | 0 | 0 | 2020-02-26 | 33 |\n",
228 | "| UAE | 13 | 8 | 5 | 0 | 0 | 2020-02-27 | 10 |\n",
229 | "| Iraq | 6 | 6 | 0 | 0 | 0 | 2020-02-27 | 7 |\n",
230 | "| Oman | 4 | 4 | 0 | 0 | 0 | 2020-02-27 | 6 |\n",
231 | "| Lebanon | 1 | 1 | 0 | 0 | 0 | 2020-02-27 | 3 |\n",
232 | "| Pakistan | 2 | 1 | 0 | 1 | 0 | 2020-02-26 | 2 |\n",
233 | "| Afghanistan | 1 | 1 | 0 | 0 | 0 | 2020-02-24 | 1 |\n",
234 | "| Egypt | 1 | 0 | 1 | 0 | 0 | 2020-02-14 | 0 |\n",
235 | "| Algeria | 1 | 1 | 0 | 0 | 0 | 2020-02-25 | 1 |\n",
236 | "\n"
237 | ],
238 | "text/plain": [
239 | " Total Imported Local Unknown Death latestdate ongoingbranches\n",
240 | "South Korea 1766 17 605 1144 13 2020-02-27 1715 \n",
241 | "Japan 186 39 129 18 3 2020-02-27 112 \n",
242 | "Singapore 93 24 69 0 0 2020-02-27 12 \n",
243 | "Australia 23 20 3 0 0 2020-02-26 8 \n",
244 | "Malaysia 22 20 2 0 0 2020-02-27 1 \n",
245 | "Vietnam 16 8 8 0 0 2020-02-13 0 \n",
246 | "Philippines 3 3 0 0 1 2020-02-05 0 \n",
247 | "Cambodia 1 1 0 0 0 2020-01-30 0 \n",
248 | "Thailand 40 23 7 10 0 2020-02-26 5 \n",
249 | "India 3 3 0 0 0 2020-02-03 0 \n",
250 | "Nepal 1 1 0 0 0 2020-01-24 0 \n",
251 | "Sri Lanka 1 1 0 0 0 2020-01-27 0 \n",
252 | "USA 59 56 2 1 0 2020-02-26 45 \n",
253 | "Canada 11 9 1 1 0 2020-02-27 6 \n",
254 | "Brazil 1 1 0 0 0 2020-02-26 1 \n",
255 | "Italy 400 3 121 276 12 2020-02-27 647 \n",
256 | "Germany 21 3 14 4 0 2020-02-27 35 \n",
257 | "France 18 8 7 3 2 2020-02-27 26 \n",
258 | "UK 13 12 1 0 0 2020-02-27 7 \n",
259 | "Spain 12 10 1 1 0 2020-02-27 25 \n",
260 | "Croatia 3 2 1 0 0 2020-02-26 3 \n",
261 | "Austria 2 2 0 0 0 2020-02-27 5 \n",
262 | "Finland 2 2 0 0 0 2020-02-26 1 \n",
263 | "Israel 2 2 0 0 0 2020-02-27 3 \n",
264 | "Russia 2 2 0 0 0 2020-01-31 0 \n",
265 | "Sweden 2 2 0 0 0 2020-02-27 6 \n",
266 | "Belgium 1 1 0 0 0 2020-02-04 0 \n",
267 | "Denmark 1 1 0 0 0 2020-02-27 1 \n",
268 | "Estonia 1 0 0 1 0 2020-02-27 1 \n",
269 | "Georgia 1 1 0 0 0 2020-02-26 1 \n",
270 | "Greece 1 1 0 0 0 2020-02-27 3 \n",
271 | "North Macedonia 1 1 0 0 0 2020-02-26 1 \n",
272 | "Norway 1 1 0 0 0 2020-02-27 4 \n",
273 | "Romania 1 1 0 0 0 2020-02-26 1 \n",
274 | "Switzerland 1 1 0 0 0 2020-02-27 8 \n",
275 | "Iran 141 0 28 113 22 2020-02-27 243 \n",
276 | "Kuwait 43 43 0 0 0 2020-02-27 43 \n",
277 | "Bahrain 33 33 0 0 0 2020-02-26 33 \n",
278 | "UAE 13 8 5 0 0 2020-02-27 10 \n",
279 | "Iraq 6 6 0 0 0 2020-02-27 7 \n",
280 | "Oman 4 4 0 0 0 2020-02-27 6 \n",
281 | "Lebanon 1 1 0 0 0 2020-02-27 3 \n",
282 | "Pakistan 2 1 0 1 0 2020-02-26 2 \n",
283 | "Afghanistan 1 1 0 0 0 2020-02-24 1 \n",
284 | "Egypt 1 0 1 0 0 2020-02-14 0 \n",
285 | "Algeria 1 1 0 0 0 2020-02-25 1 "
286 | ]
287 | },
288 | "metadata": {},
289 | "output_type": "display_data"
290 | }
291 | ],
292 | "source": [
293 | "# Data\n",
294 | "# Imported and local cases outside China\n",
295 | "# Source (accessed 4/3/2020): https://www.who.int/docs/default-source/coronaviruse/situation-reports/20200227-sitrep-38-covid-19.pdf\n",
296 | "WHO_data=read.csv(\"../data/bycountries_27Feb2020.csv\")\n",
297 | "WHO_data[,\"ImportedChina\"]=WHO_data[,\"ImportedChina\"]+WHO_data[,\"ImportedOthers\"]\n",
298 | "WHO_data=WHO_data[,-4]\n",
299 | "colnames(WHO_data)[3]=\"Imported\"\n",
300 | "rownames(WHO_data)=WHO_data[,1]\n",
301 | "\n",
302 | "# Daily confirmed cases (by date of confirmation)\n",
303 | "# Source (accessed 18/2/2020): https://docs.google.com/spreadsheets/d/1Z7VQ5xlf3BaTx_LBBblsW4hLoGYWnZyog3jqsS9Dbgc\n",
304 | "daily_data=read.csv(\"../data/dailycases_international_27Feb2020.csv\")\n",
305 | "countrynames=daily_data[-(1:3),2]\n",
306 | "names(countrynames)=as.character(countrynames)\n",
307 | "counts=suppressWarnings(apply(t(daily_data[-(1:2),-(1:2)]),1:2,as.numeric))\n",
308 | "dates=as.Date(\"2020-1-13\")+1:nrow(counts)-1\n",
309 | "dailydata=cbind(dates,as.data.frame(counts))\n",
310 | "dailydata=dailydata[,-2]\n",
311 | "rownames(dailydata)=dailydata[,1]\n",
312 | "colnames(dailydata)=c(\"date\",as.character(countrynames))\n",
313 | "\n",
314 | "\n",
315 | "# get dates of last reported case for each country\n",
316 | "dateidx=seq(as.Date(\"2020-1-13\"),currdate,by=\"days\")\n",
317 | "dailydata_tillcurrdate=dailydata[as.character(dateidx),-1]\n",
318 | "latestdates=as.Date(apply(dailydata_tillcurrdate,2,function(x){\n",
319 | " lastreported=tail(which(!(x %in% NA)),1)\n",
320 | " if(length(lastreported)==0){NA}\n",
321 | " else{as.character(dailydata[lastreported,1])}\n",
322 | "}))\n",
323 | "latestdates=data.frame(countrynames,latestdates)\n",
324 | "rownames(latestdates)=as.character(countrynames)\n",
325 | "\n",
326 | "# get the number of cases within the buffer period\n",
327 | "bufferdays=seq(currdate-buffer,currdate,by=\"days\")\n",
328 | "ongoingbranches=colSums(dailydata[as.character(bufferdays),-1],na.rm=T)\n",
329 | "\n",
330 | "# reorder latestdates and ongoingbranches according to WHO data\n",
331 | "latestdates_WHO=latestdates[rownames(WHO_data),2]\n",
332 | "ongoingbranches_WHO=ongoingbranches[rownames(WHO_data)]\n",
333 | "WHO_data=cbind(WHO_data,latestdate=latestdates_WHO,ongoingbranches=ongoingbranches_WHO)\n",
334 | "WHO_data[,-1]\n",
335 | "WHO_data=WHO_data[!rownames(WHO_data) %in% c(\"Egypt\",\"Iran\",\"Estonia\"),] # exclude Egypt and Iran, where imported cases are reported to be zero"
336 | ]
337 | },
338 | {
339 | "cell_type": "code",
340 | "execution_count": 3,
341 | "metadata": {},
342 | "outputs": [],
343 | "source": [
344 | "# label countries with/without cases in the last (buffer) days\n",
345 | "isextinct=WHO_data$latestdate\n",
647 | "A matrix: 2 × 7 of type dbl\n",
648 | "\n",
649 | "\t | Mean | SD | MCSE | ESS | LB | Median | UB |
\n",
650 | "\n",
651 | "\n",
652 | "\tR0 | 5.06506333 | 2.84184463 | 0.127371174 | 649.5488 | 1.40334350 | 4.40329657 | 11.5525352 |
\n",
653 | "\tk | 0.09382923 | 0.04597227 | 0.002015266 | 631.5743 | 0.04355945 | 0.08145725 | 0.2088263 |
\n",
654 | "\n",
655 | "\n"
656 | ],
657 | "text/latex": [
658 | "A matrix: 2 × 7 of type dbl\n",
659 | "\\begin{tabular}{r|lllllll}\n",
660 | " & Mean & SD & MCSE & ESS & LB & Median & UB\\\\\n",
661 | "\\hline\n",
662 | "\tR0 & 5.06506333 & 2.84184463 & 0.127371174 & 649.5488 & 1.40334350 & 4.40329657 & 11.5525352\\\\\n",
663 | "\tk & 0.09382923 & 0.04597227 & 0.002015266 & 631.5743 & 0.04355945 & 0.08145725 & 0.2088263\\\\\n",
664 | "\\end{tabular}\n"
665 | ],
666 | "text/markdown": [
667 | "\n",
668 | "A matrix: 2 × 7 of type dbl\n",
669 | "\n",
670 | "| | Mean | SD | MCSE | ESS | LB | Median | UB |\n",
671 | "|---|---|---|---|---|---|---|---|\n",
672 | "| R0 | 5.06506333 | 2.84184463 | 0.127371174 | 649.5488 | 1.40334350 | 4.40329657 | 11.5525352 |\n",
673 | "| k | 0.09382923 | 0.04597227 | 0.002015266 | 631.5743 | 0.04355945 | 0.08145725 | 0.2088263 |\n",
674 | "\n"
675 | ],
676 | "text/plain": [
677 | " Mean SD MCSE ESS LB Median UB \n",
678 | "R0 5.06506333 2.84184463 0.127371174 649.5488 1.40334350 4.40329657 11.5525352\n",
679 | "k 0.09382923 0.04597227 0.002015266 631.5743 0.04355945 0.08145725 0.2088263"
680 | ]
681 | },
682 | "metadata": {},
683 | "output_type": "display_data"
684 | },
685 | {
686 | "data": {
687 | "image/png": "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\n",
688 | "text/plain": [
689 | "plot without title"
690 | ]
691 | },
692 | "metadata": {},
693 | "output_type": "display_data"
694 | }
695 | ],
696 | "source": [
697 | "plot(fit$Monitor[niter%/%20+1:(niter%/%20),1:2],xlim=c(0,20),ylim=c(0,0.5),yaxs=\"i\",xaxs=\"i\")\n",
698 | "abline(v=1,col=\"grey\",lty=2)\n",
699 | "fit$Summary2[c(\"R0\",\"k\"),]"
700 | ]
701 | },
702 | {
703 | "cell_type": "markdown",
704 | "metadata": {},
705 | "source": [
706 | "## Conclusion\n",
707 | "We estimated overdispersion of the offspring distribution of COVID-19 from the number of imported/local cases in affected countries. The results suggested that the offspring distribution of COVID-19 is highly overdispersed. For the likely range of $R_0>2$, the overdispersion parameter $k$ was estimated to be around 0.1, suggesting that the majority of secondary transmission is caused by a very small fraction of individuals (80% of transmissions caused by ~10% of the total cases) ([Liu et al.](https://doi.org/10.1016/S0140-6736(20)30462-1)). This suggests that the effective reproduction number could be drastically reduced by interventions targeting potential superspreading events. From the current dataset and model, we were unable to simultaneously estimate $R_0$ and $k$. More detailed dataset on the epidemiological link between cases could improve these estimates in the future."
708 | ]
709 | },
710 | {
711 | "cell_type": "markdown",
712 | "metadata": {},
713 | "source": [
714 | "## Additional analysis\n",
715 | "### Model comparison with a Poisson model\n",
716 | "The baseline negative-binomial branching process model was compared with a Poisson branching process model by the widely-applicable Bayesian information criterion (WBIC)."
717 | ]
718 | },
719 | {
720 | "cell_type": "code",
721 | "execution_count": null,
722 | "metadata": {},
723 | "outputs": [],
724 | "source": [
725 | "# model comparison with a Poisson model\n",
726 | "Model_Pois=function(R0,Data){\n",
727 | " ret=Model_joint(c(R0,1e-10),Data)\n",
728 | " ret$parm=ret$parm[1]\n",
729 | " ret\n",
730 | "}\n",
731 | "Data_Pois=list(N=13,mon.names=c(\"R0\",\"k\"),parm.names=\"R0\",icases=icases,lcases=lcases,ocases=ocases,isextinct=isextinct)\n",
732 | "\n",
733 | "niter=10000\n",
734 | "fit_Pois=LaplacesDemon(Model=Model_Pois,Data=Data_Pois,Initial.Values=2,Covar=NULL,Iterations=niter,Status=niter%/%10,Thinning=10,Algorithm='HARM',Specs=list(alpha.star=0.23,B=NULL))\n",
735 | "\n",
736 | "fit_Pois=LaplacesDemon(Model=Model_Pois,Data=Data_Pois,Initial.Values=2,Covar=NULL,Iterations=niter,Status=niter%/%10,Thinning=10,Algorithm='HARM',Specs=list(alpha.star=0.23,B=NULL))\n",
737 | "Model_joint_WBIC=function(parm,Data){\n",
738 | " ret=Model_joint(parm,Data)\n",
739 | " ret$LP=ret$LP/log(nrow(WHO_data))\n",
740 | " ret\n",
741 | "}\n",
742 | "Model_Pois_WBIC=function(parm,Data){\n",
743 | " ret=Model_Pois(parm,Data)\n",
744 | " ret$LP=ret$LP/log(nrow(WHO_data))\n",
745 | " ret\n",
746 | "}\n",
747 | "WBfit_joint=LaplacesDemon(Model=Model_joint_WBIC,Data=Data_joint,Initial.Values=2,Covar=NULL,Iterations=niter,Status=niter%/%10,Thinning=10,Algorithm='HARM',Specs=list(alpha.star=0.23,B=NULL))\n",
748 | "WBfit_Pois=LaplacesDemon(Model=Model_Pois_WBIC,Data=Data_Pois,Initial.Values=2,Covar=NULL,Iterations=niter,Status=niter%/%10,Thinning=10,Algorithm='HARM',Specs=list(alpha.star=0.23,B=NULL))\n",
749 | "print(list(WBIC.NBinom=WBfit_joint$Summary2[\"Deviance\",\"Mean\"],WBIC.Pois=WBfit_Pois$Summary2[\"Deviance\",\"Mean\"]))"
750 | ]
751 | },
752 | {
753 | "cell_type": "markdown",
754 | "metadata": {},
755 | "source": [
756 | "### Offspring distributions for different $R_0$ and $k$\n",
757 | "Negative-binomial offspring distributions corresponding to $(R_0=2.5, k=0.1)$ and other sets of values"
758 | ]
759 | },
760 | {
761 | "cell_type": "code",
762 | "execution_count": 14,
763 | "metadata": {},
764 | "outputs": [
765 | {
766 | "data": {
767 | "image/png": "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\nElXorWgK/X5jF2pLCt3NKyZ0N6+Y0HPYmwjdz6sldD+votB/0zsJ3cwrKHQzr6TQU/GB2bpC\nt/IqCt3Kqyl08XGswkI38koK3cgrJvQnca1IS+h+Xi2h+3nVhO42ICZ0A0mhGyC0OAjtmzEL\n89pfN55Eha7mFRW6mldV6GoDokIXkBa6AEKLg9C+WX/ru/lAbDGhu3nFhO7mFRM6/cwsy7SE\n7ufVErqfF6FDg9DLMoQODUIvyxA6NAi9LBMTmkFhVvSYagl9u0FhvwExoRtICt0AocVBaN8g\n9CAI7RuEHgShfYPQgyC0bxB6EIT2DUIPgtC+QehBENo3CD3IjYV+cm13uiD0IHcW+j3nGYQe\nBKF9g9CDILRvEHoQhPYNQg+C0L5B6EEQ2jcIPQhC+2ZPoTf+X6WxQGjf7Cr0vxt8TiO0bxB6\nkNsL7fx+IUIPgtDv1z5B6EEQ+v3aJwg9CEK/X/tkz8cY6Ai97jEGT07t2EGse4xBLrTbM+lV\n/qWfmWVZJvQFF+/23mQ/71Po99zZ7P1O6uf9Ffq91BsHCH3+5/Tem3Qv9M4b3iy0w4/po4Q+\n9XMaoW1sF3o65exjZAuHCf3Rel1HLFwq9AVn0s6Efs4eqPXI+c3+g8LlNOWs69Qou5/lrBwU\nTtM1Wu9+aNgwKJynhbHi3m7vL3S3gabQP2ciP1j7cOJpe03o53TJMX0481xnUOhscZktffAs\n9JDnfaZ56z6E/lmwM9O8df9CVxYPMc1bP0bovPaXU9uVtJF3ZSiJMe/upo4Jnc2fk3fQw92Y\nsq2PRwAID0KDFOarHJKQNyzm69CKkDcuCF2AvHFB6ALkjQtCFyBvXBgUliBvWBQyAMwgNEiB\n0CAFQoMUCA1SIDRIgdAgBUKDFAgNUiA0SLGP0PXbpsU/JC7WTq2G0nTgH1qNQ965ZHXtk/Lu\n8gtL1ZbqyYo1aw3NzTjZv/Pkp4S8F+f1InRqfeXrUyizg8lbLPQudCotrdRufocx1YsugLxz\ngbu8FwjdOseqN1QtugDyzgXu8h4qdKotbb2Dq4MGN/uXvJ/l7vK6E7rcId0dTN7PUu9CV67D\nNANX+lM96F0CeZ+LPeY99hx6+B1c606IHVxZSt5eI+6E3u3Ce/Xauq8dTN5PyeraJ+X180sD\n2AGEBikQGqRAaJACoUEKhAYpEBqkQGiQAqFBCoQGKRAapEBokAKhQQqEBikQGqRAaJACoUEK\n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",
768 | "text/plain": [
769 | "plot without title"
770 | ]
771 | },
772 | "metadata": {},
773 | "output_type": "display_data"
774 | }
775 | ],
776 | "source": [
777 | "# Show offspring distributions\n",
778 | "par(mfrow=c(2,3))\n",
779 | "barplot(c(dnbinom(0:20,0.1,mu=2.5),NA,pnbinom(20,0.1,mu=2.5,lower.tail=F)),names.arg=c(0:20,NA,\">20\"),xlab=\"the number of secondary cases\",ylab=\"probability\",ylim=c(0,0.8))\n",
780 | "legend(\"topright\",c(\"R0 = 2.5 \",\"k = 0.1 \"),bty=\"n\")\n",
781 | "barplot(c(dnbinom(0:20,0.05,mu=2.5),NA,pnbinom(20,0.05,mu=2.5,lower.tail=F)),ylim=c(0,0.8),border=\"blue\",col=NA,names.arg=c(0:20,NA,\">20\"),xlab=\"the number of secondary cases\",ylab=\"probability\")\n",
782 | "legend(\"topright\",c(\"R0 = 2.5 \",\"k = 0.05 \"),bty=\"n\")\n",
783 | "barplot(c(dnbinom(0:20,0.2,mu=2.5),NA,pnbinom(20,0.2,mu=2.5,lower.tail=F)),ylim=c(0,0.8),border=\"red\",col=NA,names.arg=c(0:20,NA,\">20\"),xlab=\"the number of secondary cases\",ylab=\"probability\")\n",
784 | "legend(\"topright\",c(\"R0 = 2.5 \",\"k = 0.2 \"),bty=\"n\")\n",
785 | "\n",
786 | "barplot(c(dnbinom(0:20,0.1,mu=2.5),NA,pnbinom(20,0.1,mu=2.5,lower.tail=F)),names.arg=c(0:20,NA,\">20\"),xlab=\"the number of secondary cases\",ylab=\"probability\",ylim=c(0,0.8))\n",
787 | "legend(\"topright\",c(\"R0 = 2.5 \",\"k = 0.1 \"),bty=\"n\")\n",
788 | "barplot(c(dnbinom(0:20,0.1,mu=1.5),NA,pnbinom(20,0.1,mu=1.5,lower.tail=F)),ylim=c(0,0.8),border=\"blue\",col=NA,names.arg=c(0:20,NA,\">20\"),xlab=\"the number of secondary cases\",ylab=\"probability\")\n",
789 | "legend(\"topright\",c(\"R0 = 1.5 \",\"k = 0.1 \"),bty=\"n\")\n",
790 | "barplot(c(dnbinom(0:20,0.1,mu=5),NA,pnbinom(20,0.1,mu=5,lower.tail=F)),ylim=c(0,0.8),border=\"red\",col=NA,names.arg=c(0:20,NA,\">20\"),xlab=\"the number of secondary cases\",ylab=\"probability\")\n",
791 | "legend(\"topright\",c(\"R0 = 5 \",\"k = 0.1 \"),bty=\"n\")"
792 | ]
793 | },
794 | {
795 | "cell_type": "markdown",
796 | "metadata": {},
797 | "source": [
798 | "## Smaller reproduction number for imported cases\n",
799 | "Imported cases may exhibit a smaller reproduction number due to intervention measures such as isolation/quarantine. We accounted for this possibility by modifying the likelihood function $c(x;s)$ as\n",
800 | "$$\n",
801 | "c_I(x;s)=\\sum_{j=0}^x \\operatorname{NB}(j;ks,\\mu=sR_I)c(x-s;j).\n",
802 | "$$\n",
803 | "where $R_I$ is the effective reproduction number for imported cases, which we varied (0.5, 0.8, 1.2) to estimate $k$. $R_0$ (the reproduction number for local cases) were assumed to be 2.5 throughout."
804 | ]
805 | },
806 | {
807 | "cell_type": "code",
808 | "execution_count": 7,
809 | "metadata": {},
810 | "outputs": [],
811 | "source": [
812 | "llextinct_importcontrol<-function(icases,lcases,R0,k){\n",
813 | " if(length(icases)==0)return(0)\n",
814 | " tcases=lcases+icases\n",
815 | " lls=tcases*0\n",
816 | " for(i in 1:length(lls)){\n",
817 | " ls=sapply(0:lcases[i],function(ioffsprings){\n",
818 | " ll=dnbinom(ioffsprings,k*icases[i],mu=R0[1]*icases[i],log=T)+llextinct(ioffsprings,lcases[i]-ioffsprings,R0[2],k,F)\n",
819 | " return(ll)\n",
820 | " })\n",
821 | " lls[i]=lls[i]+logSumExp(ls)\n",
822 | " }\n",
823 | " sum(lls,na.rm=T)\n",
824 | "}"
825 | ]
826 | },
827 | {
828 | "cell_type": "code",
829 | "execution_count": null,
830 | "metadata": {},
831 | "outputs": [],
832 | "source": [
833 | "Data=list(N=13,mon.names=c(\"R0_imp\",\"R0_loc\",\"k\"),parm.names=\"invk\",R0=c(1,2.5),icases=icases,lcases=lcases,ocases=ocases,isextinct=isextinct)\n",
834 | "Model=function(parm,Data){\n",
835 | " invk=interval(parm,0)\n",
836 | " lp=lltotal_R0(invk,Data$icases,Data$lcases,Data$isextinct,Data$R0,T)\n",
837 | " lp=lp+dnorm(invk,0,10,log=T)\n",
838 | " return(list(LP=lp,Dev=-2*lp,Monitor=c(Data$R0,1/invk),yhat=NULL,parm=invk))\n",
839 | "}\n",
840 | "R0s=c(0.5,0.8,1.2)\n",
841 | "niter=10000\n",
842 | "set.seed(20)\n",
843 | "mcmcfits=lapply(R0s,function(R0){\n",
844 | " Data$R0[1]=R0\n",
845 | " fit=LaplacesDemon(Model=Model,Data=Data,Initial.Values=50,Covar=NULL,Iterations=niter,Status=niter,Thinning=10,Algorithm='HARM',Specs=list(alpha.star=0.2,B=NULL))\n",
846 | "})\n",
847 | "\n",
848 | "k_mcmc=sapply(mcmcfits,function(x){x$Monitor[(niter%/%20):(niter%/%10),3]})\n",
849 | "ll_mcmc=sapply(mcmcfits,function(x){-x$Deviance[(niter%/%20):(niter%/%10)]/2}) "
850 | ]
851 | },
852 | {
853 | "cell_type": "code",
854 | "execution_count": 9,
855 | "metadata": {},
856 | "outputs": [
857 | {
858 | "data": {
859 | "text/html": [
860 | "\n",
861 | "A matrix: 3 × 3 of type dbl\n",
862 | "\n",
863 | "\t | k (R_I = 0.5 ) | k (R_I = 0.8 ) | k (R_I = 1.2 ) |
\n",
864 | "\n",
865 | "\n",
866 | "\t2.5% | 0.09709496 | 0.07767332 | 0.06413361 |
\n",
867 | "\t50% | 0.29403301 | 0.17605994 | 0.13703123 |
\n",
868 | "\t97.5% | 1.23742522 | 0.53628262 | 0.31583619 |
\n",
869 | "\n",
870 | "
\n"
871 | ],
872 | "text/latex": [
873 | "A matrix: 3 × 3 of type dbl\n",
874 | "\\begin{tabular}{r|lll}\n",
875 | " & k (R\\_I = 0.5 ) & k (R\\_I = 0.8 ) & k (R\\_I = 1.2 )\\\\\n",
876 | "\\hline\n",
877 | "\t2.5\\% & 0.09709496 & 0.07767332 & 0.06413361\\\\\n",
878 | "\t50\\% & 0.29403301 & 0.17605994 & 0.13703123\\\\\n",
879 | "\t97.5\\% & 1.23742522 & 0.53628262 & 0.31583619\\\\\n",
880 | "\\end{tabular}\n"
881 | ],
882 | "text/markdown": [
883 | "\n",
884 | "A matrix: 3 × 3 of type dbl\n",
885 | "\n",
886 | "| | k (R_I = 0.5 ) | k (R_I = 0.8 ) | k (R_I = 1.2 ) |\n",
887 | "|---|---|---|---|\n",
888 | "| 2.5% | 0.09709496 | 0.07767332 | 0.06413361 |\n",
889 | "| 50% | 0.29403301 | 0.17605994 | 0.13703123 |\n",
890 | "| 97.5% | 1.23742522 | 0.53628262 | 0.31583619 |\n",
891 | "\n"
892 | ],
893 | "text/plain": [
894 | " k (R_I = 0.5 ) k (R_I = 0.8 ) k (R_I = 1.2 )\n",
895 | "2.5% 0.09709496 0.07767332 0.06413361 \n",
896 | "50% 0.29403301 0.17605994 0.13703123 \n",
897 | "97.5% 1.23742522 0.53628262 0.31583619 "
898 | ]
899 | },
900 | "metadata": {},
901 | "output_type": "display_data"
902 | }
903 | ],
904 | "source": [
905 | "colnames(k_mcmc)=paste(\"k (R_I = \", c(0.5,0.8,1.2),\")\")\n",
906 | "apply(k_mcmc,2,quantile,c(0.025,0.5,0.975))"
907 | ]
908 | },
909 | {
910 | "cell_type": "markdown",
911 | "metadata": {},
912 | "source": [
913 | "### Simulation of underreporting\n",
914 | "To investigate the effect of potential underreporting of cases, simulational dataset was generated and the overdispersion parameter $k$ was estimated by the maximum likelihood estimation. For each country in the WHO situation report dataset, the reporting probability $q_i$ was sampled from a beta distribution and the true number of imported cases were sampled based on the observed number and the sampled $q_i$. Three generations of transmission chains were drawn with a negative-binomial offspring distribution where $R_0=2.5$ and $k=0.1$ to provide the observed local cases given the same reporting probability $q_i$."
915 | ]
916 | },
917 | {
918 | "cell_type": "code",
919 | "execution_count": 15,
920 | "metadata": {},
921 | "outputs": [],
922 | "source": [
923 | "R0=2.5;k=0.1\n",
924 | "sim_data=function(icases,R0,k,betaparm=NULL){\n",
925 | " generations=numeric(length(icases))+3#sample(2:4,length(icases),T)+1\n",
926 | " if(is.null(betaparm)){reporting=numeric(length(icases))+1\n",
927 | " }else{reporting=rbeta(length(icases),betaparm[1],betaparm[2])}\n",
928 | " icases_all=rnbinom(length(icases),icases+1,reporting)+icases\n",
929 | " sapply(1:length(icases),function(i){sim_cluster(icases[i],icases_all[i],generations[i],reporting[i],R0,k)})\n",
930 | "}\n",
931 | "sim_cluster=function(icase,icase_all,generation,reporting,R0,k){\n",
932 | " recursive_nb=function(ts,generation,R0,k){\n",
933 | " if(length(ts)==generation){return(ts)}\n",
934 | " else if(ts[length(ts)]==0){\n",
935 | " return(c(ts,numeric(generation-length(ts))))\n",
936 | " }else{\n",
937 | " ts=c(ts,rnbinom(1,k*ts[length(ts)],k/(R0+k)))\n",
938 | " return(recursive_nb(ts,generation,R0,k))\n",
939 | " }\n",
940 | " }\n",
941 | " tseries=recursive_nb(icase_all,generation,R0,k)\n",
942 | " ts_obs=rbinom(length(tseries),tseries,reporting)\n",
943 | " c(icase,sum(ts_obs[-1]),ts_obs[length(ts_obs)]==0)\n",
944 | "}\n",
945 | "estim_k=function(times,R0,betaparm=NULL){\n",
946 | " sapply(1:times,function(x){\n",
947 | " data=sim_data(icases,R0,k,betaparm)\n",
948 | " ll=function(invk){-lltotal_R0(invk,data[1,],data[2,],as.logical(data[3,]),R0)}\n",
949 | " 1/optim(fn=ll,par=10,method=\"Brent\",lower=1e-2,upper=1e3)$par\n",
950 | " })\n",
951 | "}\n",
952 | "\n",
953 | "set.seed(20)\n",
954 | "estims=sapply(c(8,5,2),function(x){estim_k(500,2.5,c(x,10-x))})\n",
955 | "estims=cbind(estim_k(500,2.5),estims)\n",
956 | "colnames(estims)=c(\"1 (constant)\",\"beta(8,2)\",\"beta(5,5)\",\"beta(2,8)\")"
957 | ]
958 | },
959 | {
960 | "cell_type": "code",
961 | "execution_count": 16,
962 | "metadata": {},
963 | "outputs": [
964 | {
965 | "data": {
966 | "image/png": "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\nQGhQxf8BRsGQdS9+nQUAAAAASUVORK5CYII=",
967 | "text/plain": [
968 | "plot without title"
969 | ]
970 | },
971 | "metadata": {},
972 | "output_type": "display_data"
973 | },
974 | {
975 | "data": {
976 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtAAAAJYCAMAAAB8aiEbAAAAOVBMVEUAAAAAAP8AzQBNTU1o\naGh8fHyMjIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enw8PD/AAD///9SdC1QAAAACXBI\nWXMAABJ0AAASdAHeZh94AAAc/0lEQVR4nO2di5aiOBBAs43vtpXh/z92DaACopKQR1Hce87s\nOmlJFeR2JgQIpgJQhMmdAEBIEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQG\nVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQG\nVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQG\nVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQG\nVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQG\nVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQG\nVSA0qAKhQRUIDapAaFAFQoMqEghtADzxsC28wBlCgE4QGlSB0KAKhAZVIDSoAqFBFQgNqkBo\nUAVCgyrSC33aGLM7Rw0B6yWh0M1VyW1zgfIQJQSsntRCH8yhrKrrwZxihIDVk1rowpT2c2k2\nMULA6kkt9P1uqNe7ombeMgVgSS30/i50ESMErJ6kQu+Op7P5vX0sD5/PChEaPEkq9GM4YUxR\nxggB4nkznByZxz3vKtv1FaY4dGU5bdqC8bnflPPQl8vptNvVp4aHjz4jtF7Ghd68ll7t9MG1\nqPvA4vooPjQFpZ1YuL5sxJVCSMy40COlWzso3ddD04PZ30svZn9z+VQXHLZjNXmk5L6JwBCQ\nh6lC/9bzu23588e7TkFZn48Na/JIyX0TgSEgDzcVD7dBcPMXOx4+Ve3pVWWHzeb+s03d/Rat\nv8M5sfaq88jFDISGpBizs/bWutaf7MdW6OPztoi/5lLysR1yHPuVlM32J/P3Wr9HSu6bCAwB\nYfj3heH3b13wpboUdrRwNtuyKrfmfO9xjS39bW+RuNRfP9mzwmJ4n8TJ1DMcl5HJX4SGpJja\nxbPZ2Q7aDpNL+7E7hq4/b5tbJNpOe9BBX4td/f+2o+7X75GS+yYCQ0AeOqd5nRsd7kJfz8dt\n9xaJk+2Dy33/Vray2PYr69XvkZL7JgJDQB4+Cr3tXHqrCzZtJ947+3ueCyI05KYn9KB0bzan\n87Ur9Mu03a0T32yv/c369Xuk5L6JwBCQB1PPTLRj6POz9PHfa3cM3UzblZ1pu3Nn3MwYGrJz\nn+U42/mM28fbMLk+KbxWjeyXbTvLUc/INc+DdG5lu3Yd/mOWA3JjzN4Ok+tpiu3jRo2NsZ3w\noR1T/1lXm5mN7X2q+nH7ceeO+SPz0JCb5kphOw9nH5je2775b1OPKm66bv/q4Uh7pfAmeXG/\ndtiOrTtCc6UQFsP59V66oRVXM3IDKUKDTLbD8fHvflDA3XawIK5mcM/8bvAF7oeGRXEe9sgD\n9tmfWBEVAnSC0KAKhAZVIDSoAqFBFQgNqkBoUAVCgyoQGlSB0KAKhAZVIDSoAqFBFQgNSXFc\nH/rlFSXPgvzrQ4sKAXlwWx/6MhS6U8D90CAAt/WhL2ZwW3+3gCdWID9u60OfhsvadQtYHxry\n47Y+9Gn4gtZeAU99Q3bc1ofemfP+of9LAetDQ3B+vjD8vtv60I3yndWSegWsDw3ZcVsfula8\n7LwZvlfA2naQHbf1oRte3gx/L2D1UciN2/rQ/Y1Gaxn+xCMl900EhoA8uK0P3d9otJbhTzxS\nct9EYAjIg+v60GVd9Lia0itgDA3ZcV4fuj4HfJjfK2B9aMiO2/rQZfGYmW7fHtspYH1oyI/j\n+tDlobgNrO9b9gu4UgjLgfWhQResDw2qYH1o0AXrQwMgNOgCoUEVCA2qQGhQBUKDKhAaVIHQ\noAqEBlUgNKgCoUEVCA2qyCL0myVVQ4YAoTgup1uvFnbo3Hdnb/BvCgQtp4vQ68VtOd32qazi\nYfS1eDy2lf32UdMnRggQj+tyuvvSPkf7uJN0Xz9OeKgLct/g/1cgNLgtp7sbrr/RXZAj+3K6\n5c5sr52sBtVOtR2WjNtyus+NWopWaPtIrYCHZH/rtfYYQ68Yt+V0GzoLyhzbIUf92LiA5XSv\nW7MrEVoR/31h+H235XQbTp3Hu0924Fo0totYTvdoijNCrxe35XRrrkXn+dimF2/W9ZCxFNhl\n832MjNBqcV9Otyw62p7qpcD2prv2TL9+j5TcN+mzR+j14r6cbu/Ub9P26qwPDTJwXU73utle\nxzevEBry47acrj1x7G3eTNuVzbSdjDG0kBCQB7fldK9DZQ/G3sdxaKY3WE4XsuO2nO6+c6Wt\n6cW397nriuV0QQBuy+maF6Gr+m67ZvP8VwoFhQDZsJwu6ILldEEVLKcLumA5XQCEBl0gNKgC\noUEVCA2qQGhQBUKDKhAaVIHQoAqEBlUgNKgCoUEVCA2qQGhQBUKDKhAaVIHQoAqEBlWsR+h3\n67tCev61RKh6JUJ3REbp3DxFjuD0KoQeOIzSORk4HFrpNQj96i9K52LE37BG6xd6XF6UzsF4\ndxy0k1Yv9FtxMTo5b8UNaLR2oT9oSyedlk8dcTijlQv92VmMTshnZ4MZvWqh6aST8W2cjNCT\n+O4rRifhu6+hjFYt9BRbMToBU2wNZLRmoae5itHRmeZqGKMRGqFjM9FUhP7CVFMxOjJTTQ1i\ntF6hp3uK0VGZ7mkIoxHa7avgioOlCP0BJ0kxOhpOkgYwWqvQjopidCQcFZ1vNEL7fB0m4ioo\nQr/BWVCMjoKzoLON1im0h54YHQEPPecajdBztoGP+MiJ0CP4uYnRgfFzc6bRCD17MxjH00yE\nfsFbTIwOiLeY84xG6BAbwisIHSrEDC0xOhgztJxlNEIH2xY6zJESofvMkhKjgzDLSYTuMVNJ\njA7AzJmKOZsjdNjNwYLQAUPMNRKjZzP3ah9Cd5jtI0LPZf4tczNqyCD0qTCbU7QQ833E6Jms\nRujLzhSn6mgs2zghgtiI0bMI8SCVfx0Jhb7UJh/MvqyuO/Oxj0boBbMaoffmUFUHU9jPpdnE\nCBFIRoyeQZDFCBYhtKk3NLvOX/o/7uAZIpSKGO1NoBW9vKtJLvRvM9ZoOurQIRA6OysSem9H\nzw1lPfwIHyKYiRjtSahFRJcgdFk8hhLmcwftHSKYhwjtR7iV+H1rmin05nh12PJw17j42D8L\nEBqj/Vi80LfzNzen3UO4EFBDjPYg4Mt/Mgld/u5jOO0pdEgJEdqD5Qtt+TtuQjstQGiMdifo\nKzQ9KwtzUni5ne99vvY3O8QUwjqI0Y6EfSVsTqHP2wn3Z8wLMQmEzooSocvjrXvenMub1Tu/\nHL6GmEhoAzHaicBvofesb67Qf/ak8HBpfhDsTmmEXiAqhLang6f79b8vV0s8Q0wnuIAY7UBo\nn/MIbXZnr7AOISYTXj+EdiC40H41zp2H9onpFmIyEfTD6MmE9zmL0I9hcxFsuDEMMRmEzoky\noa/hTgiHIaYSRT6MnkgEn5MLfe7dkv/xCZQEWUVyD6MnEcNnv1rn9NCbrs9/HsFDZoXQGYnj\nc3Khq5BTz29DTCWSehg9AT1CR8IjRDTxMPorkXxOLbTtnQM81xooq3jeYfQXYvnsVTNCZ6xZ\nB/F8Tix0RNxDxLQOoz+C0DFCRJUOoz8Q0eccQp82VXXdBJ61kyY0Rr8nps8+tc8U+mzHzvZx\nFZN5HhqhM6FM6K35rS5mU/0GfFyl8sgqtnEY/Ya4PqcX2nbQF7sKUuZZDoTOhEahd+asXmiM\nHieyzx4BZg85Lmf7oErmIUd83RB6FHVC13fcHW0HHfTJFXlCY/QY0X1OLrR9YYpdp27z617P\n1BATQOg8KBQ6DgKFxuhX4vvsHkOF0Glcw+gBKXxG6Hgg9ACVQh83Au62S6QaRvdI4nNqoY8i\nbh9F6ByoFLoIueboeIjvJBNNgtE/ltxJWNL47BxHwzOFaxD6507/bxnV1in0zkRZO0mo0NmM\nfi9uNqVT+ZxY6GuxDXsn9GuI7ygX+ks/nKmbViq0iGcKE2qW3OhJumZwOpnPrqEUCJ1UsqTB\nHERN7HRCn9MKHQmErtyHxymVRuiIIdIOA1JF89EzmdIpfU4t9HlX3+Qf9kWFgoVOE85XzTRK\nJ/XZMdxcobfN8NkUQY12ySr1eVqCeHO0TKG0YqFPZltaoU9m717RtBDfSD7xEDvgXCWjG53Y\n56RCF6Zsrhbmm+VIPzccNWKAHjZyJ53a56RCN+vbVQgdiEAuRlU6udBOEWcKvWl76Eu+Ffwz\nXL2LFjKch/GUTu9zSqHbMfQ58F13DllluRodKWhQCSMZncHnlEJXu/Y6YdBVDNYpdOhONU4n\nrV3oeh7a7MI+9C1e6BhRI+gXococPjtFXfyVQi1CR+lOw1eK0F6IFzp42Egj3tDV5vE5kdCm\nj3tFIbLKdct94LjR5iQCV4zQfsgXOmzgiNPGQavO5LNL4NmzHIVd1O6vCHrle21CR72yF7Jy\n/UIfzKX+f71GdDgWIHTAyJFvvghXfTaf0wltzPBDEJYgdLDQ0W8mChUgn8/phC4ePXThXtG0\nEB/JuVJGmNgpbvcMFGMNQh9MYZ/6Phd2kehwLELoIMETPWMSIkxGnx2CB7nB314rdK9naohP\nLF3oZI8BBgi0DqGr3/rSd9D1+5ci9PzoCR9rnR0qq88JhY7COoROu/LA3GAI/UK5N2bb9uWf\nZ0UWIvS88KkXh5n3+5PXZ5FCl0VntB1G6NzLgc6Jn2EBrzkhEfqFg30IoDwV9a3TOoSekUCW\nBen8g2b2eXoCCYUumg2vxeaqRmjvDDItGuobNrvPEoW+O1xut2NC+9zptFihs63r7BkYoUfY\nPNaS3mzV9NB+KeRbp9wvcn6fJQr9XIzmarYInQmv0Ag9yuFh8fnLqGJiCAE+eyWR9R0pHsEF\n+CxS6OryuEB+3a9Y6Mzv/HEPL0HoqUks+kqhCKGds8j+DivXBET4jNDJcMwiu8/OKSD0bBYl\ntFsaAnx2TEKGzwidEIc8RPjslIYQn9cgtBSfHRIR4rNDIlJ8RuiUTM1EjM/TUxEj9MRMEDoI\n01IR5PPUZOT4jNBJmZKLKJ+npSPIZ4ROyoRchPk8JSFJPiN0Wr4mI87nCSkhdCAmhRDl89d0\nBPr8NSlRPiN0aj7mI9LnL2nJ8nliPggdDISODEIn5kNCQn3+mJg0nxE6Ne8TEuvzh9TE+YzQ\nyXmXkWCf3yeH0AFZqNDvUlqi0PJ81i60QJ/f5CTa53fpCRR6Uk4IHZSxpIT7PJ6gRJ8ROgOv\nWYn3eSxFkT4jdAZeslqAzwgdneUK/ZLWEoR+SVKmzwidg0Fai/B5mKZQnxE6C728FuLzIFGE\nDs2EEFJ97mW2GJ97qUr1eVJmCB2cZ2YL8rmbLEIHZ9FCP1JblM/PbOX6jNCZaHNbltD3dAX7\njNCZaHJbmM9twpJ9Ruhc2OQW53OTMkLH4HsI0T7b9BboszVatM8InQ/p+b1B+q/hd6MROgo/\nwvN7wz/pRiN0Jn6kJzgOQkdi6UJbLWRnOIrVRbbRCJ2FRgrRKY7R2CLaaITOQauE5BRHaW2R\nbLRaoSXL8hBCcpIjPGRZtNEIHZqODoKzfKWjimCjETo1PRnkpvlC1xSEDg1CJ6dnilyjETox\nAxXE5jlkIIpYoxE6LS8iSE10wIsnUo1G6KS8aiA00SGvngg1WqnQUjUZsUBqqj1GNBEq9Fej\nETogoxIIzbXLqCRCjUbodLxRQGayHd44ItNohE7GOwFEJtvlnSMijUboZLxtf5HZPnmrCEIH\nY4lCf2h+iek++GCIRKMROhGfGl9guk8+GSLQaJVCCxTkc9MLTPjOZ0GWZzRCB+Fbw8vLuOVb\nhyfPaIROwdd2l5dyzdcLbwgdhKUJ/b3ZxaXc8P0JEHFGI3R8pjS6tJxrpiwrI81ohI7OtCYX\nlrRl2jJJwoxG6NhMbXBZWVfTl7GTZbRCoWWZMb25ZeXtsIzdkoxG6Jm4NLaoxB2WZUTouSgV\nWlLmTsuMijIaoWPi2NRiUndcNleS0QgdEeeGFpK78zLQgoxG6Hh4NLOI5D2WNZdjtBihTR//\nECKcsPg0soTkvZbpF2O0GKFPn4WebLsEJWr8mlhA+ssW+nP6KYccl2IbIoQAIxo8mzh7/p7v\nURFjtBihq4s5BAiRXYgW7wbOvAPe7wWSYrQcoW+jjsv8EEKEntG8WfdgxnuuhBgtSOggIWQI\nPatxM+7CrPe2yTAaoSMwr2nz7cLM9xCKMFqZ0Ap8zrgTGoT+uBMI7cXshs20F7NfFCvCaIQO\nTYBmzbIbAV58LMFohA5MkEbNsB9BXuQtwGiEDkugJk29I/8CvZg+v9EIHZRgDfpf0l0JpHMl\nwGiEDknI5ky4L+F8zm+0KqE1+Zxwb0L6LNpohHYjdFMm2p2wPmc3GqFDEb4hk+xPaJ9zG43Q\ngYjRjAl2KLzPmY1G6DDEacToexTD57xGI3QQYjVh5F2K4zNCBwqhUOi4+xTJ56xGKxJao89R\n9yqaz0KNRuipRG2+aLsV0eecRiP0bCI3XqT9iupzRqMRei7Rmy7KjkX2OZ/RCD2TBA0XYc+i\n+4zQs0PoFTr8rsX3OZvRCD2PNM0WeN9S+JzLaISeRapGC7pzaXzOZLQaoVX7HHT3UvkszWiE\n/sZPygYL9RBLqMetJpHDaIT2JXVrBdnDlDpXiX/nGxDak/RNNb+TTto9NyQ/TAjtR5bx4cyd\nTK9zlf5AIbQXmWZZ53TSGbrnmsSHCqF9yHfzja/SuXSuUh8shPYg61NGXnuaT+cq8eFCaHcy\nP9nssatZfU57wBDamdxrTzgPOzION1oSHjIlQq/J58pxd7PrXIkwGqFHyXCpYIzp+5u/e65J\nd9wQ2gUZOleThx1CdLakOnQI7YAYn6tJSgvSuUp28BB6OpJ8rr4rLUrnKtXhQ+ipCBk+d/mk\ntKzuuSbJEUToicjT2fJOaYE6WxIcRISehkyfqze7LlPnKsVhROgpCBxuPHjtpIV2zzXRj6QK\noaP7HLn+mfSVlqyzJZPRCP1Acvfc8lRaus5V9OOJ0F+Qr7OlVvrfAnS2RD2kCP2ZZfhcWaWX\nYbMl5kFF6E8sYLjRcuuc077fcBYRjytCf2BJOluWpHSsihH6PUvxuTN0/m8xTsc6uAj9jqUM\nN4ZngktROtLxRehxlqHzv9GJjf8W0k9HOcYKhI7QeEvQeVzmO8uQOsZxHj8oaxb6ZwE6T5py\nXoLT4Q82QvfRYnPDMpwOWh1Cd1mEzm7fX5vSCP1EvM6fx83vWMB4OuCRR+g7onX+989P5jv/\nSbc62NFH6Aa5Os9UucN/orUO1AIIXcmd2Ajncge5VgdpBoSW2TlHcfmJVKvnt8W6hf75kdc5\nzx0uT0ek1XNbRIDQf8edsewOfx4hfFtEmMv/HiQO/N+TxJHf8zOncUYPYEKhy415snUP4dEM\nslzOovEosqz2babcQh9M8XupP13PhTk4h3BqgVm/+qH41ydzNkP+G5A5HfcGyy10YS6PzxdT\nOIeYcMR/HjjmNoN/70mXRAiGgudw/celBXMLbcy7v7QlHca2/+/nKx/kiobn0VgUH1zPyViq\nC+qhAb6Tdgx9vtaf/MbQAN9JOW237YwpNmWUELB20s5DH+p56GJ39JmHBvjOkq4UAnwFoUEV\nCA2qQGhQBUKDKhAaVIHQoAqEBlUgNKhCqNAAnnjYFl5gYXEVRlK4S8EiIfQCIyncJYRecySF\nu4TQa46kcJcQes2RFO4SQq85ksJdQug1R1K4Swi95kgKdwmh1xxJ4S4h9JojKdwlhF5zJIW7\nhNBrjqRwlxYvNEAUEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQGVSA0qAKh\nQRUIDapAaFBFUqEPhSkO5aeCaJFOm1SRbvzFOKovgS57Y/bXBJHKaM10a5f+oZofKaXQzbs6\nNx8KokU61AVF+EYZ24WyiHBUXwKdU+3StWgixfjdufQXGA0gREKh/0xxqS6F+XtbEC3SxexL\n2xvso0ey7HyWgXUOVNwKyt3nt1IHibSvYxzCH7zKhukeqhBCJBT6YM63//6a49uCaJF2zW6G\nF21sF3691jV2DfRba1aaInokE+vg3XqYba/WEEIkFHpn7D9aF7N7WxAtUkv4NhmJdB20UqRA\ne3MJHmQ8UjuACv+rU91+J3uHKoQQCYV++U2P9qv/puLSbBNE2pprBKFfAm1MdSzqkVTsSMd2\nyBH8H9LqMmijEEKsSehT/S9a5EhH8xvjX+eRg7erT9XiR6pO9qywOAWPNAiD0NMj1VyL4GOb\n10j1v5dphLYnhfvw/ebY76glfAc9CIPQ0yNZyiL4gGNsJGDn0dIIbcfQ1/CTni+RTnbIcfvV\nidJFL1noYpjuS0G0SJZthPnul0j7elQTQeiXXYrWG7xE2hg7UC9jXC8Y5B9CiOSzHNfhLMc1\n1ixHr+LrZhvjwsAw0pwXkjkFijcT+RIp3rTdsNYQQiQU+lj3XufnpYCXgmiRbp8jjDdGIkUT\n+s3Bu4bfr5dITb8ZYcbb0jtQIYRYx5XCCO3+JlJNiiuFt9FzaUe2v9EjHYy9u+IQvt+xLPlK\n4W0wZqnVavajUxA30j5SvzmyT/1PEQMdUx289g6LOF3C/VAFEyKl0M1dW01YMyiIGynWQGBk\nn/qfYgY6b9McvPYeuAiRqqHQAYRIKTRAdBAaVIHQoAqEBlUgNKgCoUEVCA2qQGhQBUKDKhAa\nVIHQoAqEBlUgNKgCoUEVCA2qQGhQBUKDKhAaVIHQoAqEBlUgNKgCoUEVCA2qQGhQBUKDKhAa\nVIHQoAqEBlUgNKgCoUEVCA2qQGhQBUKDKhA6FvVba+es5T++bafUfrz/qYK/JHehIHQkNvWR\nTSb0hoZs4DhEYv57Vr4K3f1rnLcILhCOQyQQOg8ch6kYU27qd5yeNqY4NSXV4fHSplvp5vT8\nXvvOrebPdWeK5t3vh8Ic+q/LutfQrX7zUv35VuH9e51NHn/qcPe3F0d6i/EyQOipGGvpwb6/\n9/4uPWOOj9fqbTul9ns9oQv7l+P9W/uu0Mf+Zi8VNR+bdxLWr77slA6FvqVWv7Ly1xxTHxw5\nIPRUbhLZl7if7f/KrX2Jr2lffPprHXp8bL9nHieFdcHJ9prn9lsdoYeb9SrqfKxjmOEmw5kO\ns7e17k2M15ovBISeimm6v52x3pV2dGDaV1PvbGnzcfv4Xlfov/bT/VsdoR81PKrvVPT44f3b\nw00GQlebOrk1jzgQejKthp2X0j5K3n3sFrz8qFfn8GcvJdfzcdsK3ftCX+iTHWz8rXnEgdCT\nySr09vFm549Cl6awA+4VjzgQejIvNiYUem82p/P1u9DV4TYg2ax5xIHQk2mVaQa5bYkd9tZn\nYrv+yLYaF3pkDP2ooVd9Z1T9rPMudK90IPTFbC+rHnEg9GRaZeppiNtgdfeccDgPJifar1+r\nodBvZznO/er7sxznxuLLfQzd2+T5pxlnbEyx6hEHQk/mrmEznC2utqT+vHuWbp/f2xg7nu0L\nfR8Kd4R+1NCvvqlof//hod3ur1faFboJV3f/qx5xIPRkHhqebvLs2+53117Vu5UWzwt8lr/N\niND2SuH2rzeG3vU361d0uF9hvEm8/buPM+6lXaGbcPa0cN0jDoSegfE8eM21xTk1vOds1j3i\nQOgZOOtYX/Ard+bgXcNXtuYUusplgdD+OOvY3pJR+NfwNaNn779SENofdx1Pt1O+zeH599BC\nF8/r5GsFoUEVCA2qQGhQBUKDKhAaVIHQoAqEBlUgNKgCoUEVCA2qQGhQBUKDKhAaVIHQoAqE\nBlUgNKgCoUEVCA2qQGhQBUKDKhAaVIHQoAqEBlUgNKgCoUEVCA2qQGhQxf/gAMtAAGra/AAA\nAABJRU5ErkJggg==",
977 | "text/plain": [
978 | "plot without title"
979 | ]
980 | },
981 | "metadata": {},
982 | "output_type": "display_data"
983 | }
984 | ],
985 | "source": [
986 | "# plot\n",
987 | "boxplot(estims,ylim=c(0,2),col=\"lightgray\",ylab=\"overdispersion parameter k\",xlab=\"distribution of reporting probability\")\n",
988 | "abline(h=0.1,lty=2,col=\"blue\")\n",
989 | "betas=cbind(dbeta(0:100/100,8,2),dbeta(0:100/100,5,5),dbeta(0:100/100,2,8))\n",
990 | "colnames(betas)=colnames(estims)[-1]\n",
991 | "matplot(x=0:100/100,betas,type=\"l\",ylim=c(0,5),lty=1,col=2:4,xlab=\"reporting probability\",ylab=\"density\")\n",
992 | "legend(\"topright\",col=2:4,legend=paste(colnames(betas),\" \"),bty=\"n\",lty=1,y.intersp=2)"
993 | ]
994 | },
995 | {
996 | "cell_type": "markdown",
997 | "metadata": {},
998 | "source": [
999 | "The same procedure was repeated where the reporting probability for the imported cases was assumed to be 100%."
1000 | ]
1001 | },
1002 | {
1003 | "cell_type": "code",
1004 | "execution_count": 17,
1005 | "metadata": {},
1006 | "outputs": [
1007 | {
1008 | "data": {
1009 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtAAAAJYCAMAAAB8aiEbAAAANlBMVEUAAAAAAP9NTU1oaGh8\nfHyMjIyampqnp6eysrK9vb3Hx8fQ0NDT09PZ2dnh4eHp6enw8PD////iz9LxAAAACXBIWXMA\nABJ0AAASdAHeZh94AAAeH0lEQVR4nO2dibaiOhAA81hEL6PC///sk0UF3AhJSNNUnTOjFyHd\nQIkhBGJqAEWY2AkA+AShQRUIDapAaFAFQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMq\nEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMq\nEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMq\nEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMq\nEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMq\nEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMq\nEBpUgdCgCoQGVSA0qGIFoQ3AQhbY5ibrKTUmL4OGgP2yotDdlyfrvkdFkBCwe9YWujBFVdfX\nwpxChIDds7bQiama95VJQ4SA3bO20PdK+/fKO0LDQtYW+nAXOgkRAnbPqkLnx1Np/m5vq+L7\nWSFCw0JWFfrRUGhMUoUIAbtnzXboy+V0yvP21LD46jNCw1LWv7AiJAToBKFBFQgNqoglNO3Q\nEAQ5Qjt2mQJooMoBqkBoUAVCgypWFfp8zNsacl6cQ4WAnbOi0FU6OOvLgoSA3bOi0IVJ/i7t\nu2uZ0DkJgrCi0Im5PN5f6D4KQVj9nsJ3f3gLAbuHIzSoYt06dHlt31GHhlCs2WyXDVo5Ujr4\nQwjWbYcu2nboJD/SDg1h4EohqAKhQRUIDapAaFAFQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapA\naFAFQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapA\naFAFQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQGVSA0qMJR6OP9TZV7\nSOZtCAALHIU2Wfd6NF4dRGhYiKPQRWv0X2LM8dPsS0BoWIhrHfpm9Dk1Jr1YlfArKkLDQpxP\nCgtjrA/PCA2hcG/lKEwy7/BsxnjOCqDBQ7NdZs6zljsnCA2hcRDa4ojbUeUmu3ZL+s8KoGFN\noev6z5i/GqEhHCtfKbxmJq8QGoKx+qXvo0lKhIZQrN+X45L+rp8gNCwkRuekA0JDKOhtB6pA\naFBFLKG5sAJBcBQ6L5bGfQls3agN8Iprf+gw6iE0LMRR6NRU3lL5EALAAkehqzyb1zNpeQgA\nC5yrHDbV3vMxb2fNix/fAoSGhawodJUO5s58ZwXQsGKzXWGSv+5WgGuZmK/NIwgNC1lR6MQ8\n72y5mCRECNg9zkKXeVPbyK8zlpvf3ofQsBBXobOu+myS30ZzhIbwOAp9MlnVCH0yh5/L3erQ\nZac9dWgIhaPQienvP5nTbJcNWjnSrxdkEBoW4uHS92yh63PRtkMn+ZF2aAiDh0vfjcsXk3pL\nqUZoWIyfOvStTnzyllKN0LAY11aOfNaVP6cQAPPx0g5t8j9P6bwNATAbbsECVSA0qMLXHSvJ\n1yt/LiEALPAk9JUhKcCKUDeOOghdjm5rpR0a5jP/Ypx1yQ6LDDvsp17vxEJo5ZjB/yFKXryI\nnN8N2BBm8hqg6LCLyAjB8z6kIFno+R38F4fwVGawahvYIlhoiw7+S0N4LROhRSC2Dm3TwX9h\nCM9FYrQEZLZy1JYd/JeF8FwkQstAYDt0+96qg/+iEJ6LRGjd7KeDP3XoXbCfDv60cuyCPXXw\npx16B9DBH1SxpyuFsAMQGlSB0KAKV6GLJMQ4P5wUwkIchS7CDFxFsx0sxPlKodf253ch/JaJ\n0MrZTQd/Ln3vA+cqx1aGdUPofeDcHzrz27X/TQhvRXY9t/0XDYJwFbrkpBAk4Sj0kVYOEIVz\nB/+ttHJQ5dgHtHKAKpyrHLRybA/Nl0xdTwqPmxm8XsaFFQEu6T6ZcK5ycFK4sRyEfLNDsR+h\nJRwdJbikvO5F99EVEeGSiCTCgdArIsIlEUmEw5fQ59w1k58hto8MlyTUe8Lh3MF/Q3Xo+Ihw\nScSZaTC8dfAvvaVUh9rlAk4KZbgUf0OEw/nS91+dmes1M+Kf4C9DJs0uicDDpe/j7eh8sXjS\nzCkx6Y8eIFxYgYV4ELpsOijN2U+X3CSnvoPed/+1XvqW8SuhGkeh81uV42rS+jxjL11akwtz\nqOpr/r2Xnlqh46egHUehy0bk9in+vx94fjBFcxbZjtBZfX9aqVKhJeSgHefOSc1fB9O4+nO5\ndkGTD/7wmNXv8MFKtkwBoUOy4pXCzuG/rq5hvg6lrLSVA6HD41qHnnFkvnNoas8d1eH7IV1t\nO/TgfwiCh1aOuVTJY27z/QCtdpcL+JXQjqPQqdUdK8Vd4+THgV3vLo//K6EcR6GrfDN3rMgA\noQOzpw7+8aHKERyEXhNOCoMTq4P/+u3QAqDZLjxyhDYm0OF+GCFIufMTqHnYTWj2c8dKyK/K\n/BRqAd8r1eznjhUJJ2TUoYOzmztWepWjGs0ROjyr3rFyPnYDz+bFj7n19rajDh2YFe9YqdLB\nWV+MDv7RZZLwpdLOinesFCb5u7TvrmWyeuckET/31KGDs+IdK4m5PN5fdtl9VEQOylnxjhUz\nPbR7zep3dAHtdtF/IvSz4h0rcY/QIoTmCB2cFa8U3urQZTdkVpw69PAlEtShg7Pmpe9s0MqR\nfu1HrVRoWjnC4yz0X9O0fJh3WeVctO3QSX6M0A4toJUDocPjKvT9qOu1Kwft0LAU50vfSXNw\nLj0P7xak2S5YydvKQTnOl767lovL9wfHuITwVqaAFgYJOSjHw5XC8RsvKO0PLSQH1ThXOe5H\naPH9oeGB5m+V84WVtg59TuY/Tdc6hL9SFe9HC3TXe5yrHEHunNJahxbxpTJtEtHTCMSOhA5W\nskUOAr5UEhrkA7LmlcKoISS0Q8v5UkX/WgVjP0ILODAJ+lLF/loFY0dCD1/iIOFLJWJDBGRP\nQrfnQnGFHr5ES0LAtyocOxI6/n4UITStHB4WERBCxhE6/pdKRlNLOBB6RUScFNbxv1Ih2ZHQ\nAo6OEprtlLMjoeMfoZX/2ovAuS9H6vsq4UsIT0VKEDr6T4R+HIU++r/sPQ3hq0gJVQ4IjnMH\nf693qrwL4atIGUdoCIyvDv5+QeigaP6dchQ6txrWbVEIX0VS5ejRfWbqKPQ12cqwbkKO0AK+\nUTLaDkNtCH/9ob2lVIcSevASCQkHRxG97cJtiB0JLaDKIaEbhQyhg6WwnwsrAi47C/lSjV+V\n5aBQaLMIX6l/z0xCPV5AHVqy0H/Nw8DyP0/pvA3hqUxTx3Zp1W/Plyzu/8VLYfIaoOili9yf\nbcdjDGYnED0NCRkM/g9R8uJFTtt5tl24YufHFyJ0fMS2cqTbebZduGLnxxdRh5bxlRLbDj19\n44X42zsI1KHD4+0I/XXMFJcQihAitIDG8HDsqg4dHQkHR+UV+T21ckT/nog4QovoAxAO93bo\nfCPt0OGKnR9fhNCTV2UovFK4erHz40s4OIpIIhwIvSIimu2oQ39axJgt9bYLWOz8+CJcopXj\nwyLbEzo2Io7QtYB6fEB2VeWIjYzqK0K7LyIwRAxEtHIg9NdFTmldX1OT+r2zUG8dOr5MMiry\nUvtylE1aSbOPvBqtVGghVwqHLzGTkNjbLjN/bU+7P7+XCpUKLeLgaOr496LJ7Q/dbJmLKeZ9\n26qDMVn5XNBrVnOILrQIlwR8qwJerfQgdG7KWUJXbdWkH3J2r0KPXuMkIaAiL1fozFzKpufo\nnCpH0fTIq07doLNRhI6NkOorQn9epGy2zLHZSuXP5ZJuwWuSXncqtJCTwvhCy61D16ekqUHX\n6YzudvdNWGXZfoWOrpIQoaW2ctiQPh7smGba69BmESulJuH6u9R26LyYv9zJHPp3V5MpF/oz\n0XOQ0MoREA+tHLMpHnOXP7YnQgdMQMYROhSOQqdWz4e+5Pd31wNCx0qAI/SXRap8K8+HDlis\nFdFz4Aj9bZFAZzRKN7YIOEJ/WwShtwd3rLgv8qaQXbZDi0DC1Z1wyBF6hRZZCTtRRA5qdfYg\ndJm3HZSunvJ5F0J6sVZIyEEzrkJn3fHUJF6NRmhYiKPQJ5NVjdDPq4BeQGhYiKPQiaksTjLO\nx7ytIefFj8ZrhIaFeLj0PVfoKh2c9X3vPs1e94DgDlIB8XDpu7sN6/cT/AuT/HVPk76WXadT\nn1mBBYq3r5869KznQyf9w9EbfjwgXfEGF4GA7Su0+2idz6pCdMvN76ZHHTos0ZMQ3MG/nP18\n6PhH6Oj7sZaRQ/wkzOD/ECWHXqTlVocuu9bqWHXo6PuxlpFDdMzkNUDRYRfpyAYn0+nXftQI\nrRvJQrdDUhx+3/PdcC7aKneSH2mH3jWChb4fdfNPcy+CvR6W6NtXbB26YFi3LRJ9+4pt5Ug2\nNTQy9AjYvkLbobc1NLKA/SgiBxlJhMG5ynE/QnutRCN0WEQkEQbXk8JjW4c+J4wkOxMJOWjG\nucoRpKsWQsNCEHplJOSgmTWvFIoKsWsUb1+E3iOKt6+r0Jsa1g16FG9fR6EZ1s0WCTnISCIM\njkIzrJstEnKQkUQYPFwpnD2s27IQ8ou1QkIOEhB86XvusG4LQ3yYYz18rhhCd4jtnGQzrNvC\nEB/m+LcWCB2AcE9AdT8pnD2s28IQH+bYqtAiiL1OgX792qIdF7EY1m1piPdzILQDsdfJhHvo\n+lYvrCC0C7HXKeCQugi9stCxXWqJnYRMobvn2gWpDiF0WGInIbMOjdBhVm0HyBQ6IAitHLHt\n0IFAaN3IPEIHvKCmWGgRxF4n07fZIfRzDoR2IPY6mclrgKKXLpL3N8l6HWJlI0Iv6RiyEJ8b\ntxYgtMhmu4bnYwy+Pk3UJcSHOSQILSCHZcQWug7zPW1Ldlsk2oNmJMgkIYdlIPSnRZ6PAvv6\nAHOXEB/mECCThBw2ilihC5M0916VSdPlzh8IPTeHbSK3Dh3tcboSZJKQwzaR2WzX0T7wPPfa\nGxqh5+ewjNhfkFCtNzVXCl1kkpDDMgQI/fjfd9Fui+ReW+vehvgwhwCZJOSwDIT+tEi0W3cl\nyCQhh2UIEFpolaMZGjkACD03h2VEF1rsSWGVZ34fAvYa4sMc6/E5h80KHRu5zXZz9vsCEFq3\n0HL7QyN0bKEFbAfvu2lJpEfEVRbxH0KCTBJyWC8Jz7vd0dvP5a6yiP8QEmSSkMNmhRb0/MLx\nImXePt/u6imfdyHezrHWfkTo3zksQqjQWVfnMYlXoxF6bg4I7V7scJGTyapG6JPxesvKRoRe\nDwEbYiMtLc79oasQTTAIjdAL8XDpG6ERWg4eLn13T/H/PXj97H20GaEF5LBdoUXXocvEnH4u\nd0Jo/zkgtHuxo0XyXs85D/C/zB4RHKHn5oDQ7sW+tkObfN7zzmc/7ACh5+aA0O7FOmRy6m8S\ndw8hQSYJOSC0e7Gj7qPeEvkY4sMca+1HhP6dgyRcm+0yz7fHvob4MMda+xGhf+cgCedmO2MK\n/1386T46WyYB20EUrnXo6/HmdHr0XPWQU7/6WhxCu2w9z+UtL3a6yLVIjHXVw7UdehEIjdDz\nFjlZr+/r/MNt91/DbZrnV8/lmn/t6024VV4/5RE7vrBXOw9b8yZ/d7UOryNvyvn2fi1urQO0\nypNCOfv4tQ6dFH7790e/zX4e6/3aI3TIYqetHIcYrRybxbsXWxU6EM7t0DZVjfOx6/qR/2rp\n28jGWwJCh2XFK4VVOvgN/d5NSc7PkXcQOizOrRx/zV2FszonFSb567pyXMvkezclhJ5f3laF\nlrOPR4tks464LcmgZ9KPISzkrKx4ENq52HEH/3ZYt1kd/Efn6hourIgAoZ2LHbdy3AcN+n0L\nFkfoECC0c7FvD7QzrhTe6tBl114dqw4tAerQ98Q9l7e82PdH6BnDumWDVo70a/sIQs8vb6tC\nB2LFOnRdn4u2HTrJj7RDeysPoUes2MqxNIT4Yq3QKHTg6/5Dfm+PBZtw9NefxU2yC0NIL9YK\nlUKvlcOMnwk/3Ud9o1ho30g4OCJ0pBAahZYAQkcKgdBhQGgBIWIhYtU03umwfNUQ2gURq4bQ\njosIDBELEauG0I6LCAkhQSYJOSC06yJCQkiQSUIOCO26iJAQImRSCEJHCoHQYVjv4g5Cr1Hs\n7kFoASFiIWLVfNehETp+iFiIWDVOCh0XERgiFiJWDaEdFxESQoJMEnJAaNdFhISQIJOEHBDa\ndREhIUTIpBCEjhQCocOA0EFDBGoPgo8gtIAQsRCxatShHRcRGCIWIlaNCyuOiwgMEQsRqyYh\nCTnnSQjtgohVE5FEGBA6CIF+T72lt1qk1UFoUAVCQxyoQ4MqEBq8IWH7IjR4Q8L2RWjwhoTt\ni9DgDcXbF6HVIrwtPBAIDapAaIgDdWhQBUKDKhAaVIHQsD3Wb2lBaFAFQoMqEBpUgdCgilWF\nPh/bwetNXux38HoIy4pCV+ngRPb7YPcIDQtZUejCJH+X9t21TEwRIgTsnhWFTszl8f5ikhAh\nYPesKPSowfx76zlCw0I4QoMq1q1Dl9f2HXVoCMWazXbZoJUjrYKEgL2zbjt00bZDJ/mRdmgI\nA1cKQRUIDapAaFBFLKFph4YgyBFa1dMhIBZUOUAVCA2qQGhQBR38QRV08AdV0MEfVEH3UVAF\nHfxBFRyhQRV08AdV0MEfVEEHf1AFVwpBFUKFBljIAtv8C7wSEjKXkIOIJCTk0CEnE1skZC4h\nBxFJSMihQ04mtkjIXEIOIpKQkEOHnExskZC5hBxEJCEhhw45mdgiIXMJOYhIQkIOHXIysUVC\n5hJyEJGEhBw65GRii4TMJeQgIgkJOXTIycQWCZlLyEFEEhJy6JCTiS0SMpeQg4gkJOTQIScT\nWyRkLiEHEUlIyKFDTia2SMhcQg4ikpCQQ4ecTGyRkLmEHEQkISGHDjmZAHgAoUEVCA2qQGhQ\nBUKDKhAaVIHQoAqEBlUgNKgCoUEVCA2qQGhQBUKDKhAaVIHQoAqEBlXIEfo0SaXMbZYuf3yU\nf5nhlQ9PCXxTRptlVSQmKYYPyT6l/QS7uC5JvDze8DlheRKWOTzXu+e5ZRw2hBVihL5Mtt3V\nfH2K+oT083p0H1XmalHc+/34Jkib5TVpzUmeEYpuQmUb1yGJy1TowYTlSdjlMFjvfupzyzhs\nCCukCH1JJtsu+zrMxZQvD17tPyq+D6Y4p7g3U9ssD+2QHIU53KdezKFqfnIOtnEdkriYyS/a\ncMLiJGxzeK53y3DLLN8QVggR+mSy8Vb6szpAzxC6Mn+uxb1O7bLspz8/zgcTrOI6JHEyx/Hk\n4YTFSdjlkE83hPGyIawQIvTtmzzeSmn/fb7VwbLut+pWPUtP7bzmmpuk3Vvl7WuQlX11sfk7\nv/2+FaOZHr/DWWqRjmlGRep/I5p64al+F6TPMul323QsMPu4DkmczGm8+GjC0iTscngu1DPa\nMos3hF3GawT5zWXytT/3eyN71Mm6QYqa7Xab0Lw9Nvus5XTfxMfu72I400Pok/kxFswAY/J7\ntDq/B34N0md57H9YJ4fIymS2cR2SyE15eKj3MmFpEnY5dFTPobJHW2bxhrDLeIUY8xgJXXTD\nIP6ZrOoqYn8muTQV7b9mxtvEk0n7wRL/mnfdwqb5+K99/5zpXu7l++Bzk1we0cqmoCoz5Zsg\nfZb1qfnyJJMj5C16aRvXIYlOt8Gw66MJS5Ow3BAt/Xp37wdbZvGGsMt4hRjzGAmddVXovPlS\nV80vVt5upbI7QJz72c1j042bq+rxTN3kwYFjRi5dtLwJXLUL52+C9Fn2x6rJAfqa5NZxHZJo\n9aqK56FyNGFpEpYbouG+3i3DLbN4Q9hlvEKMebwbbPnt6cX9+NC2EuWXy3DGa3nMeqHHs08D\nzMqlW/zR/PUhyO2QdDv0VIdxJbZKsnFh1tgl0Uc1k4rqfcLCJOxzeK53Pd0ySzeEXcYrxJjH\nAqHrY9K3cvYfZ4+m14BCT4PUaX/sGrn0PAUKIvRLEp+CvWzJwDmMTv3GWwahfwp9+zUs0mdF\n+WDSU3n1LfRk6kuQd85c0+w6XsweuyQ+BfMo9Iwchuv9EnzPQveVsuylDp3XY6HrF8k/CW1X\nhz7Xj6pj+Zw6CdJn2TVOVYNmu3IQy6EObZdE1U56VGBHE5bXoW1yGK13l0MXPHHJwTLjFWLM\nYyR00TXxnJoz6+KlleM+e9qdZ7dH6Gvdbf7Lax26O2acF7RylH3gWyL5myB9lrcEq7pLs+M6\n3HU2cd2SaM8BH9aNJixNwi6H61TZ0ZZZvCHsMl4hxjxGQp/7M+P37dD32f+6Sty5Ubs5ChTm\nMWFofXeAOFq1Qx+acvJHCm1F/SXIKMtuZ7ZxD8/qpl1chySq5NEq3CUxnLA4Cbschuvdrfxg\nyyzfEHYZrxBjHuMa1uNK4W1r9lcKk8eVwsf/7ZXCZjOd09baQ/PnpF7Sf7TgSmHfDne67b/D\n9V2Q4fXM/hJGvzMHQjteKZydRNOxLR02JwwmOF4pnJuDeRF6sGX2daXwhdJ356yrCdB/8U2W\n0w0aJK64JCTk8D6sGOx62/0mTGevlyz/DpMJK3Qyk5CEhBxaxApt1x/6J4G6475kOb0rYY1u\nwBKSkJBDi1ih63L6FXfiEOj37leWoeKKS0JCDg1yhQZYAEKDKhAaVIHQoAqEBlUgNKgCoUEV\nCA2qQGhQBUKDKhAaVIHQoAqEBlUgNKgCoUEVCA2qQGhQBUKDKhAaVIHQoAqEBlUgNKgCoUEV\nCA2qQGhQBUKDKhAaVIHQoAqEBlXsUOjJkE4N5fePh3NZDOVUHczSYUVsQ73wftnJSFaPVV3p\nyaBrgNB1M2bI149Hc1lY1gxOfPw9m49QL1gJnSqyQNGqzOV1X38a3G/GxO+Blj7j231Ev59C\nD/9cZQDBlVC0KnNZUWjLBTws+b0EhFZGkdwqtc+aYzOGVtkP3tS8VKnJ7x8X/ehNj+G0RsMC\nn9LHkFzX/DFMVD386DkOVv0ou/00uY/lVTwGiBoU18w3CDUs/5H9vcxBks/i05fiy1uBj5UZ\nrlf/rw13H7/4ZbTwjbErodtR8/L7rjx1yp2equbm4Xv+MiriUOjhoIntcIDHcYzmo4nQbdl1\nPljw+BjCb1hcM99I6Ef57VyHodDH8WIvBXVvj+YxYOFkvYZC31JrhxH8W1jtl8KehL6PRtvv\nysRcHuPQNh+bZtjah0av49YOB/wcfHxb6PQ8qg0+Gp+CtWWXzUuVmXIUYlrcOOi9/PKZ/b3M\n6WKjggZv2xhmusi0pcO0o6QcVhrcJxR7EjrvB65+7MZ7a9Xdn/P9D/NuZPHnu/vA49l9oadl\ng4/GQp+7Txvvqq7cR4iX4kZBz5OgA6EHSZ4nwQcfDtZxsl4joeu0TW7jNY5dCd27cN+FzSC1\nl8vzg8nH9VTj6bvJxJcYY6H7l8dQq9+i/Qr6dnW+TLmWx+EI6C8y9+cFTWXjvPEax56Fro9J\nP3a1cqGz6XjF74WumvGOjxuvcexa6NuPb5EO69DTjwMI/SWZUEIfTHoqr7+Fvv1klXW68RrH\nroTuqpjnwS6s31jZTehq2/c69Hk8V/6uij2M0dVdX/XNn+Nd30Mc3hT3Vug3dehHCaPiB7Xq\nZ5l3oUdTJ0JfTHbZeo1jV0KX41aOtDv7b4/Qze/sSOhuzrKZ69S0S5jhXH/vGkE6PrZyPD+9\nVVbzUYiX4gahnuV/bOUox8WPWznKzuLLvQ49WuT5r6tnpCbZeo1jV0J3rcCH+27866qW52ZH\nNtXHkdCHtsm67lur8+4L8Jhr2N5b1yN1nx+9Ebr/tKu3Z/cQL8UNQg3Kzx7173uZjxLGxXcF\nPdagMI8VHUwdCt2Faw//W69x7Evo5jRweqWw+Q0+py9CN1fUjvdlDu3E4Vyn5HlFrh6p+/zo\nndDNpTxz6A+/+X3GaXGDUMPyi+SW7qiylI8XGxf0WINDs5r3esZ96lDoLlxzWrj5GsfOhBaE\nWbjlu4O/SwmfKZd3pxIDQkfCWsf2gl+VP3tY+xc6MyffRa4OQkfCWse+S0ayvISfGT2P/tsF\noSNhr+PpVuVPB3fA+BY6eV4n3zAIDapAaFAFQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAF\nQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAFQoMqEBpUgdCgCoQGVSA0qAKhQRUIDapAaFAF\nQoMq/gfnljOigBHpwQAAAABJRU5ErkJggg==",
1010 | "text/plain": [
1011 | "plot without title"
1012 | ]
1013 | },
1014 | "metadata": {},
1015 | "output_type": "display_data"
1016 | },
1017 | {
1018 | "data": {
1019 | "image/png": "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\nAABJRU5ErkJggg==",
1020 | "text/plain": [
1021 | "plot without title"
1022 | ]
1023 | },
1024 | "metadata": {},
1025 | "output_type": "display_data"
1026 | }
1027 | ],
1028 | "source": [
1029 | "# overwrite sim_data to assume 100% reporting for imported cases\n",
1030 | "sim_data=function(icases,R0,k,betaparm=NULL){\n",
1031 | " generations=numeric(length(icases))+3#sample(2:4,length(icases),T)+1\n",
1032 | " if(is.null(betaparm)){reporting=numeric(length(icases))+1\n",
1033 | " }else{reporting=rbeta(length(icases),betaparm[1],betaparm[2])}\n",
1034 | " icases_all=icases\n",
1035 | " sapply(1:length(icases),function(i){sim_cluster(icases[i],icases_all[i],generations[i],reporting[i],R0,k)})\n",
1036 | "}\n",
1037 | "set.seed(19)\n",
1038 | "estims_all=sapply(c(8,5,2),function(x){estim_k(500,2.5,c(x,10-x))})\n",
1039 | "estims_all=cbind(estim_k(500,2.5),estims_all)\n",
1040 | "colnames(estims_all)=c(\"1 (constant)\",\"beta(8,2)\",\"beta(5,5)\",\"beta(2,8)\")\n",
1041 | "\n",
1042 | "boxplot(estims_all,ylim=c(0,0.5),col=\"lightgray\",ylab=\"overdispersion parameter k\",xlab=\"distribution of reporting probability\")\n",
1043 | "abline(h=0.1,lty=2,col=\"blue\")\n",
1044 | "betas=cbind(dbeta(0:100/100,8,2),dbeta(0:100/100,5,5),dbeta(0:100/100,2,8))\n",
1045 | "colnames(betas)=colnames(estims)[-1]\n",
1046 | "matplot(x=0:100/100,betas,type=\"l\",ylim=c(0,5),lty=1,col=2:4,xlab=\"reporting probability\",ylab=\"density\")\n",
1047 | "legend(\"topright\",col=2:4,legend=paste(colnames(betas),\" \"),bty=\"n\",lty=1,y.intersp=2)"
1048 | ]
1049 | }
1050 | ],
1051 | "metadata": {
1052 | "jupytext": {
1053 | "formats": "ipynb,Rmd"
1054 | },
1055 | "kernelspec": {
1056 | "display_name": "R",
1057 | "language": "R",
1058 | "name": "ir"
1059 | },
1060 | "language_info": {
1061 | "codemirror_mode": "r",
1062 | "file_extension": ".r",
1063 | "mimetype": "text/x-r-source",
1064 | "name": "R",
1065 | "pygments_lexer": "r",
1066 | "version": "3.6.1"
1067 | }
1068 | },
1069 | "nbformat": 4,
1070 | "nbformat_minor": 4
1071 | }
1072 |
--------------------------------------------------------------------------------
/src/install.R:
--------------------------------------------------------------------------------
1 | install.packages("LaplacesDemon")
2 |
--------------------------------------------------------------------------------
/src/runtime.txt:
--------------------------------------------------------------------------------
1 | r-3.6.1-2019-07-05
2 |
--------------------------------------------------------------------------------
/supplementarymaterials.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akira-endo/COVID19_clustersize/e748321cf4bccd6cc5ee77afde83b51479f3f449/supplementarymaterials.pdf
--------------------------------------------------------------------------------