In Flaxman et al. (https://www.imperial.ac.uk/media/imperial-college/medicine/sph/ide/gida-fellowships/Imperial-College-COVID19-Europe-estimates-and-NPI-impact-30-03-2020.pdf), they use a distribution of time between infection and onset of symptoms. p17, they write : “The infection-to-onset distribution is Gamma distributed with mean 5.1 days and coefficient of variation 0.86.”. We can use this distribution to compute the probability that I got infected N days ago and have yet to show symptoms, assuming that I am one of those who show symptoms when they are infected.
Let’s look at that distribution.
library(EnvStats)
##
## Attaching package: 'EnvStats'
## The following objects are masked from 'package:stats':
##
## predict, predict.lm
## The following object is masked from 'package:base':
##
## print.default
mean_gamma = 5.1
cv_gamma = 0.86
plot(density( rgammaAlt(n=10000, mean = mean_gamma, cv=cv_gamma) ), main = "Distribution of time between infection\nand onset of symptoms", lwd=2 )
Based on this distribution, we can compute the probability that I have not shown the symptoms yet given that I got infected q days ago and that I am the kind of person who would show the symptoms.
prob_InfectedNDaysAgo <- function (q) {
y = 1 - pgammaAlt(q=q, mean = mean_gamma, cv=cv_gamma)
print(paste ("The probability that I have not shown the symptoms yet given that I got infected ", q, " days ago and that I am the kind of person who would show the symptoms is ", y, sep="") )
return(y)
}
For instance, for 7 days:
prob_InfectedNDaysAgo(7)
## [1] "The probability that I have not shown the symptoms yet given that I got infected 7 days ago and that I am the kind of person who would show the symptoms is 0.251003864812605"
## [1] 0.2510039
Lockdown in France occurred on Tuesday March 17 at noon. Since today is April 1st, that’s 15 days ago. So:
prob_InfectedNDaysAgo(15)
## [1] "The probability that I have not shown the symptoms yet given that I got infected 15 days ago and that I am the kind of person who would show the symptoms is 0.0368759577360493"
## [1] 0.03687596
Of course, that’s assuming that I am one of those who show symptoms, and that’s only considering the chance that I got infected on the lockdown day. It’s ignoring the possibility that I got infected the day before or even a few days before that, and that’s also ignoring the possibility that I got infected while e.g. shopping since the lockdown has started, and that’s also ignoring the possibility that I got infected through close contacts with whom I am being confined, e.g. my partner, children, or cat.
According to https://www.worldometers.info/coronavirus/coronavirus-symptoms/#mild , 80.9% of coronavirus infections have mild symptoms, which may pass as undetected. So we can update the computation above to reflect the fact that I don’t know if I would show symptoms.
To do this computation, I need to know my exposure as of N days ago. Let’s do the computation for March 17, 15 days ago. On March 28th, the above-mentioned paper says there were 3% of the population infected 15 days ago, there were 6953 active cases in France, and 29561 active cases in France on March 28 (https://www.worldometers.info/coronavirus/country/france). We’ll do a very rough proportionality to get to the proportion of the French population infected 15 days ago, and will use this number as my probability that I got infected on March 17. That’s certainly not correct.
6953 * (0.03) / 29561
## [1] 0.007056257
According to this very rough computation, there were 0.7% of the population infected on March 17. I’ll consider that my chance that I got infected on that day is 0.7%, an overestimate probably (although spatial heterogeneity in France may make it an underestimate if the infection rate in the city where I underwent lockdown was much higher than the country-wise average of 0.7%…).
prob_InfectedNDaysAgoIntegrated <- function (q) {
y = 0.007 *( 0.809 + (1-0.809) * ( 1 - pgammaAlt(q=q, mean = mean_gamma, cv=cv_gamma) ) )
print(paste ("The probability that I got infected ", q, " days ago given that I have not shown symptoms so far is ", y, sep="") )
return(y)
}
prob_InfectedNDaysAgoIntegrated(15)
## [1] "The probability that I got infected 15 days ago given that I have not shown symptoms so far is 0.0057123031554931"
## [1] 0.005712303
This probability sums over the two possibilities, that I am of the symptomatic type or or the asymptomatic type, assuming that I got a 0.7% probability of being infected on March 17.
The population of France is 67,064 million (https://en.wikipedia.org/wiki/Demographics_of_France).
6953 * (0.03*67.064*10^6) / 29561
## [1] 473220.8
According to this very rough computation, there were 473221 people infected on March 28 in France, i.e. 0.7% of the population.