library(data.table)
# install.packages("kableExtra")
library(knitr)
library(kableExtra)
Goal: Estimate what proportion of COVID-19 infections would require hospitalization in each US county based on reported COVID-19 severity by demographics and data on US county demographics.
These numbers are based on data from the Chinese CDC (http://weekly.chinacdc.cn/en/article/id/e53946e2-c6c4-41e9-9a9b-fea8db1a8f51).
I assume we can use these rates to estimate a lower bound of US hospitalizations by comorbidity and an upper bound for the number of fatalities.
cond_fatality_rates = fread('data/ccdc_rates_v5.csv')
cond_fatality_rates %>% kable() %>% kable_styling()
| age_decade | case_fatality_rate |
|---|---|
| 0-9 | 0.000 |
| 10-19 | 0.002 |
| 20-29 | 0.002 |
| 30-39 | 0.002 |
| 40-49 | 0.004 |
| 50-59 | 0.013 |
| 60-69 | 0.036 |
| 70-79 | 0.080 |
| 80+ | 0.148 |
Using conversion factors from CCDC data for now. We do not have them conditional on age or comorbidities.
ccdc_ratios = fread('data/ccdc_ratios.csv')
ccdc_ratios
## variable value
## 1: severe_per_death 6.029326
## 2: critical_per_death 2.040078
Data source:
Census County Population by Characteristics: 2010-2018 (https://www.census.gov/data/datasets/time-series/demo/popest/2010s-counties-detail.html?)
Using 2018 population estimates.
age_buckets_by_county = fread('data/county_age_populations_v5.csv')
age_buckets_by_county[CTYNAME == "Santa Clara County"] %>% kable() %>% kable_styling()
| FIPS | STNAME | CTYNAME | age_decade | pop |
|---|---|---|---|---|
| 6085 | California | Santa Clara County | 0-9 | 231605 |
| 6085 | California | Santa Clara County | 10-19 | 237135 |
| 6085 | California | Santa Clara County | 20-29 | 278072 |
| 6085 | California | Santa Clara County | 30-39 | 302185 |
| 6085 | California | Santa Clara County | 40-49 | 270163 |
| 6085 | California | Santa Clara County | 50-59 | 252777 |
| 6085 | California | Santa Clara County | 60-69 | 186657 |
| 6085 | California | Santa Clara County | 70-79 | 109920 |
| 6085 | California | Santa Clara County | 80+ | 69056 |
Steps to get simple estimate of severe cases:
merged_pop_fat_rate = merge(
age_buckets_by_county[, .(FIPS, State = STNAME, County = CTYNAME, age_decade, population_in_age_group = pop)],
cond_fatality_rates,
by = 'age_decade')
merged_pop_fat_rate[County == "Santa Clara County"] %>% kable(digits=4) %>% kable_styling()
| age_decade | FIPS | State | County | population_in_age_group | case_fatality_rate |
|---|---|---|---|---|---|
| 0-9 | 6085 | California | Santa Clara County | 231605 | 0.000 |
| 10-19 | 6085 | California | Santa Clara County | 237135 | 0.002 |
| 20-29 | 6085 | California | Santa Clara County | 278072 | 0.002 |
| 30-39 | 6085 | California | Santa Clara County | 302185 | 0.002 |
| 40-49 | 6085 | California | Santa Clara County | 270163 | 0.004 |
| 50-59 | 6085 | California | Santa Clara County | 252777 | 0.013 |
| 60-69 | 6085 | California | Santa Clara County | 186657 | 0.036 |
| 70-79 | 6085 | California | Santa Clara County | 109920 | 0.080 |
| 80+ | 6085 | California | Santa Clara County | 69056 | 0.148 |
severe_per_death = ccdc_ratios[variable == 'severe_per_death', value][1]
critical_per_death = ccdc_ratios[variable == 'critical_per_death', value][1]
merged_pop_fat_rate[,`:=`(
severe_cases_rate = severe_per_death*case_fatality_rate,
critical_case_rate = critical_per_death*case_fatality_rate,
hospitalizations_per_case = (severe_per_death+critical_per_death)*case_fatality_rate
)]
case_severity_rates = merged_pop_fat_rate[,
.(FIPS, State, County, age_decade, population_in_age_group, hospitalizations_per_case, severe_cases_rate, critical_case_rate, case_fatality_rate)]
case_severity_rates[County == "Santa Clara County"] %>% kable(digits=3) %>% kable_styling()
| FIPS | State | County | age_decade | population_in_age_group | hospitalizations_per_case | severe_cases_rate | critical_case_rate | case_fatality_rate |
|---|---|---|---|---|---|---|---|---|
| 6085 | California | Santa Clara County | 0-9 | 231605 | 0.000 | 0.000 | 0.000 | 0.000 |
| 6085 | California | Santa Clara County | 10-19 | 237135 | 0.016 | 0.012 | 0.004 | 0.002 |
| 6085 | California | Santa Clara County | 20-29 | 278072 | 0.016 | 0.012 | 0.004 | 0.002 |
| 6085 | California | Santa Clara County | 30-39 | 302185 | 0.016 | 0.012 | 0.004 | 0.002 |
| 6085 | California | Santa Clara County | 40-49 | 270163 | 0.032 | 0.024 | 0.008 | 0.004 |
| 6085 | California | Santa Clara County | 50-59 | 252777 | 0.105 | 0.078 | 0.027 | 0.013 |
| 6085 | California | Santa Clara County | 60-69 | 186657 | 0.290 | 0.217 | 0.073 | 0.036 |
| 6085 | California | Santa Clara County | 70-79 | 109920 | 0.646 | 0.482 | 0.163 | 0.080 |
| 6085 | California | Santa Clara County | 80+ | 69056 | 1.194 | 0.892 | 0.302 | 0.148 |
county_case_severity_rates = case_severity_rates[,.(
hospitalizations_per_case = weighted.mean(hospitalizations_per_case, population_in_age_group),
severe_cases_rate = weighted.mean(severe_cases_rate, population_in_age_group),
critical_case_rate = weighted.mean(critical_case_rate, population_in_age_group),
case_fatality_rate = weighted.mean(case_fatality_rate, population_in_age_group)
), by = c('FIPS', 'State', 'County')]
county_case_severity_rates[County == "Santa Clara County"] %>% kable(digits=3) %>% kable_styling()
| FIPS | State | County | hospitalizations_per_case | severe_cases_rate | critical_case_rate | case_fatality_rate |
|---|---|---|---|---|---|---|
| 6085 | California | Santa Clara County | 0.132 | 0.099 | 0.033 | 0.016 |
fwrite(county_case_severity_rates, 'data/county_case_severity_rates_v5.csv')
county_case_severity_rates[order(hospitalizations_per_case, decreasing = TRUE)][1:100] %>%
kable(digits=3) %>% kable_styling()
| FIPS | State | County | hospitalizations_per_case | severe_cases_rate | critical_case_rate | case_fatality_rate |
|---|---|---|---|---|---|---|
| 15005 | Hawaii | Kalawao County | 0.421 | 0.315 | 0.107 | 0.052 |
| 12119 | Florida | Sumter County | 0.418 | 0.313 | 0.106 | 0.052 |
| 35021 | New Mexico | Harding County | 0.332 | 0.248 | 0.084 | 0.041 |
| 12015 | Florida | Charlotte County | 0.327 | 0.244 | 0.083 | 0.041 |
| 4012 | Arizona | La Paz County | 0.324 | 0.242 | 0.082 | 0.040 |
| 35003 | New Mexico | Catron County | 0.319 | 0.238 | 0.081 | 0.040 |
| 12115 | Florida | Sarasota County | 0.308 | 0.230 | 0.078 | 0.038 |
| 51103 | Virginia | Lancaster County | 0.304 | 0.227 | 0.077 | 0.038 |
| 12055 | Florida | Highlands County | 0.299 | 0.223 | 0.076 | 0.037 |
| 35051 | New Mexico | Sierra County | 0.296 | 0.221 | 0.075 | 0.037 |
| 51133 | Virginia | Northumberland County | 0.296 | 0.221 | 0.075 | 0.037 |
| 48299 | Texas | Llano County | 0.296 | 0.221 | 0.075 | 0.037 |
| 38051 | North Dakota | McIntosh County | 0.296 | 0.221 | 0.075 | 0.037 |
| 12017 | Florida | Citrus County | 0.296 | 0.221 | 0.075 | 0.037 |
| 38083 | North Dakota | Sheridan County | 0.295 | 0.220 | 0.075 | 0.037 |
| 26001 | Michigan | Alcona County | 0.295 | 0.220 | 0.074 | 0.037 |
| 26131 | Michigan | Ontonagon County | 0.294 | 0.219 | 0.074 | 0.036 |
| 32009 | Nevada | Esmeralda County | 0.291 | 0.218 | 0.074 | 0.036 |
| 41069 | Oregon | Wheeler County | 0.288 | 0.215 | 0.073 | 0.036 |
| 31103 | Nebraska | Keya Paha County | 0.287 | 0.215 | 0.073 | 0.036 |
| 26083 | Michigan | Keweenaw County | 0.287 | 0.214 | 0.072 | 0.036 |
| 53031 | Washington | Jefferson County | 0.284 | 0.212 | 0.072 | 0.035 |
| 48243 | Texas | Jeff Davis County | 0.282 | 0.210 | 0.071 | 0.035 |
| 51091 | Virginia | Highland County | 0.281 | 0.210 | 0.071 | 0.035 |
| 13281 | Georgia | Towns County | 0.280 | 0.209 | 0.071 | 0.035 |
| 12061 | Florida | Indian River County | 0.278 | 0.208 | 0.070 | 0.034 |
| 46021 | South Dakota | Campbell County | 0.275 | 0.205 | 0.069 | 0.034 |
| 12021 | Florida | Collier County | 0.274 | 0.204 | 0.069 | 0.034 |
| 41015 | Oregon | Curry County | 0.272 | 0.204 | 0.069 | 0.034 |
| 48327 | Texas | Menard County | 0.272 | 0.203 | 0.069 | 0.034 |
| 31091 | Nebraska | Hooker County | 0.270 | 0.202 | 0.068 | 0.034 |
| 45065 | South Carolina | McCormick County | 0.270 | 0.202 | 0.068 | 0.033 |
| 12085 | Florida | Martin County | 0.270 | 0.202 | 0.068 | 0.033 |
| 27001 | Minnesota | Aitkin County | 0.269 | 0.201 | 0.068 | 0.033 |
| 26143 | Michigan | Roscommon County | 0.266 | 0.199 | 0.067 | 0.033 |
| 55051 | Wisconsin | Iron County | 0.266 | 0.199 | 0.067 | 0.033 |
| 53055 | Washington | San Juan County | 0.266 | 0.198 | 0.067 | 0.033 |
| 29085 | Missouri | Hickory County | 0.265 | 0.198 | 0.067 | 0.033 |
| 13291 | Georgia | Union County | 0.265 | 0.198 | 0.067 | 0.033 |
| 37149 | North Carolina | Polk County | 0.265 | 0.198 | 0.067 | 0.033 |
| 31071 | Nebraska | Garfield County | 0.265 | 0.198 | 0.067 | 0.033 |
| 26119 | Michigan | Montmorency County | 0.265 | 0.198 | 0.067 | 0.033 |
| 20089 | Kansas | Jewell County | 0.264 | 0.197 | 0.067 | 0.033 |
| 26071 | Michigan | Iron County | 0.262 | 0.196 | 0.066 | 0.033 |
| 30079 | Montana | Prairie County | 0.262 | 0.196 | 0.066 | 0.032 |
| 51115 | Virginia | Mathews County | 0.262 | 0.196 | 0.066 | 0.032 |
| 26141 | Michigan | Presque Isle County | 0.261 | 0.195 | 0.066 | 0.032 |
| 20039 | Kansas | Decatur County | 0.261 | 0.195 | 0.066 | 0.032 |
| 31015 | Nebraska | Boyd County | 0.261 | 0.195 | 0.066 | 0.032 |
| 51119 | Virginia | Middlesex County | 0.260 | 0.194 | 0.066 | 0.032 |
| 5005 | Arkansas | Baxter County | 0.260 | 0.194 | 0.066 | 0.032 |
| 13239 | Georgia | Quitman County | 0.259 | 0.194 | 0.066 | 0.032 |
| 8055 | Colorado | Huerfano County | 0.258 | 0.193 | 0.065 | 0.032 |
| 53069 | Washington | Wahkiakum County | 0.257 | 0.192 | 0.065 | 0.032 |
| 46089 | South Dakota | McPherson County | 0.257 | 0.192 | 0.065 | 0.032 |
| 38039 | North Dakota | Griggs County | 0.257 | 0.192 | 0.065 | 0.032 |
| 25001 | Massachusetts | Barnstable County | 0.257 | 0.192 | 0.065 | 0.032 |
| 37175 | North Carolina | Transylvania County | 0.257 | 0.192 | 0.065 | 0.032 |
| 55125 | Wisconsin | Vilas County | 0.256 | 0.192 | 0.065 | 0.032 |
| 31133 | Nebraska | Pawnee County | 0.256 | 0.191 | 0.065 | 0.032 |
| 20065 | Kansas | Graham County | 0.256 | 0.191 | 0.065 | 0.032 |
| 26089 | Michigan | Leelanau County | 0.255 | 0.191 | 0.065 | 0.032 |
| 36041 | New York | Hamilton County | 0.255 | 0.190 | 0.064 | 0.032 |
| 4025 | Arizona | Yavapai County | 0.254 | 0.190 | 0.064 | 0.032 |
| 38029 | North Dakota | Emmons County | 0.254 | 0.190 | 0.064 | 0.032 |
| 20049 | Kansas | Elk County | 0.254 | 0.190 | 0.064 | 0.031 |
| 38001 | North Dakota | Adams County | 0.254 | 0.190 | 0.064 | 0.031 |
| 31165 | Nebraska | Sioux County | 0.253 | 0.189 | 0.064 | 0.031 |
| 41023 | Oregon | Grant County | 0.253 | 0.189 | 0.064 | 0.031 |
| 48263 | Texas | Kent County | 0.253 | 0.189 | 0.064 | 0.031 |
| 31085 | Nebraska | Hayes County | 0.253 | 0.189 | 0.064 | 0.031 |
| 20157 | Kansas | Republic County | 0.252 | 0.189 | 0.064 | 0.031 |
| 38103 | North Dakota | Wells County | 0.252 | 0.188 | 0.064 | 0.031 |
| 48403 | Texas | Sabine County | 0.252 | 0.188 | 0.064 | 0.031 |
| 46107 | South Dakota | Potter County | 0.252 | 0.188 | 0.064 | 0.031 |
| 29015 | Missouri | Benton County | 0.252 | 0.188 | 0.064 | 0.031 |
| 48171 | Texas | Gillespie County | 0.252 | 0.188 | 0.064 | 0.031 |
| 20183 | Kansas | Smith County | 0.251 | 0.188 | 0.064 | 0.031 |
| 30103 | Montana | Treasure County | 0.251 | 0.188 | 0.063 | 0.031 |
| 38037 | North Dakota | Grant County | 0.251 | 0.188 | 0.063 | 0.031 |
| 27073 | Minnesota | Lac qui Parle County | 0.250 | 0.187 | 0.063 | 0.031 |
| 24041 | Maryland | Talbot County | 0.250 | 0.187 | 0.063 | 0.031 |
| 12035 | Florida | Flagler County | 0.250 | 0.187 | 0.063 | 0.031 |
| 32029 | Nevada | Storey County | 0.249 | 0.186 | 0.063 | 0.031 |
| 4015 | Arizona | Mohave County | 0.249 | 0.186 | 0.063 | 0.031 |
| 29209 | Missouri | Stone County | 0.249 | 0.186 | 0.063 | 0.031 |
| 38045 | North Dakota | LaMoure County | 0.248 | 0.186 | 0.063 | 0.031 |
| 31069 | Nebraska | Garden County | 0.248 | 0.186 | 0.063 | 0.031 |
| 26069 | Michigan | Iosco County | 0.248 | 0.186 | 0.063 | 0.031 |
| 47035 | Tennessee | Cumberland County | 0.248 | 0.186 | 0.063 | 0.031 |
| 42113 | Pennsylvania | Sullivan County | 0.248 | 0.185 | 0.063 | 0.031 |
| 16059 | Idaho | Lemhi County | 0.248 | 0.185 | 0.063 | 0.031 |
| 30039 | Montana | Granite County | 0.248 | 0.185 | 0.063 | 0.031 |
| 30089 | Montana | Sanders County | 0.247 | 0.185 | 0.063 | 0.031 |
| 37043 | North Carolina | Clay County | 0.247 | 0.185 | 0.063 | 0.031 |
| 6091 | California | Sierra County | 0.247 | 0.185 | 0.062 | 0.031 |
| 48267 | Texas | Kimble County | 0.247 | 0.185 | 0.062 | 0.031 |
| 48385 | Texas | Real County | 0.246 | 0.184 | 0.062 | 0.031 |
| 41021 | Oregon | Gilliam County | 0.246 | 0.184 | 0.062 | 0.030 |
| 46069 | South Dakota | Hyde County | 0.246 | 0.184 | 0.062 | 0.030 |