The CDC provides data on vaccine hesitancy at the state level using the U.S. Census Bureau’s Household Pulse Survey (HPS). Understaninding trends vaccine hesitancy is a key step in understanding limitations to vaccine uptake adross the nation. Using this dataset, we will describe trends in vaccine hesitancy across the United States and identify factors that are associated with vaccine hesitancy.

Factors associated with vaccine hesitancy

We hypothesized that social vulnerability would be a predictor of vaccine hesitancy. Social vulnerability index categories include “Very Low Vulnerability”, “Low Vulnerability”, “Moderate Vulnerability”, “High Vulnerability”, and “Very High Vulnerability.” Below is a plot of vaccine hesitancy percent vs. social vulnerability index category. Panel A shows “hesitancy” and panel B shows “strong hesitancy.” Both plots show a trend towards increasing vaccine hesitancy with increasing social vulnerability.

hesitant_plot = data_all %>% 
  ggplot(aes(x = svi_category, y = estimated_hesitant, fill = svi_category)) +
  geom_boxplot() +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)) +
  labs(
    title = "Hesitant",
    x = "SVI Category",
    y = "Percent hesitant") +
  theme(legend.position = "none")

strongly_hesitant_plot = data_all %>% 
  ggplot(aes(x = svi_category, y = estimated_strongly_hesitant, fill = svi_category)) +
  geom_boxplot() +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)) +
  labs(
    title = "Strongly Hesitant",
    x = "SVI Category",
    y = "Percent strongly hesitant") +
  theme(legend.position = "none")

hesitancy_plots = hesitant_plot + strongly_hesitant_plot

hesitancy_plots + plot_annotation(
  title = "Relationship between vaccine hesitancy and social vulnerability index (SVI)",
  tag_levels = 'A'
)

Lastly, we performed a linear regression analysis to assess whether there was a statistically significant relationship between social vulnerability index and vaccine hesitancy. We hypothesized that race would be a confounder and therefore we adjusted for percent non-Hispanic white.

fit = lm(estimated_hesitant ~ social_vulnerability_index_svi + percent_non_hispanic_white, data = data_all)

broom::tidy(fit) %>% 
  mutate("p-value" =
           case_when(p.value < 0.001 ~ "<0.001")) %>% 
  select(term, estimate, "p-value") %>%
  knitr::kable(
    caption = "Percent hesitant vs. social vulnerability index"
  )
Percent hesitant vs. social vulnerability index
term estimate p-value
(Intercept) 0.0474161 <0.001
social_vulnerability_index_svi 0.0728126 <0.001
percent_non_hispanic_white 0.0639839 <0.001
fit2 = lm(estimated_strongly_hesitant ~ social_vulnerability_index_svi + percent_non_hispanic_white, data = data_all)

broom::tidy(fit2) %>% 
    mutate("p-value" =
           case_when(p.value < 0.001 ~ "<0.001")) %>% 
  select(term, estimate, "p-value") %>%
  knitr::kable(
    caption = "Percent strongly hesitant vs. social vulnerability index"
  )
Percent strongly hesitant vs. social vulnerability index
term estimate p-value
(Intercept) 0.0286596 <0.001
social_vulnerability_index_svi 0.0521787 <0.001
percent_non_hispanic_white 0.0418530 <0.001

The estimates for social vulnerability index are positive and statistically significant for both the “hesitant” and “strongly hesitant” outcomes. This suggests that there is a small, positive, statistically significant relationship between vaccine hesitancy and social vulnerability index.