Examine Percent Missing, Hospitals

For each county, we tally the total number of adult general medical-surgical hospitals that responded to the survey and those that did not respond to the survey. Here we see the county-level percent of hospitals with missing information due to survey non-response.

Extremes (Total N = 3184:
+ The number of counties with 0% hospital survey response = 265
+ The number of counties with 100% hospital survey response = 1925

ggplot(data = full2017_2019, 
       aes(x = percent.missing))+
  geom_histogram() +
  theme_bw()

summary(full2017_2019$percent.missing)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##     0.0     0.0     0.0    15.2     0.0   100.0     712

Histogram reveals lots of 0s and 100s so lets filter these out, graph and summarize

ggplot(data = subset(full2017_2019, 
                     percent.missing != 0 & 
                       percent.missing != 100),
       aes(x = percent.missing))+
  geom_histogram() +
  theme_bw()

with(subset(full2017_2019, 
            percent.missing != 0 &
              percent.missing != 100), summary(percent.missing))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    6.00   25.00   50.00   39.23   50.00   80.00

Examine Percent Missing, General Hospital Beds

The AHA still keeps a census on basic information for all hospitals, even ones that do not respond to the annual survey. While they do not keep a tally on ICU beds, they do keep tallies on general hospital beds. In this way, we can tally up all the beds for each county accounted for by responding hospitals which may be a more robust measure of how ‘complete’ the county-level CCR data is.

Extremes (Total N = 3184:
+ The number of counties with 100% hospital beds accounted for by respondent hospitals = 1926
+ The number of counties with 0% hospital beds accounted for by respondent hospitals = 265

ggplot(data = full2017_2019, 
       aes(x = percent.hospital.beds.accounted))+
  geom_histogram() +
  theme_bw()

summary(full2017_2019$percent.hospital.beds.accounted)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00  100.00  100.00   85.73  100.00  100.00     712

N of hospitals with 0s and 100s nearly the same as above, which I guess makes sense if all hospitals not responding…

ggplot(data = subset(full2017_2019, 
                     percent.hospital.beds.accounted != 0 & 
                       percent.hospital.beds.accounted != 100),
       aes(x = percent.hospital.beds.accounted))+
  geom_histogram() +
  theme_bw()

with(subset(full2017_2019, 
            percent.hospital.beds.accounted != 0 & 
              percent.hospital.beds.accounted != 100), summary(percent.hospital.beds.accounted))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   13.00   52.00   73.00   68.76   87.00   99.00

Now Compare both side by side

ggplot(data = full2017_2019, 
       aes(x = percent.hospital.beds.accounted,
           y = percent.missing))+
  geom_point() +
  geom_abline(slope = -1, intercept = 100) +
  theme_bw()

My interpretation here overall is that percent.hospital.beds.accounted results in lower magnitude of missingness so I’ll proceed with this variable.

Examine County Hospital Bed Missingness by County Variables

Other AHA variables

ggplot(data = full2017_2019, 
       aes(x = percent.hospital.beds.accounted,
           y = total.hospitals))+
  geom_point() +
  
  theme_bw()

ggplot(data = full2017_2019, 
       aes(x = percent.hospital.beds.accounted,
           y = county.hospital.beds.total))+
  geom_point() +
  theme_bw()

ggplot(data = full2017_2019, 
       aes(x = percent.hospital.beds.accounted,
           y = county.adult.icu.beds))+
  geom_point() +
  theme_bw()

ggplot(data = subset(full2017_2019, county.hospital.beds.total<7500),
       aes(x = percent.hospital.beds.accounted,
           y = adult_icubeds_per1k))+
  geom_point() +
  
  theme_bw()

ggplot(data = full2017_2019, 
       aes(x = percent.hospital.beds.accounted,
           y = county.adult.fte))+
    
  geom_point() +
  theme_bw()

ACS variables

ggplot(data = full2017_2019, 
       aes(x = percent.hospital.beds.accounted,
           y = total.thousands))+
  geom_point() +
    
  theme_bw()

ggplot(data = full2017_2019, 
       aes(x = percent.hospital.beds.accounted,
           y = perc.minority))+
  geom_point() +
  
  theme_bw()

ggplot(data = full2017_2019, 
       aes(x = percent.hospital.beds.accounted,
           y = median.fam.income))+
  geom_point() +
  
  theme_bw()

ggplot(data = full2017_2019, 
       aes(x = percent.hospital.beds.accounted,
           y = median.fam.income))+
  geom_point() +
  
  theme_bw()

ggplot(data = full2017_2019, 
       aes(x = percent.hospital.beds.accounted,
           y = perc.fam.poverty))+
  geom_point() +
  
  theme_bw()

ggplot(data = full2017_2019, 
       aes(x = percent.hospital.beds.accounted,
           y = income.disparity))+
  geom_point() +
  
  theme_bw()

ggplot(data = full2017_2019, 
       aes(x = percent.hospital.beds.accounted,
           y = perc.noinsurance))+
  geom_point() +
  
  theme_bw()