Introduction, Literature Review and Methodology

Introduction

Introduction

Nursing homes and assisted living facilities are a central part of the aging experience of many Americans. Based on the most recent data available, a 2019 report from the CDC, in 2016 there were 15,600 nursing homes and 28,900 assisted living facilities in the United States, serving 1,347,600 nursing home residents and 811,500 residents of other residential care communities. (US Center for Health and Human Services 2019) The so-called “silver tsunami’’, the baby-boomer generation heading into its older years, will likely cause the need for such facilities to rise. (Zeff Geber 2020) Questions about how to best support aging citizens touch the lives of older adults as well as their children, and making the best decision of where to spend the last years of one’s life can be a challenging one. While there are many nursing homes and related facilities around the country, they are not all of equal quality.

The state of Illinois has roughly 1,200 long-term care facilities with more than 100,000 residents, all regulated by the Illinois Department of Health in conjunction with the US Centers for Medicare and Medicaid Services, or CMS. (Illinois Department of Public Health n.d.) Our research endeavored to consider the relationship between the quality of skilled nursing facilities in Chicago, as measured by the frequency of inspections and the number of citations for health and violation, and the racial and socioeconomic characteristics of the surrounding areas. We hypothesize that the less white an area is, the more inspections and citations there will be in these facilities, and that as an area’s socioeconomic status decreases, there will be a greater number of inspections and citations per facility in that area.

We are focusing our study on the external community, rather than on the racial and socioeconomic composition of the residents within the facility. There is a fair amount of data already available exploring issues of quality as related to resident demographics. Increasing numbers of non-white Americans are using nursing homes, but nursing homes remain a fairly segregated sector of the economy, with disparities in the quality of care they provide. (Smith et al. 2008) Research published in 2011, analyzing SNF closure data from 1999 to 2008 found that areas with higher rates of poverty and greater concentrations of racial and ethnic minorities had a disproportionately high rate of nursing facility closures, often due to the withdrawal of CMS certification. (Feng 2011) A 2015 study found that SNFs with larger minority populations were more likely to be privatized, larger, and have inadequate nursing staff. (Li et al. 2015) Researchers in 2018 analyzed Medicare claims for over one million stays in nursing homes, covering more than fourteen thousand facilities around the country and found that lower income patients, as well as racial and ethnic minorities, were more likely to be discharged to low-quality 1-star nursing homes. Those SNFs were more likely to be in the south, for-profit, and have over seventy beds (Zuckerman et al. 2018). An analysis of Quality of Life (QoL) data from Minnesota, published in 2019, found that minority residents in high-minority homes had the lowest QoL scores, while white residents in low-minority homes had the highest scores, and scores that had not changed since previous data was gathered. (Shippee et al. 2019) Given the amount of data already available on facility composition and quality, we chose to focus our research on the external community to offer a distinct, new perspective on the question of quality control and resident safety.

Nursing Homes

Nursing Homes

Nursing homes are residential medical institutions that provide 24-hour care for patients. (National Institute of Aging 2017). Nursing homes are rated by the CMS on a 5-star scale as part of the certification process required by Medicaid and Medicare (Centers for Medicaid and Medicare Services 2019). These facilities can pursue additional accreditation through the non-profit Joint Commission, which a 2016 study found to be positively correlated with higher quality ratings on the CMS 5-star scale (Williams et al. 2017). The responsibility for ensuring quality care is shared between the state and federal governments. According to the Illinois Department of Public Health, there are approximately 1,300 licensure inspections annually, as well as around 6,000 inspections in response to specific complaints. Facilities are inspected roughly once a year. Licensure inspections are typically a multi-day, on-site process including evaluation of medical records, observations, and patient interviews. Inspections prompted by a complaint are generally shorter and more focused on the specific issue, although they may lead to a more thorough regular inspection. (Illinois Department of Public Health 2022) Five-star ratings are made relative to other facilities within the state, in order to control for between-state variation. The top ten percent of facilities- those with the lowest health inspection deficiency ratings- are classed as five stars, the middle seventy percent are evenly divided between four, three, and two stars, and the lowest twenty percent are given one star. (Centers for Medicare & Medicaid Services 2022)

The quality of care provided at these facilities has a direct impact on patient outcomes. A 2019 study found patients discharged from acute care facilities to higher rated SNFs had lower mortality rates and fewer hospital readmissions than those in low-quality SNFs, particularly as compared to patients discharged to 1-star facilities (Cornell et al. 2019). An older study looking at data from the mid-2000s assessed rates of citations for resident-related safety concerns. Researchers found that there was a high correlation between high levels of quality-of-care citations and resident safety violations. They found that 16% of the facilities analyzed between 2000 and 2007 had at least one of the most severe possible types of citations, those that could lead to death or serious injury. (Castle et al. 2011)

Diversity and Segregation in Chicago

Diversity and Segregation in Chicago

The city of Chicago has been the focus of numerous studies analyzing the history of racial segregation and changes in demographic composition. Like most US cities, the long-standing impact of federal policies and practices like redlining and restrictive covenants, combined with discrimination by private citizens and businesses, restricted housing options for black Chicagoans. At the turn of the 20th century, African Americans seeking refuge from the Jim Crow South made their way to cities like Chicago. Upon arrival, their housing options were limited to the “Black Belt,” a piece of land adjacent to Lake Michigan around State Street between Roosevelt Road and 79th St. (Serrato, Runes, and Sier 2022) However, the area was too small to accommodate the influx of migrants. (Insalco 2018). As the black population grew, white neighborhood associations established and enforced deed restrictions prohibiting the sale of the property to African Americans outside of established black neighborhoods (Rothstein 2017). Beginning in 1934, the newly created Federal Housing Administration created maps to guide decisions about insuring mortgages in the city, specifically giving the lowest rating to neighborhoods with black residents and explicitly instructing agents to discriminate against black potential homeowners. The result was further entrenching segregation throughout the subsequent few decades. (Insalco 2018) Indeed, when the Dan Ryan Expressway was constructed, it was intentionally designed to divide black and white neighborhoods. (Rothstein 2017)

Latino residents of Chicago date back at least as far as the mid-1880s. Immigration to Chicago increased in the 1910s, after the Mexican revolution, as workers sought employment opportunities in the steel, meatpacking, and rail industries. By the 1920s, there were several majority-Latino neighborhoods, including South Chicago, the Near West Side, and Back of the Yards. (Acosta-Cordova 2017) Migration into Chicago continued, and by the 1950’s a growing number of Cuban and Puerto Rican immigrants made their way into the city. Similar to the policies impacting African American residents, the Federal Housing Acts of 1949 and 1954 led to the displacement of several Latino communities, especially the Near West Side and Lincoln Park. This led to the establishment of several majority-Latino areas, and as of 2010 data, predominantly Latino neighborhoods could be found around the Chicago suburbs as well as in the Southwest, Northwest, and Southeast regions of the city. (Acosta-Cordova 2017) The Latino population of the city continues to climb: as of 2016, 12 Community Areas in Chicago had a larger proportion of Latinos than any other population group, including five that were at least 80% Latino. That same dataset and study found that the Latino population of Chicago is a few tenths of a point higher than the African American population, and just three points below the percentage of the population that is non-Hispanic white. 2016 research found that Latino Chicagoans’ median household income was $33k per year below white Chicagoan incomes, and their jobs are more likely to be in low-paying service occupations. Significantly for this study, the uninsured rates in the predominantly-Latino Areas were higher than in other Chicago Community Areas. (Acosta-Cordova 2017)

These trends continue to persist, despite changes in legislation at every level dating back to the 1960s. An analysis looking at racial integration in census tracts in Chicago between 1980 and 2000 found stable racial integration in only 15 out of 1,817 census tracts, and that black census tracts remained more homogenous than white and Latino tracts. (Sandoval 2011) A report published in 2019 reports that out of 77 total Community Areas, 26 were majority black Community Areas in 2013-2017 (Great Cities Institute 2019). Intersecting with racial segregation, Chicago remains one of the most economically segregated cities in the country, with a growing number of concentrated low-income Community Areas. A recent exodus of black Chicagoans with the financial resources to move has led to Community Areas that were previously middle class losing community wealth and sliding into lower economic brackets. (Novara and Khare 2017)

This segregation by racial and economic lines has well-documented impacts on accessing health services and care. A 2012 study of diabetic patients found that Black and Hispanic patients living in segregated areas found that although living in a segregated community was associated with higher levels of receiving recommended services, accessing specialists was more problematic. (Chan et al. 2012) Similarly, research published in 2019 on segregation and healthcare disparities found that living in a disproportionately non-white or segregated community was associated with greater accessibility of care, but slower access to those services. (Fenton et al. 2018) Research on pharmacy access in Chicago from 2014 found that the number of pharmacies located in Black neighborhoods was consistently lower than the number in white neighborhoods and that despite a 20% increase in the number of pharmacies overall between 2000 and 2010, there was no increase in the number of pharmacies specifically in non-white areas. Importantly, the study found that low-income white neighborhoods were less likely than low-income Black neighborhoods to be pharmacy deserts, indicating that race is a more significant factor than socioeconomic status in accessing pharmacy services. (Qato et al. 2014) A 2020 study regarding unmet social needs and impacts on health found that individuals with multiple unmet social needs- which included being unable to pay rent or make mortgage payments, inadequate access to food, moving multiple times in a year, and living in an unsafe neighborhood- were associated with lower rates of annual check-ups, flu shots, and having a primary care physician. (Cole and Nguyen 2020) In other words, the racial and socioeconomic make-up of a neighborhood has important impact on access to medical care and overall health.

Methodology

Data and Methodology

For the purpose of this project, we examined nursing homes in the City of Chicago. Information on the location of each nursing home and the number of licensed beds were taken from data provided by the Illinois Department of Public Health. For the purposes of analysis and policy, Chicago is divided into 77 Community Areas. The city of Chicago has also been divided into three planning areas, 6-A, 6-B, and 6-C, by the Illinois Department of Public Health’s Illinois Health Facilities and Services Review Board, part of a larger state-wide division of ten total service areas. (Illinois Health Facilities and Services Review Board 2021) The Review Board uses data from these planning areas to project long term needs for health facilities in Illinois communities.

Facility and inspection data was divided into the 77 Community Areas and three IDPH planning areas. Using this breakdown allowed us to draw comparisons between each area along the same lines as is used by health planners in the State of Illinois. We subsequently ran regressions and generated charts that incorporated both the three areas and the specific Community Areas that compose each planning area. This allowed us to generate a more global view of trends between inspections, citations, community areas, planning areas, and racial or socioeconomic factors.

Inspection and citation data came from the Center for Medicaid and Medicare Services (CMS). While inspections and citations are managed by the Illinois Department of Public Health, the state agency only provides the data on their findings in the form of long paper (PDF) reports. The state does, however, forward reports for facilities that participate in the Medicare program to CMS, which provides the data quarterly in columnar form. As such, data on actual inspections and citations are limited to the facilities that participate in the Medicare program, while data on the presence of nursing homes in a community reflect all licensed facilities in the City of Chicago. For the purposes of this analysis, we included all inspections, complaints and citations that were reported to CMS by the IDPH between January 1, 2018 and December 31, 2021. This period of time included roughly two years prior to the onset of the COVID-19 pandemic and roughly two years since the onset of the pandemic. Since the onset of the pandemic, there has been increased scrutiny of nursing facilities, in large part due to highly publicized outbreaks connected to nursing home residents and staff.

Citations of nursing homes are generally divided into three categories: fire safety, health standards, and infection control, all of which are combined and considered in our analysis with no discernment between those. With regards to severity level, the citations range from one to four, where one is the lowest level and four is the most severe. Level one, which CMS lists as A, B, and C violations, are typically not reported by IDPH to Medicare. (The letters refer to the scope of the violations, described below.) Level two includes D, E, and F violations, which describe “no actual harm with potential for more than minimal harm that is not immediate jeopardy.” (Centers for Medicare and Medicaid Services 2022) Severity coded as level three include G, H, and I violations that include actual harm but do not immediately jeopardize resident safety, while a severity rating of four includes J, K, and L violations that are both harmful and place residents’ health and safety in immediate jeopardy. We also consider questions of the scope of the violation, which range from level one to three. Level one involves an isolated violation that impacts a minimal number of residents or employees (in the CMS rating, these are A D, G, and J), two describes a pattern of violations (in the CMS system, there are labeled B, E, H, and K), and three indicates a widespread and systemic failure that could harm a large portion of residents or employees (CMS labels these as C, F, I, and L). Finally, for the purposes of our analysis, facilities coded as “substandard” are those with a violation coded as F, H, I, J, K, or L, all of which describe a deficiency in the quality of care provided. (Centers for Medicare and Medicaid Services 2022)

Demographic data for each Chicago Community Area was taken from the Chicago Health Atlas (https://chicagohealthatlas.org/). For the purposes of understanding the socioeconomic status of Community Areas, we used several metrics including median income, percentage of the population living below the poverty line, the unemployment rate for the Area, and the “Hardship Index.” The Hardship Index is a commonly used tool to gain a more nuanced understanding of the experience of poverty in a community, as well as to compare communities to each other. The index is a composite score that includes unemployment, age dependency, education, per capita income, crowded housing, and poverty. The score ranges from 1 to 100, where higher values indicate greater hardship. Our hardship index data come from the American Community Survey.

In order to simplify our analysis, we chose not to disentangle the racial composition of neighborhoods by the various Census race/ethnicity categories. Instead, we chose to identify the proportions of the community that are not delineated as white as “BIPOC” (Black, Indigenous, and People of Color). A more detailed study incorporating specific racial and ethnic categories as variables is suggested for future research.

For the purpose of this research, we did not analyze demographic data related to the nursing home census, that is, the residents or employees within the facility. We did not take into consideration case mix, payor mix, or patient racial and ethnic demographics. Our interest in this inquiry was in the nature of the presence and quality of these institutions based on the demographic background of the community areas in which they are situated.

To assess the relationship between an area’s racial and socioeconomic status and the frequency of nursing home violations, we used the software R to run several analyses. We used an OLS regression to measure the correlation between several independent variables, including percentage of non-white residents, the community area’s rating on the Hardship Index, the community’s situation within a Planning area, and the median income of teh community area, on the dependent variable, the number of inspections or citations for violations reported for nursing homes in the area. The unit of analysis for all statistical and analytical tests is Chicago’s 77 Community Areas. The majority of regressions were simple regressions, but when an ANOVA indicated that additional dependent variables warranted a multivariate regression, multivariate regression was performed instead. In instances where a quadratic regression yielded a higher R-squared, a quadratic regression was performed. We also explored whether a lin-log model was a better fit, but in no cases did we end up using such a model. In future work, a log-lin model may prove more useful.


Nursing Homes by Planning and Community Areas

Homes

data %>%
  mutate(nh_facilities = ifelse(is.na(nh_facilities), 0, nh_facilities)) %>%
  group_by(planning_area) %>%
  summarize(pop = sum(population),
            homes = sum(nh_facilities, na.rm = TRUE),
            nh_total_beds,
            beds = sum(nh_total_beds, na.rm = TRUE),
            community_area,
            areas = n_distinct(community_area), 
            population, nh_facilities,
            medicare = sum(nh_medicare, na.rm = TRUE),
            .groups = "drop") %>%
  ggplot(mapping = aes(x = planning_area, y = nh_facilities)) +
  geom_col(aes(fill = planning_area), show.legend = FALSE) +
  geom_text(aes(x = planning_area, y = 7, 
                label = paste("Pop:", comma(round(pop, 0)))), 
            color = "white", 
            size = 5) +
  geom_text(aes(x = planning_area, y = 4, 
                label = paste(areas,"Community Areas")), 
            color = "white",
            size = 3) +
  geom_text(aes(x = planning_area, y = homes - 5, 
                label = paste(homes, "Total\n", medicare, "Medicare")), 
            color = "white",
            size = 5) +
  labs(title = "Chicago Nursing Homes",
       caption = "Source: Illinois Department of Public Health",
       y = "Nursing Homes") +
  scale_x_discrete(labels = c("Planning Area 6-A", "Planning Area 6-B", "Planning Area 6-C")) +
  cust_theme2 +
  theme(axis.text.x = element_text(face = "bold", size = 14),
        axis.title.x = element_blank())

Beds

data %>%
  mutate(nh_facilities = ifelse(is.na(nh_facilities), 0, nh_facilities),
         nh_total_beds = ifelse(is.na(nh_total_beds), 0, nh_total_beds)) %>%
  group_by(planning_area) %>%
  summarize(pop = sum(population),
            homes = sum(nh_facilities, na.rm = TRUE),
            nh_total_beds,
            beds = sum(nh_total_beds, na.rm = TRUE),
            community_area,
            areas = n_distinct(community_area), population, nh_facilities,
            beds_per_cap = beds / pop,
            .groups = "drop") %>%
  ggplot(mapping = aes(x = planning_area, y = nh_total_beds)) +
  geom_col(aes(fill = planning_area), show.legend = FALSE) +
  geom_text(aes(x = planning_area, y = 1000, 
                label = paste("Pop:", comma(round(pop, 0)))), 
            color = "white", 
            size = 5) +
  geom_text(aes(x = planning_area, y = 500, 
                label = paste(areas,"Community Areas")), 
            color = "white",
            size = 3) +
  geom_text(aes(x = planning_area, y = beds - 500, 
                label = paste(round(beds_per_cap * 1000, 0),"beds per 1000")), 
            color = "white",
            size = 5) +
  labs(title = "Chicago Nursing Home Beds",
       caption = "Source: Illinois Department of Public Health",
       y = "Beds") +
  scale_x_discrete(labels = c("Planning Area 6-A", "Planning Area 6-B", "Planning Area 6-C")) +
  cust_theme2 +
  theme(axis.text.x = element_text(face = "bold", size = 14),
        axis.title.x = element_blank())

Beds Breakdown

data %>%
  mutate(nh_total_beds = ifelse(is.na(nh_total_beds), 0, nh_total_beds),
         nh_facilities = ifelse(is.na(nh_facilities), 0, nh_facilities),
         beds_per_1000 = nh_total_beds / population * 1000,
         community_area = ifelse(nh_total_beds == 0, "Other", community_area),
         planning_labs = ifelse(planning_area == "A", 
                                "Planning Area 6-A", 
                                ifelse(planning_area == "B", 
                                       "Planning Area 6-B",
                                       "Planning Area 6-C")),
         community_area = fct_reorder(community_area, beds_per_1000)
         ) %>%
  group_by(planning_area) %>%
  mutate(population = ifelse(nh_total_beds == 0, 
                             sum(ifelse(nh_total_beds == 0, population, 0)), 
                             population)) %>%
  ungroup() %>%
  # select(nh_total_beds, community_area, planning_area,
  #        population, nh_facilities, beds_per_1000,
  #        planning_labs) %>%
  ggplot(mapping = aes(x = beds_per_1000, y = community_area)) +
  geom_point(mapping = aes(color = planning_area), size = 2, show.legend = FALSE) +
  geom_segment(mapping = aes(x = 0, xend = beds_per_1000, 
                             y = community_area, yend = community_area, 
                             color = planning_area), size = 1, show.legend = FALSE) +
  geom_text(mapping = aes(label = paste(round(beds_per_1000, 2),"~", comma(round(population, 0)))),
            size = 2.25, hjust = 0, nudge_x = 1.5, fontface = "bold") +
  scale_x_continuous(limit = c(0, 63)) +
  facet_wrap(~ planning_labs, ncol = 3) +
  labs(title = "NH Beds per 1,000 people ~ Population",
       subtitle = "City of Chicago",
       caption = "Source: Illinois Department of Public Health",
       color = "Planning Area",
       x = "Beds per 1,000 people ~ Population",
       y = "Community Area") +
  cust_theme3 +
  theme(axis.text.y = element_text(size = 7, face = "bold"),
        axis.text.x = element_text(size = 7, face = "bold"),
        strip.text.x = element_text(size = 11, face = "bold.italic"),
        strip.background = element_rect(fill = "black"),
        panel.grid.major.x = element_blank(),
        panel.grid.minor.x = element_blank(),
        panel.grid.major.y = element_line(#color = "black",
                                          #size = 0.25,
                                          linetype = "dashed"))

CAs with No Beds

data %>%
  mutate(nh_total_beds = ifelse(is.na(nh_total_beds), 0, nh_total_beds),
         nh_facilities = ifelse(is.na(nh_facilities), 0, nh_facilities),
         beds_per_1000 = nh_total_beds / population * 1000, 
         planning_labs = ifelse(planning_area == "A", 
                                "Planning Area 6-A", 
                                ifelse(planning_area == "B", 
                                       "Planning Area 6-B",
                                       "Planning Area 6-C")),
         community_area = fct_reorder(community_area, population)
         ) %>%
  filter(nh_total_beds == 0) %>%  
  # select(community_area, 
  #        planning_area, 
  #        population, 
  #        planning_labs) %>%
  ggplot(mapping = aes(x = population, y = community_area)) +
  geom_point(mapping = aes(color = planning_area), size = 2, show.legend = FALSE) +
  geom_segment(mapping = aes(x = 0, xend = population, 
                             y = community_area, yend = community_area, 
                             color = planning_area), size = 1, show.legend = FALSE) +
  geom_text(mapping = aes(label = comma(round(population, 0))),
            size = 2.25, hjust = 0, nudge_x = 1500, fontface = "bold") +
  scale_x_continuous(limit = c(0, 65000)) +
  facet_wrap(~ planning_labs, ncol = 3) +
  labs(title = "Community Areas with no Nursing Homes",
       subtitle = "City of Chicago",
       caption = "Source: Illinois Department of Public Health",
       color = "Planning Area",
       x = "Population",
       y = "Community Area") +
  cust_theme3 +
  theme(axis.text.x = element_text(size = 7, face = "bold"),
        axis.text.y = element_text(size = 7, face = "bold"),
        strip.text.x = element_text(size = 11, face = "bold.italic"),
        strip.background = element_rect(fill = "black"),
        panel.grid.major.x = element_blank(),
        panel.grid.minor.x = element_blank(),
        panel.grid.major.y = element_line(#color = "black",
                                          #size = 0.25,
                                          linetype = "dashed"))


Standard Inspections per Facility, 2018-2021

Regressions

# Planning Area Impact on Standard Inspection Frequency
  
sipf_regress_pa <- lm(sipf ~ planning_area, data = data)
summary(sipf_regress_pa)

bptest(sipf_regress_pa) # p-value .1 - no evidence of heteroscedasticity

#Median Income Impact on Standard Inspection Frequency
sipf_regress_mi <- lm(sipf ~ median_income_recode, data = data)
summary(sipf_regress_mi)

bptest(sipf_regress_mi) # p > .1 - no evidence of heteroscedasticity

#Hardship Index Impact on Standard Inspection Frequency

sipf_regress_hardship <- lm(sipf ~ hardship_index, data = data)
summary(sipf_regress_hardship)

bptest(sipf_regress_hardship) # p-value > .05 - no evidence of heteroscedasticity

# BIPOC Impact on Standard Inspection Frequency

sipf_regress_bipoc <- lm(sipf ~ pct_bipoc, data = data)
summary(sipf_regress_bipoc)

bptest(sipf_regress_bipoc) # p< .05 - evidence of heteroscedasticity

sipf_bipoc_robust <- coeftest(sipf_regress_bipoc, 
                              vcov = vcovHC(sipf_regress_bipoc, type = "HC3"))

sipf_bipoc_robust_se <- sipf_bipoc_robust[, 2]
sipf_bipoc_robust_p <- sipf_bipoc_robust[, 4]
Statistical models
Statistical models
  Model 1 Model 2 Model 3 Model 4
(Intercept) 30.7007575758 (5.4524717465)*** 42.9543224326 (3.7104420909)*** 24.0924029987 (6.4130745808)*** 14.0652247713 (7.4700359463) .
Planning Area (B) 2.5677609428 (8.1280649804)      
Planning Area (C) 20.9063852814 (7.2861718523)**      
Median Income ($56,323)   -0.0002362470 (0.0001292103) .    
Hardship Index     0.3150954924 (0.1109033716)**  
Percent BIPOC       0.3973603236 (0.1395661700)**
R2 0.2424881970 0.0945877390 0.2014424976 0.2480519504
Adj. R2 0.1936164678 0.0662936059 0.1764875757 0.2245535738
Num. obs. 34 34 34 34
***p < 0.001; **p < 0.01; *p < 0.05; . p < 0.1
(4) Standard Errors adjusted for heteroscedasticity (HC3)

By Planning Area

#Graph Standard Inspections by Community Area

data %>%
  group_by(planning_area) %>%
  summarize(sipf_avg = mean(sipf, na.rm = TRUE),
            cipf_avg = mean(cipf, na.rm = TRUE),
            vpf_avg = mean(vpf, na.rm = TRUE),
            .groups = "drop") %>%
  ggplot(mapping = aes(x = planning_area, y = sipf_avg)) +
  geom_col(aes(fill = planning_area), show.legend = FALSE) +
  geom_text(aes(label = round(sipf_avg), y = 25), 
            color = "white", 
            size = 7) +
  labs(title = "Standard Inspections per Medicare Facility",
       subtitle = "Average per facility for time spanning 2018-2021",
       caption = "Source: CMS Medicare",
       y = "Standard Inspections") +
  scale_x_discrete(labels = c("Planning Area 6-A", "Planning Area 6-B", "Planning Area 6-C")) +
  scale_y_continuous(limits = c(0, 55)) +
  cust_theme2 +
  theme(axis.text.x = element_text(face = "bold", size = 14),
        axis.title.x = element_blank())

Nursing homes in Planning Area A averaged 30.7 standard inspections over the four-year period beginning on January 1, 2018, and ending on December 31, 2021 (p < 0.01). Nursing homes in Planning Area B averaged an additional 2.6 more standard inspections over that period (not statistically significant). Nursing homes in Planning Area C average 20.9 more inspections than Area A (p < 0.01). This model explains 19% of the variation in the dependent variable.

By Median Income

#### Graph Standard Inspections by Median Income of Community Area 5.2b

cit_inc <- data %>%
  filter(!is.na(sipf) & !is.na(median_income)) %>%
  arrange(desc(median_income)) %>%
  slice(1:5, 30:34)

data %>%  
  filter(!is.na(sipf) & !is.na(median_income)) %>%
  ggplot(aes(y = sipf, 
             x = median_income)) +
  geom_point(aes(color = planning_area)) +
  geom_text(data = cit_inc, 
            aes(y = sipf, 
                x = median_income,
                color = planning_area,
                label = community_area),
            nudge_y = 4) +
  geom_smooth(method = 'lm', se = FALSE, formula = y ~ x, color = "black") + 
  labs(title = "Standard Inspections by Median Income",
       subtitle = "Chicago, 2018-2021",
       caption = "Source: CMS Medicare",
       color = "Planning Area",
       x = "Median Income",
       y = "Inspections per Medicare Home") +
  scale_x_continuous(labels=scales::dollar_format(), 
                     limits = c(18000, 150000),
                     
                     breaks = seq(25000, 150000, 25000)) +
  cust_theme3

Nursing homes in community areas where the median income is $56,323 (which is the median of median income levels for Chicago’s 77 community areas) averaged 42.95 inspections over the four year period (p < 0.01). For every $1,000 change in median community area income, the number of inspections can be predicted to have been negatively impacted by .24 inspections (p < .1).This model explains 6% of the variation in the dependent variable.

By Hardship Index

#### Graph Standard Inspections by Hardship Index of Community Area 5.2c

cit_hard <- data %>%
  #select(vpf, hardship_index, planning_area, community_area) %>%
  filter(!is.na(sipf) & !is.na(hardship_index)) %>%
  arrange(desc(hardship_index)) %>%
  slice(1:5, 30:34)

data %>%  
  filter(!is.na(sipf) & !is.na(hardship_index)) %>%
  ggplot(aes(y = sipf, 
             x = hardship_index)) +
  geom_point(aes(color = planning_area)) +
  geom_text_repel(data = cit_hard, 
                  aes(y = sipf, 
                      x = hardship_index,
                      color = planning_area,
                      label = community_area),
                  nudge_y = 4) +
  stat_smooth(method = 'lm', se = FALSE, formula = y ~ x, color = "black") + 
  labs(title = "Standard Inspections by Hardship Index",
       subtitle = "Chicago, 2018-2021",
       caption = "Source: CMS Medicare",
       color = "Planning Area",
       x = "Hardship Index",
       y = "Inspections per Medicare Home") +
  scale_x_continuous(labels = scales::percent_format(scale = 1),
                     limits = c(-5, 105)) +
  cust_theme3

Nursing homes in community areas with a Hardship Index of 0% averaged 24.09 inspections over the four-year period (p < 0.01). For each 10 percent increase in the community area’s hardship index, nursing homes in that community area averaged 3.15 additional inspections (p < 0.01). This model explains 18% of the variation in the dependent variable.

By Percent BIPOC

#### Graph Standard Inspections by Percent BIPOC of Community Area 5.2d

cit_comm <- data %>%
  filter(!is.na(sipf) & !is.na(pct_bipoc)) %>%
  arrange(desc(pct_bipoc)) %>%
  slice(1:5, 30:34)

data %>%  
  filter(!is.na(sipf) & !is.na(pct_bipoc)) %>%
  ggplot(aes(y = sipf, 
                 x = pct_bipoc)) +
  geom_point(aes(color = planning_area)) +
  geom_text_repel(data = cit_comm, 
            aes(y = sipf, 
                x = pct_bipoc,
                color = planning_area,
                label = community_area),
            nudge_y = 4) +
  geom_smooth(method = 'lm', se = FALSE, formula = y ~ x, color = "black") + 
  labs(title = "Standard Inspections by Percent BIPOC",
       subtitle = "Chicago, 2018-2021",
       caption = "Source: CMS Medicare",
       color = "Planning Area",
       x = "Percent BIPOC",
       y = "Inspections per Medicare Home") +
  scale_x_continuous(labels = scales::percent_format(scale = 1), 
                     limits = c(15, 105)) +
  cust_theme3

In Community Areas with 0% People of Color, nursing homes averaged 14.07 inspections over the four-year period (not statistically significant). For each additional 10 percent of the population that are people of color, nursing homes in those communities averaged an additional 3.97 inspections (p < 0.01). This model explains 22% of the variation in the dependent variable.


Complaint Inspections per Facility, 2018-2021

Regressions

# Planning Area impact on frequency of complaint inspections

cipf_regress_pa <- lm(cipf ~ planning_area, data = data)
summary(cipf_regress_pa)

bptest(cipf_regress_pa) # p > .05 - no need to adjust for heteroscedasticity

# Median Income impact on frequency of complaint inspections

cipf_regress_pa_mi_quad <- lm(cipf ~ planning_area + median_income_recode + median_income_sq_recode, data = data)
summary(cipf_regress_pa_mi_quad)

bptest(cipf_regress_pa_mi_quad) # p< .05 - need to adjust for heteroscedasticity

cipf_regress_pa_mi_quad_robust <- coeftest(cipf_regress_pa_mi_quad, 
                                           vcov = vcovHC(cipf_regress_pa_mi_quad, type = "HC3"))
cipf_regress_pa_mi_quad_robust

cipf_regress_pa_mi_quad_robust_se <- cipf_regress_pa_mi_quad_robust[, 2]
cipf_regress_pa_mi_quad_robust_se

cipf_regress_pa_mi_quad_robust_p <- cipf_regress_pa_mi_quad_robust[, 4]
cipf_regress_pa_mi_quad_robust_p

# Hardship Index Impact on frequency of complaint inspections

cipf_regress_hardship <- lm(cipf ~ hardship_index, data = data)
summary(cipf_regress_hardship)

bptest(cipf_regress_hardship) # p > .1 - no adjustment necessary

# Percent BIPOC impact on frequency of complaint inspections

cipf_regress_bipoc <- lm(cipf ~ pct_bipoc, data = data)
summary(cipf_regress_bipoc)

bptest(cipf_regress_bipoc) # p > .05 - no adjustment necessary
Statistical models
Statistical models
  Model 1 Model 2 Model 3 Model 4
(Intercept) 12.5378787879 (4.1222905073)** 3.6451864372 (16.2999248590) 9.3120874711 (5.2635627803) . -3.0709043604 (6.4873222296)
Planning Area (B) 3.1380471380 (6.1451478648) 1.1152638842 (7.3566468829)    
Planning Area (C) 20.6049783550 (5.5086424025)*** 15.4584835079 (4.9372296517)**    
Median Income ($56,323)   -0.0007691534 (0.0009770038)    
Median Income Squared   0.0000000039 (0.0000000059)    
Hardship Index     0.2485798554 (0.0910244925)*  
Percent BIPOC       0.3820338078 (0.0929170636)***
R2 0.3472261332 0.4313319553 0.1890086123 0.3456688573
Adj. R2 0.3051116901 0.3528949837 0.1636651314 0.3252210091
Num. obs. 34 34 34 34
***p < 0.001; **p < 0.01; *p < 0.05; . p < 0.1
(2) Standard Errors adjusted for heteroscedasticity (HC3)

By Planning Area

data %>%
#### Graph Complaints by Community Area 5.3a  
  
  group_by(planning_area) %>%
  summarize(sipf_avg = mean(sipf, na.rm = TRUE),
            cipf_avg = mean(cipf, na.rm = TRUE),
            vpf_avg = mean(vpf, na.rm = TRUE),
            svpf_avg = mean(svpf, na.rm = TRUE),
            .groups = "drop") %>%
  ggplot(mapping = aes(x = planning_area, y = cipf_avg)) +
  geom_col(aes(fill = planning_area), show.legend = FALSE) +
  geom_text(aes(label = round(cipf_avg), y = 10), 
            color = "white", 
            size = 7) +
  labs(title = "Complaint Inspections per Medicare Facility",
       subtitle = "Average per facility for time spanning 2018-2021",
       caption = "Source: CMS Medicare",
       y = "Complaint Inspections") +
  scale_x_discrete(labels = c("Planning Area 6-A", "Planning Area 6-B", "Planning Area 6-C")) +
  scale_y_continuous(limits = c(0, 35)) +
  cust_theme2 +
  theme(axis.text.x = element_text(face = "bold", size = 14),
        axis.title.x = element_blank())

Nursing homes in Planning Area A averaged 12.54 complaint inspections over the four-year period beginning on January 1, 2018, and ending on December 31, 2021. (p < .01) Those in Area B had 3.14 more complaint inspections than Area A. (not significant). Planning Area C nursing homes had 20.60 more complaint inspections than Area A over the same time period. (p < 0.01) This model explains 31% of the variation in the dependent variable.

By Median Income

complaints_comm <- data %>%
  
#### Graph Complaints by Median Income of Community Area 5.3b  
  
  filter(!is.na(cipf) & !is.na(median_income)) %>%
  arrange(desc(median_income)) %>%
  slice(1:5, 30:34)

data %>%  
  filter(!is.na(cipf) & !is.na(median_income)) %>%
  ggplot(aes(y = cipf, 
             x = median_income,
             color = planning_area)) +
  geom_point(aes(color = planning_area)) +
  geom_text_repel(data = complaints_comm, 
            aes(y =cipf, 
                x = median_income,
                color = planning_area,
                label = community_area)) +
  geom_smooth(method = 'lm', se = FALSE, formula = y ~ poly(x, 2)) + 
  labs(title = "Complaint Inspections By Median Income",
       subtitle = "Chicago, 2018-2021",
       caption = "Source: CMS Medicare",
       color = "Planning Area",
       x = "Median Income",
       y = "Complaints per Medicare Home") +
  scale_x_continuous(labels=scales::dollar_format(), 
                     limits = c(25000, 150000),
                     breaks = seq(25000, 150000, 25000)) +
  cust_theme3

Nursing homes in community areas in Planning Area A where the median income is $56,323 (which is the median of median income levels for Chicago’s 77 community areas) averaged 3.65 complaint inspections over the four-year period (not significant. For every additional $1,000 in the area’s median income, there was a decline of 0.769 in the number of complaint inspections. (not significant), with a minuscule leveling out of the decline at both ends of the income distribution (not significant). Nursing homes in community areas in Planning Area B where the median income is $56,323 averaged 4.77 complaint inspections over the four-year period (not significant). Nursing homes in community areas in Planning Area C where the median income is $56,323 averaged 19.20 complaint inspections. The model explains 35% of the variation in the dependent variable.

By Hardship Index

#### Graph Complaints by Hardship Index of Community Area 5.3c

complaints_comm <- data %>%
  filter(!is.na(cipf) & !is.na(hardship_index)) %>%
  arrange(desc(hardship_index)) %>%
  slice(1:5, 30:34)

data %>%  
  filter(!is.na(cipf) & !is.na(hardship_index)) %>%
  ggplot(aes(y = cipf, 
             x = hardship_index)) +
  geom_point(aes(color = planning_area)) +
  geom_text_repel(data = complaints_comm, 
            aes(y =cipf, 
                x = hardship_index,
                color = planning_area,
                label = community_area)) +
  geom_smooth(method = 'lm', se = FALSE, formula = y ~ x, color = "black") + 
  labs(title = "Complaint Inspections By Hardship Index",
       subtitle = "Chicago, 2018-2021",
       caption = "Source: CMS Medicare",
       color = "Planning Area",
       x = "Hardship Index",
       y = "Complaints per Medicare Home") +
  scale_x_continuous(labels = scales::percent_format(scale = 1),
                     limits = c(0, 100)) +
  cust_theme3

For areas with the Hardship Index rating of 0%, nursing homes averaged 9.31 complaint inspections over that four year period, (p < 0.1) and for every 10 percent increase in the Hardship Index in a community, there were 2.49 more complaint inspections over that same time period. (p < 0.05) This model explains 16% of the variation in the dependent variable.

By Percent BIPOC

#### Graph Complaints by Percent BIPOC 5.3d

complaints_comm <- data %>%
  filter(!is.na(cipf) & !is.na(pct_bipoc)) %>%
  arrange(desc(pct_bipoc)) %>%
  slice(1:5, 30:34)

data %>%  
  filter(!is.na(cipf) & !is.na(pct_bipoc)) %>%
  ggplot(aes(y = cipf, 
             x = pct_bipoc)) +
  geom_point(aes(color = planning_area)) +
  geom_text_repel(data = complaints_comm, 
            aes(y =cipf, 
                x = pct_bipoc,
                color = planning_area,
                label = community_area)) +
  geom_smooth(method = 'lm', se = FALSE, formula = y ~ x, color = "black") + 
  labs(title = "Complaint Inspections By Percent BIPOC",
       subtitle = "Chicago, 2018-2021",
       caption = "Source: CMS Medicare",
       color = "Planning Area",
       x = "Percent BIPOC",
       y = "Complaints per Medicare Home") +
  scale_x_continuous(labels = scales::percent_format(scale = 1),
                     limits = c(0, 100)) +
  cust_theme3

Nursing homes in community areas with 0% BIPOC population averaged -3.07 (not significant). For every 10% increase in the percentage of the population of the community area that is BIPOC, nursing homes experienced an average of 3.82 more complaint inspections in that time period (p < 0.01) . This model explains 33% of the variation in the dependent variable.


Citations for Violations per Facility, 2018-2021

Regressions

#Planning Area Impact on Violations per Facility

vpf_regress_pa <- lm(vpf ~ planning_area, data = data)
summary(vpf_regress_pa)

bptest(vpf_regress_pa)  # p<.05 - Need HC Robust SE

vpf_regress_pa_robust <- coeftest(vpf_regress_pa, 
                                  vcov = vcovHC(vpf_regress_pa, type = "HC3"))
vpf_regress_pa_robust

vpf_regress_pa_robust_se <- vpf_regress_pa_robust[, 2]
vpf_regress_pa_robust_se

vpf_regress_pa_robust_p <- vpf_regress_pa_robust[, 4]
vpf_regress_pa_robust_p

# Median Income impact on Violations per Facility

vpf_regress_pa_mi_interaction <- lm(vpf ~ planning_area + median_income_recode + planning_area * median_income_recode, data = data)
summary(vpf_regress_pa_mi_interaction)

bptest(vpf_regress_pa_mi_interaction) # p < .05 - need robust  SEs

vpf_regress_pa_mi_interaction_robust <- coeftest(vpf_regress_pa_mi_interaction, 
                                           vcov = vcovHC(vpf_regress_pa_mi_interaction, type = "HC3"))
vpf_regress_pa_mi_interaction_robust

vpf_regress_pa_mi_interaction_robust_se <- vpf_regress_pa_mi_interaction_robust[, 2]
vpf_regress_pa_mi_interaction_robust_se

vpf_regress_pa_mi_interaction_robust_p <- vpf_regress_pa_mi_interaction_robust[, 4]
vpf_regress_pa_mi_interaction_robust_p

# Hardship Index impact on Violations per Facility

vpf_regress_hardship <- lm(vpf ~ hardship_index, data = data)
summary(vpf_regress_hardship)

bptest(vpf_regress_hardship) #p < .05 Need HC Robust SE

vpf_regress_hardship_robust <- coeftest(vpf_regress_hardship, 
                                        vcov = vcovHC(vpf_regress_hardship, type = "HC3"))
vpf_regress_hardship_robust

vpf_regress_hardship_robust_se <- vpf_regress_hardship_robust[, 2]
vpf_regress_hardship_robust_se

vpf_regress_hardship_robust_p <- vpf_regress_hardship_robust[, 4]
vpf_regress_hardship_robust_p

# Percent BIPOC impact on Violations per Facility

vpf_regress_bipoc <- lm(vpf ~ pct_bipoc, data = data)
summary(vpf_regress_bipoc)

bptest(vpf_regress_bipoc) # p< .05 Need HC Robust SE

vpf_regress_bipoc_robust <- coeftest(vpf_regress_bipoc, 
                                     vcov = vcovHC(vpf_regress_bipoc, type = "HC3"))
vpf_regress_bipoc_robust

vpf_regress_bipoc_robust_se <- vpf_regress_bipoc_robust[, 2]
vpf_regress_bipoc_robust_se

vpf_regress_bipoc_robust_p <- vpf_regress_bipoc_robust[, 4]
vpf_regress_bipoc_robust_p
Statistical models
Statistical models
  Model 1 Model 2 Model 3 Model 4
(Intercept) 47.2689393939 (4.6383567030)*** 41.0165831734 (5.5682773425)*** 36.4003723846 (6.7704891601)*** 14.4422886444 (10.7317783668)
Planning Area (B) 4.9255050505 (8.0337576903) 18.4695609857 (11.1666342506)    
Planning Area (C) 41.9691558442 (11.0502464834)*** 48.5670626857 (11.8125262285)***    
Median Income ($56,323)   0.0004115977 (0.0004001787)    
Planning Area B:Median Income   -0.0006740758 (0.0004364977)    
Planning Area C:Median Income   -0.0009130186 (0.0006003134)    
Hardship Index     0.5838214922 (0.1859442427)**  
Percent BIPOC       0.7880435424 (0.2042125347)***
R2 0.3748365801 0.4497463153 0.2641311246 0.3726205312
Adj. R2 0.3345034563 0.3514867287 0.2411352223 0.3530149227
Num. obs. 34 34 34 34
***p < 0.001; **p < 0.01; *p < 0.05; . p < 0.1
(1, 2, 3, 4) Standard Errors adjusted for heteroscedasticity (HP3)

By Planning Area

#### Graph Violations by Community Area 5.4a

data %>%
  group_by(planning_area) %>%
  summarize(sipf_avg = mean(sipf, na.rm = TRUE),
            cipf_avg = mean(cipf, na.rm = TRUE),
            vpf_avg = mean(vpf, na.rm = TRUE),
            svpf_avg = mean(svpf, na.rm = TRUE),
            .groups = "drop") %>%
  ggplot(mapping = aes(x = planning_area, y = vpf_avg)) +
  geom_col(aes(fill = planning_area), show.legend = FALSE) +
  geom_text(aes(label = round(vpf_avg), y = 40), 
            color = "white", 
            size = 7) +
  labs(title = "Citations Issued per Medicare Facility",
       subtitle = "Average per facility for time spanning 2018-2021",
       caption = "Source: CMS Medicare",
       y = "Citations Issued") +
  scale_x_discrete(labels = c("Planning Area 6-A", "Planning Area 6-B", "Planning Area 6-C")) +
  scale_y_continuous(limits = c(0, 100)) +
  cust_theme2 +
  theme(axis.text.x = element_text(face = "bold", size = 14),
        axis.title.x = element_blank())

Nursing Homes in community areas in Planning Area A averaged 47.27 citations for violation of health and safety codes over the 4 year period (p < 0.01). Over the same period, homes in Area B averaged an additional 4.93 citations (not statistically significant). Homes in Area C averaged an additional 41.97 (p < 0.01). This model explains 33% of the variation in the dependent variable.

By Median Income

#### Graph Violations by Median Income of Community Area 5.4b

cit_inc <- data %>%
  filter(!is.na(vpf) & !is.na(median_income)) %>%
  arrange(desc(median_income)) %>%
  slice(1:5, 30:34)

data %>%  
  filter(!is.na(vpf) & !is.na(median_income)) %>%
  ggplot(aes(y = vpf, 
             x = median_income,
             color = planning_area)) +
  geom_point() +
  geom_text(data = cit_inc, 
            aes(y = vpf, 
                x = median_income,
                color = planning_area,
                label = community_area),
            nudge_y = 4) +
  geom_smooth(method = 'lm', se = FALSE, formula = y ~ x) + 
  labs(title = "NH Citations by Median Income",
       subtitle = "Chicago, 2018-2021",
       caption = "Source: CMS Medicare",
       color = "Planning Area",
       x = "Median Income",
       y = "Deficiencies per Medicare Home") +
  scale_x_continuous(labels=scales::dollar_format(), 
                     limits = c(18000, 150000),
                     
                     breaks = seq(25000, 150000, 25000)) +
  cust_theme3

In a multivariate regression model considering the independent variables of Median Income and Planning Area, Nursing homes in communities in Planning Area A, with a median income of $56,323 averaged 41.02 violations over the 4-year period (p < 0.01). For each increase of median income of the community by $1,000, nursing homes averaged 0.41 more violations. In Planning Area B, Nursing Homes in a community area median income of $56,323 averaged 59.49 violations over the 4-year period (p < 0.05). For each increase of median income in the community area of $1,000, nursing homes averaged 0.26 fewer violations (p < 0.05). In Planning Area C, Nursing Homes in community areas with a median income of $56,323 averaged 89.59 violations over the 4-year period (p < .01), For each increase of median income in the community area, nursing homes averaged 0.50 fewer violations (p < 0.1). This model explains 35% of the variation in the dependent variable.

By Hardship Index

#### Graph Violations by Hardship Index of Community Area 5.4c

cit_hard <- data %>%
  #select(vpf, hardship_index, planning_area, community_area) %>%
  filter(!is.na(vpf) & !is.na(hardship_index)) %>%
  arrange(desc(hardship_index)) %>%
  slice(1:5, 30:34)

data %>%  
  filter(!is.na(vpf) & !is.na(hardship_index)) %>%
  ggplot(aes(y = vpf, 
             x = hardship_index)) +
  geom_point(aes(color = planning_area)) +
  geom_text_repel(data = cit_hard, 
                  aes(y = vpf, 
                      x = hardship_index,
                      color = planning_area,
                      label = community_area),
                  nudge_y = 4) +
  stat_smooth(method = 'lm', se = FALSE, formula = y ~ x, color = "black") + 
  labs(title = "NH Citations by Hardship Index",
       subtitle = "Chicago, 2018-2021",
       caption = "Source: CMS Medicare",
       color = "Planning Area",
       x = "Hardship Index",
       y = "Deficiencies per Medicare Home") +
  scale_x_continuous(labels = scales::percent_format(scale = 1),
                     limits = c(-5, 105)) +
  cust_theme3

In communities with a Hardship Index of 0%, nursing homes averaged 36.40 violations over the four-year period (p < 0.01). For each 10% increase in community area Hardship Index, nursing homes averaged an additional 5.84 violations over that same period (p < 0.01). This model explains 24% of the variation in the dependent variable.

By Percent BIPOC

#### Graph Violations by Percent BIPOC of Community Area 5.4d

cit_comm <- data %>%
  filter(!is.na(vpf) & !is.na(pct_bipoc)) %>%
  arrange(desc(pct_bipoc)) %>%
  slice(1:5, 30:34)

data %>%  
  filter(!is.na(vpf) & !is.na(pct_bipoc)) %>%
  ggplot(aes(y = vpf, 
                 x = pct_bipoc)) +
  geom_point(aes(color = planning_area)) +
  geom_text_repel(data = cit_comm, 
            aes(y = vpf, 
                x = pct_bipoc,
                color = planning_area,
                label = community_area),
            nudge_y = 4) +
  geom_smooth(method = 'lm', se = FALSE, formula = y ~ x, color = "black") + 
  labs(title = "NH Citations by Percent BIPOC",
       subtitle = "Chicago, 2018-2021",
       caption = "Source: CMS Medicare",
       color = "Planning Area",
       x = "Percent BIPOC",
       y = "Deficiencies per Medicare Home") +
  scale_x_continuous(labels = scales::percent_format(scale = 1), 
                     limits = c(15, 105)) +
  cust_theme3

In communities with 0% BIPOC residents, nursing homes averaged 14.44 violations over the four-year term (not significant). For each 10% increase in BIPOC population in a community, nursing homes averaged 7.88 more violations over the same period (p < .01). This model explains 35% of the variation in the dependent variable.


Substandard Care Citations per Facility, 2018-2021

Regressions

svpf_regress_pa <- lm(svpf ~ planning_area, data = data)
summary(svpf_regress_pa)

bptest(svpf_regress_pa)

svpf_regress_mi <- lm(svpf ~ median_income_recode, data = data)
summary(svpf_regress_mi)

bptest(svpf_regress_mi)

svpf_regress_bipoc <- lm(svpf ~ pct_bipoc, data = data)
summary(svpf_regress_bipoc)

bptest(svpf_regress_bipoc)

svpf_regress_pa_bipoc <- lm(svpf ~ planning_area + pct_bipoc + pct_bipoc * planning_area, data = data)
summary(svpf_regress_pa_bipoc)

anova(svpf_regress_bipoc, svpf_regress_pa_bipoc)

bptest(svpf_regress_pa_bipoc)

svpf_regress_hardship <- lm(svpf ~ hardship_index, data = data)
summary(svpf_regress_hardship)

bptest(svpf_regress_hardship)
Statistical models
Statistical models
  Model 1 Model 2 Model 3 Model 4
(Intercept) 10.1893939394 (2.7043584449)*** 13.7616517015 (1.7551305329)*** 8.8210095232 (3.1584207783)** 6.2534241382 (4.3024729953)
Planning Area (B) 0.9865319865 (4.0314195455)      
Planning Area (C) 6.3225108225 (3.6138509827) .      
Median Income ($56,323)   -0.0000563843 (0.0000611197)    
Hardship Index     0.0839031129 (0.0546195914)  
Percent BIPOC       0.1042383257 (0.0616237552)
R2 0.1039795513 0.0259062537 0.0686767479 0.0820758437
Adj. R2 0.0461717805 -0.0045341759 0.0395728962 0.0533907138
Num. obs. 34 34 34 34
***p < 0.001; **p < 0.01; *p < 0.05; . p < 0.1

By Planning Area

data %>%
  
#### Graph Substandard Violations by Community Area 5.5a  
  
  group_by(planning_area) %>%
  summarize(sipf_avg = mean(sipf, na.rm = TRUE),
            cipf_avg = mean(cipf, na.rm = TRUE),
            vpf_avg = mean(vpf, na.rm = TRUE),
            svpf_avg = mean(svpf, na.rm = TRUE),
            .groups = "drop") %>%
  ggplot(mapping = aes(x = planning_area, y = svpf_avg)) +
  geom_col(aes(fill = planning_area), show.legend = FALSE) +
  geom_text(aes(label = round(svpf_avg), y = 8), 
            color = "white", 
            size = 7) +
  labs(title = "Substandard Care Citations per Medicare Facility",
       subtitle = "Average per facility for time spanning 2018-2021",
       caption = "Source: CMS Medicare",
       y = "Citations Issued") +
  scale_x_discrete(labels = c("Planning Area 6-A", "Planning Area 6-B", "Planning Area 6-C")) +
  scale_y_continuous(limits = c(0, 20)) +
  cust_theme2 +
  theme(axis.text.x = element_text(face = "bold", size = 14),
        axis.title.x = element_blank())

Nursing Homes in community areas in Planning Area A averaged 10.19 substandard care violations over the 4-year period (p < 0.01). Over the same period, facilities in Area B averaged an additional 0.99 substandard care violations (not statistically significant). Homes in Area C averaged an additional 6.32 (p < 0.1). This model explains 5% of the variation in the dependent variable.

By Median Income

#### Graph Substandard Care Violations by Median Income of Community Area 5.5b

cit_inc <- data %>%
  filter(!is.na(svpf) & !is.na(median_income)) %>%
  arrange(desc(median_income)) %>%
  slice(1:5, 30:34)

data %>%  
  filter(!is.na(svpf) & !is.na(median_income)) %>%
  ggplot(aes(y = svpf, 
             x = median_income)) +
  geom_point(aes(color = planning_area)) +
  geom_text(data = cit_inc, 
            aes(y = svpf, 
                x = median_income,
                color = planning_area,
                label = community_area),
            nudge_y = 4) +
  geom_smooth(method = 'lm', se = FALSE, formula = y ~ x, color = "black") + 
  labs(title = "Substandard Care by Median Income",
       subtitle = "Chicago, 2018-2021",
       caption = "Source: CMS Medicare",
       color = "Planning Area",
       x = "Median Income",
       y = "Deficiencies per Medicare Home") +
  scale_x_continuous(labels=scales::dollar_format(), 
                     limits = c(18000, 150000),
                     breaks = seq(25000, 150000, 25000)) +
  cust_theme3

For areas with a median income of $56,323, there were 12.76 substandard care violations over the time period studied, (p < 0.01) and for every $1,000 increase in income in an area, the number of substandard care violations decreased by 0.00006. (not significant) This model offers no explanation for the variance.

By Hardship Index

#### Graph Substandard Violations by Hardship Index of Community Area 5.5c

cit_hard <- data %>%
  #select(vpf, hardship_index, planning_area, community_area) %>%
  filter(!is.na(vpf) & !is.na(hardship_index)) %>%
  arrange(desc(hardship_index)) %>%
  slice(1:5, 30:34)

data %>%  
  filter(!is.na(svpf) & !is.na(hardship_index)) %>%
  ggplot(aes(y = svpf, 
             x = hardship_index)) +
  geom_point(aes(color = planning_area)) +
  geom_text_repel(data = cit_hard, 
                  aes(y = svpf, 
                      x = hardship_index,
                      color = planning_area,
                      label = community_area),
                  nudge_y = 4) +
  stat_smooth(method = 'lm', se = FALSE, formula = y ~ x, color = "black") + 
  labs(title = "Substandard Care by Hardship Index",
       subtitle = "Chicago, 2018-2021",
       caption = "Source: CMS Medicare",
       color = "Planning Area",
       x = "Hardship Index",
       y = "Deficiencies per Medicare Home") +
  scale_x_continuous(labels = scales::percent_format(scale = 1),
                     limits = c(-5, 105)) +
  cust_theme3

Areas with a Hardship Index of 0% averaged 8.82 substandard care violations during the time period studied, (p < 0.01), and for each 10 percent increase in the Hardship Index, the number of substandard care violations increased by 0.8. (not significant) This model explains 4% of the variation in the dependent variable.

By Percent BIPOC

#### Graph Substandard Care Violations by Percent BIPOC of Community Area 5.5d

cit_comm <- data %>%
  filter(!is.na(svpf) & !is.na(pct_bipoc)) %>%
  arrange(desc(pct_bipoc)) %>%
  slice(1:5, 30:34)

data %>%  
  filter(!is.na(svpf) & !is.na(pct_bipoc)) %>%
  ggplot(aes(y = svpf, 
                 x = pct_bipoc)) +
  geom_point(aes(color = planning_area)) +
  geom_text_repel(data = cit_comm, 
            aes(y = svpf, 
                x = pct_bipoc,
                color = planning_area,
                label = community_area),
            nudge_y = 4) +
  geom_smooth(method = 'lm', se = FALSE, formula = y ~ x, color = "black") + 
  labs(title = "Substandard Care by Percent BIPOC",
       subtitle = "Chicago, 2018-2021",
       caption = "Source: CMS Medicare",
       color = "Planning Area",
       x = "Percent BIPOC",
       y = "Deficiencies per Medicare Home") +
  scale_x_continuous(labels = scales::percent_format(scale = 1), 
                     limits = c(15, 105)) +
  cust_theme3

Areas with the 0% BIPOC residents, had 6.25 substandard care violations, (not significant), and for every additional 10 percent BIPOC residents in an area, there were 1.04 more violations for substandard care (not significant). This model explains 5% of the variation in the dependent variable.


Implications and Conclusions

Implications

Implications

Our analysis may have implications for larger-scale studies of the quality of nursing home care in low-income and non-white areas. Among other important issues, we did not consider the impact of nursing home funding on the number of citations. Indeed, our dataset only included facilities funded by Medicare, not Medicaid, which may have some impact on questions of safety and quality of care. Some data indicates that increased funding, particularly Medicaid funding, is positively correlated with improved quality of care. (Li et al. 2015) Additionally, facilities with higher numbers of Medicaid residents but in states with lower Medicaid per-resident reimbursement rates are more likely to be cited for issues of resident safety. (Castle et al. 2011) It is possible that under-resourced neighborhoods also have under-resourced nursing facilities, leading to substandard care. A 2016 study noted that half of nursing homes in the US are understaffed. (Harrington et al. 2016) Further, we did not include the impact of a facility being privately as compared to publicly owned. Over half of all SNFs in the US are privately run. (CDC 2019) Analysis indicates that privatized nursing homes have higher rates of violations than those that are publicly operated. (Amirkhanyan 2008) Our study also did not look at the impact of workers’ experience and empowerment on quality of care, which research indicates is a factor. (Swan and Harrington 2007)

As noted elsewhere, we chose to merge all non-white racial and ethnic categories into one “BIPOC” for our analysis. However, there is likely reason to suspect that there are racial differences between non-white groups. Further study is needed to thoroughly consider the impact of the specific racial make-up of a community on questions of nursing home inspections, citations, and violations.

Additionally, a quantitative study leaves out the important lived experiences of the residents and workers in these facilities. News media have covered the mismanagement of nursing home facilities and ways it puts patients lives at risk. (Gebeloff, Thomas, and Silver-Greenberg 2021) Other news outlets have covered the impact of inadequate staffing on patient care and health systems more broadly. (Bernstein and Van Dam 2022) A qualitative approach would help to answer some of the “whys” to substandard care in nursing homes, and would give nuance and life to the data above.

Conclusions

Conclusion

Our analysis adds a local focus to a wider collection of research on the quality of care patients receive at skilled nursing facilities. Compared to other research, we chose to look at nursing home quality from a slightly different angle, by considering the make-up of the outside community rather than the demographics of the resident population within the facility. In line with other literature, our findings indicate that there continue to be disparities in care, as evaluated by the number and types of citations, between facilities in higher income and lower income areas, as well as between facilities in minority or non-minority communities. Both median income and the percentage of BIPOC residents were meaningful predictors of lower quality skilled nursing facilities.

This issue is one that touches all Americans, because all of us want to spend the sunset years of our lives in a place that is safe and where we are treated with care and respect. Our aim is to add to the literature establishing the clear connection between income, race, and health care access. These data may serve as additional evidence to push policy makers to improve the ways in which we, collectively, ensure that residents of SNFs receive the care they deserve. This benefits every American of any age because all of us may need nursing care at some point in our lives, and better care for the most disadvantaged among us is better care for us all.


Bibliography

Acosta-Cordova, Jose Miguel. 2017. “The Latino Neighborhoods Report: Issues and Prospects for Chicago.” UIC Great Cities Institute. University of Illinois at Chicago. https://greatcities.uic.edu/wp-content/uploads/2017/10/Latino-Neighborhoods-Report-v2.3.pdf.

Amirkhanyan, Anna. 2008. “Privatizing Public Nursing Homes: Examining the Effects on Quality and Access.” Public Administration Review 68 (4): 665–80. https://doi.org/10.1111/j.1540-6210.2008.00906.x.

Asfaw, Abay. 2021. “Racial Disparity in Potential Occupational Exposure to COVID-19.” Journal of Racial and Ethnic Health Disparities, August. https://doi.org/10.1007/s40615-021-01110-8.

Bernstein, Lenny, and Andrew Van Dam. 2022. “Nursing Home Staff Shortages Are Worsening Problems at Overwhelmed Hospitals.” Washington Post, January 7, 2022. https://www.washingtonpost.com/health/2021/12/28/nursing-home-hospital-staff-shortages/.

Castle, NG, LM Wagner, JC Ferguson, and SM Handler. 2011. “Nursing Home Deficiency Citations for Safety.” Journal of Aging & Social Policy 23 (1): 34–57. https://doi.org/10.1080/08959420.2011.532011.

CDC. 2019. “FastStats - Nursing Home Care.” Centers for Disease Control and Prevention. 2019. https://www.cdc.gov/nchs/fastats/nursing-home-care.htm.

Centers for Medicaid and Medicare Services. 2019. “Nursing Homes | CMS.” Cms.gov. 2019. https://www.cms.gov/Medicare/Provider-Enrollment-and-Certification/CertificationandComplianc/NHs.

Centers for Medicare & Medicaid Services. 2022. “Nursing Home Compare Five-Star Quality Rating System: Technical Users’ Guide.” Centers for Medicare and Medicaid Services. https://www.cms.gov/Medicare/Provider-Enrollment-and-Certification/CertificationandComplianc/Downloads/cutpointstable.pdf.

Centers for Medicare and Medicaid Services. 2022. “Design for Care Compare Nursing Home Five-Star Quality Rating System: Technical Users’ Guid.” Centers for Medicaid and Medicare Services. https://www.cms.gov/Medicare/Provider-Enrollment-and-Certification/CertificationandComplianc/Downloads/usersguide.pdf.

Chan, Kitty S., Darrell J. Gaskin, Gniesha Y. Dinwiddie, and Rachael McCleary. 2012. “Do Diabetic Patients Living in Racially Segregated Neighborhoods Experience Different Access and Quality of Care?” Medical Care 50 (8): 692–99. https://www.jstor.org/stable/41714546.

City of Chicago. 2022. “Chicago Ward, Community Area and Neighborhood Maps.” Www.chicago.gov. 2022. https://www.chicago.gov/city/en/depts/dgs/supp_info/citywide_maps.html.

Cole, Megan B., and Kevin H. Nguyen. 2020. “Unmet Social Needs among Low‐Income Adults in the United States: Associations with Health Care Access and Quality.” Health Services Research 55 (S2): 873–82. https://doi.org/10.1111/1475-6773.13555.

Cornell, Portia Y., David C. Grabowski, Edward C. Norton, and Momotazur Rahman. 2019. “Do Report Cards Predict Future Quality? The Case of Skilled Nursing Facilities.” Journal of Health Economics 66 (July): 208–21. https://doi.org/10.1016/j.jhealeco.2019.05.008.

Feng, Zhanlian. 2011. “Geographic Concentration and Correlates of Nursing Home Closures: 1999-2008.” Archives of Internal Medicine 171 (9): 806. https://doi.org/10.1001/archinternmed.2010.492.

Fenton, Anny T., Q Burkhart, Robert Weech-Maldonado, Amelia M. Haviland, Jacob W. Dembosky, Regina Shih, Shondelle M. Wilson-Frederick, Sarah Gaillot, and Marc N. Elliott. 2018. “Geographic Context of Black-White Disparities in Medicare CAHPS Patient Experience Measures.” Health Services Research 54 (November): 275–86. https://doi.org/10.1111/1475-6773.13091.

Gebeloff, Robert, Katie Thomas, and Jessica Silver-Greenberg. 2021. “How Nursing Homes’ Worst Offenses Are Hidden from the Public.” The New York Times, December 9, 2021, sec. Business. https://www.nytimes.com/2021/12/09/business/nursing-home-abuse-inspection.html.

Great Cities Institute. 2019. “Fact Sheet: Black Population Loss in Chicago.” Great Cities Institute, UIC. https://greatcities.uic.edu/wp-content/uploads/2019/08/Black-Population-Loss-in-Chicago.pdf.

Harrington, Charlene, John F. Schnelle, Margaret McGregor, and Sandra F. Simmons. 2016. “Article Commentary: The Need for Higher Minimum Staffing Standards in U.S. Nursing Homes.” Health Services Insights 9 (April). https://doi.org/10.4137/hsi.s38994.

Illinois Department of Public Health. 2022. “Who Regulates Nursing Homes?” Dph.illinois.gov. 2022. https://dph.illinois.gov/topics-services/health-care-regulation/nursing-homes/regulation.html.

Illinois Health Facilities and Services Review Board. 2021. “Inventory of Health Care Facilities and Service and Need Determinations: Long Term Care Services.” Illinois Department of Public Health. https://www2.illinois.gov/sites/hfsrb/InventoriesData/HealthCareFacilities/Documents/Long-Term%20Care%20Inventory%202021.pdf.

Insalco, Amanda, “Fifty Years since Passage of the Fair Housing Act: Rent-To-Income Ratios in the Persistence of Residential Racial Segregation in Chicago,” John Marshall Law Review 51, no. 3 (Spring 2018): 551-588

Kaiser Family Foundation. 2020. “Total Number of Residents in Certified Nursing Facilities.” KFF. August 3, 2020. https://www.kff.org/other/state-indicator/number-of-nursing-facility-residents/?currentTimeframe=0&sortModel=%7B%22colId%22:%22Location%22.

Li, Yue, Charlene Harrington, Helena Temkin-Greener, Kai You, Xueya Cai, Xi Cen, and Dana B. Mukamel. 2015. “Deficiencies in Care at Nursing Homes and Racial/Ethnic Disparities across Homes Fell, 2006–11.” Health Affairs 34 (7): 1139–46. https://doi.org/10.1377/hlthaff.2015.0094.

National Institute of Aging. 2017. “Residential Facilities, Assisted Living, and Nursing Homes.” National Institute on Aging. 2017. https://www.nia.nih.gov/health/residential-facilities-assisted-living-and-nursing-homes.

———. n.d. “Nursing Homes.” Dph.illinois.gov. Accessed February 4, 2022. https://dph.illinois.gov/topics-services/health-care-regulation/nursing-homes.html.

Novara, Marisa, and Amy Khare. 2017. “Two Extremes of Residential Segregation: Chicago’s Separate Worlds & Policy Strategies for Integration.” In A Shared Future: Fostering Communities of Inclusion in an Era of Inequality. Harvard Center for Housing Studies. https://www.jchs.harvard.edu/sites/default/files/a_shared_future_two_extremes_residential_segregation.pdf.

Qato, Dima M., Martha L. Daviglus, Jocelyn Wilder, Todd Lee, Danya Qato, and Bruce Lambert. 2014. “‘Pharmacy Deserts’ Are Prevalent in Chicago’s Predominantly Minority Communities, Raising Medication Access Concerns.” Health Affairs 33 (11): 1958–65. https://doi.org/10.1377/hlthaff.2013.1397.

Rothstein, Richard. 2017. The Color of Law: A Forgotten History of How Our Government Segregated America. New York; London: Liveright Publishing Corporation, A Division Of W. W. Norton & Company.

Sandoval, J. S. Onésimo. 2011. “Neighborhood Diversity and Segregation in the Chicago Metropolitan Region, 1980-2000.” Urban Geography 32 (5): 609–40. https://doi.org/10.2747/0272-3638.32.5.609.

Serrato, Jacqueline, Charmaine Runes, and Pat Sier. 2022. “Mapping Chicago’s Racial Segregation.” South Side Weekly. February 24, 2022. https://southsideweekly.com/mapping-chicagos-racial-segregation/.

Shippee, Tetyana P, Weiwen Ng, John Bowblis, Yinfei Duan, Odichinma Akosionu, and Mark Woodhouse. 2019. “RACIAL DISPARITIES in NURSING HOME RESIDENTS: QUALITY of LIFE: DOES the GAP PERSIST over TIME?” Innovation in Aging 3 (Supplement_1): S780–80. https://doi.org/10.1093/geroni/igz038.2870.

Smith, David Barton, Zhanlian Feng, Mary L. Fennell, Jacqueline Zinn, and Vincent Mor. 2008. “Racial Disparities in Access to Long-Term Care: The Illusive Pursuit of Equity.” Journal of Health Politics, Policy and Law 33 (5): 861–81. https://doi.org/10.1215/03616878-2008-022.