Estimación muy burda del número de contagios.
Leo por ahí estimaciones de que hay en España más de 1 millón de contagiados y la verdad es que no tengo ni idea. Pero no se me ocurre ir poniendo ese dato por ahí como verdad absoluta, como hacen algunos .
Hagamos un ejercicio simple y muy burdo, lo reconozco. Supongamos que el número de fallecidos por coronavirus está bien recogido, lo miro en mi dashboard que para eso lo hice y me dice que hoy 29 de Marzo hay un total acumulado de 6528 fallecidos.
Los de las estimaciones de más de un millón de contagiados me dicen que usan una tasa de letalidad global del 2% ergo, le saldrían que esos 6528 se corresponderían con una población de contagiados de 326400, bastante lejos del más de un millón..
Que si, que ya sé que desde que te contagias hasta que te recuperas pueden pasar de 6 a 22 días, pero aún así me parece que no se puede dar esa cifra tan alegremente.
Otras estimaciones algo mas serias, también burdas, pero al menos se reconoce y se intenta medir la incertidumbre dan una cifra (si se ejecuta el modelo) entre 150 mil y 300 mil contagiados, aquí y el github con el código
En fin, yo voy a hacer el ejercicio de aplicar unas tasas de letalidad por edad, por ver qué sale. Ya aviso, que esto tiene la validez que tiene , aunque no creo que mucha menos que la de la empresa del millón.
Leemos fallecidos oficiales por edad y sexo del repo de datadista (muchas gracias )
library(tidyverse)
## ── Attaching packages ───────────────────────────────────────────────────────────── tidyverse 1.3.0.9000 ──
## ✓ ggplot2 3.3.0 ✓ purrr 0.3.3
## ✓ tibble 2.1.3 ✓ dplyr 0.8.5
## ✓ tidyr 1.0.2 ✓ stringr 1.4.0
## ✓ readr 1.3.1 ✓ forcats 0.5.0
## ── Conflicts ───────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
dat1 <- read_csv("https://raw.githubusercontent.com/datadista/datasets/master/COVID%2019/nacional_covid19_rango_edad.csv")
## Parsed with column specification:
## cols(
## fecha = col_date(format = ""),
## rango_edad = col_character(),
## sexo = col_character(),
## casos_confirmados = col_double(),
## hospitalizados = col_double(),
## ingresos_uci = col_double(),
## fallecidos = col_double()
## )
Las tasas de letalidad que vamos a utilizar vienen de un estudio en China, estudio
Age | (deaths/cases) | CFR (95% CI) |
---|---|---|
≤ 9 years | (0/416) | 0% |
10 to 19 years | (1/549) | 0.18% (0.03 to 1.02%) |
20 to 49 years | (63/19790) | 0.32% (0.25% to 0.41%) |
50 to 59 years | (130/10,008) | 1.3% (1.1% to 1.5%) |
60 to 69. years | (309/8583) | 3.6% (3.2% to 4.0%) |
70 to 79 years | (312/3918) | 8.0% (7.2% to 8.9%) |
≥80 years | (208/1408) | 14.8% (13.0% to 16.7%) |
tmp <- dat1 %>%
filter(rango_edad != "Total" & sexo == "ambos") %>%
mutate(rango_edad_2 =
fct_collapse(rango_edad,
"20-49" = c("20-29","30-39","40-49"),
">= 80" = c("80 y +","80-89","90 y +")
)
) %>%
group_by(rango_edad_2) %>%
summarise(fallecidos = sum(fallecidos))
tmp$tasa_letalidad <- c(0, 0.18, 0.32, 1.3, 3.6,8, 14.8)/100
Y nos saldría nuestra estimación estilo compadre de esta forma
(tmp <- tmp %>%
mutate(contagiados_estim = fallecidos / tasa_letalidad) )
## # A tibble: 7 x 4
## rango_edad_2 fallecidos tasa_letalidad contagiados_estim
## <fct> <dbl> <dbl> <dbl>
## 1 0-9 0 0 NaN
## 2 10-19 7 0.0018 3889.
## 3 20-49 194 0.0032 60625
## 4 50-59 245 0.013 18846.
## 5 60-69 797 0.036 22139.
## 6 70-79 2253 0.08 28162.
## 7 >= 80 5966 0.148 40311.
Y un total de contagiados de
sum(tmp$contagiados_estim, na.rm=T)
## [1] 173972.2
En fin, y oigan, si con el número de fallecidos el número de contagiados es el que dice esa empresa, no sería tan mala noticia, significaría que la letalidad es más baja de lo que dicen ciertos estudios.