--- title: 'Analyzing inequality in access to opportunities' date: "`r Sys.Date()`" output: rmarkdown::html_vignette urlcolor: blue vignette: > %\VignetteIndexEntry{Analyzing inequality in access to opportunities} %\VignetteEngine{knitr::rmarkdown} \usepackage[utf8]{inputenc} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", eval = identical(tolower(Sys.getenv("NOT_CRAN")), "true"), out.width = "100%" ) ``` Social and racial inequalities in access to opportunities ```{r, message = FALSE, eval = TRUE, warning=FALSE} # load libraries library(aopdata) library(sf) library(ggplot2) library(data.table) library(units) ``` ## Download accessibility data ```{r, message = FALSE, eval = TRUE} df <- aopdata::read_access( city = 'Curitiba', mode = 'public_transport', peak = TRUE, year = 2019, showProgress = FALSE ) ``` ## Inequality in access to job opportunities by income decile ```{r, message = FALSE, eval = !is.null(df)} ggplot() + geom_boxplot(data=subset(df, !is.na(R003)), aes(x = factor(R003), y=CMATT60/1000, color=factor(R003))) + scale_color_brewer(palette = 'RdBu') + labs(title='Distribution of the number of jobs accessible', color="Income\ndecile", subtitle='by public transport in less than 60 min. by income decile', x='Income decile', y="N. of jobs accessible\n(thousands)") + scale_x_discrete(labels=c("D1 Poorest", paste0('D', 2:9), "D10 Wealthiest")) + theme_minimal() ``` ## Palma ratio ```{r, message = FALSE, eval = !is.null(df)} # average access of the wealthiest 10% avg_access_10p_wealthiest <- df[ R003==10, weighted.mean(x=CMATT60, w=P001, na.rm=T)] # average access of the poorest 40% avg_access_40p_poorest <- df[ R003<=4, weighted.mean(x=CMATT60, w=P001, na.rm=T)] # Palma ratio palma_ratio <- avg_access_10p_wealthiest / avg_access_40p_poorest palma_ratio ``` This means that the 10% wealthiest population could access by public transport on average 2.6 times more job opportunites than the 40% poorest people in less than 60 min. ## Inequality in travel time to closes hospital ```{r, message = FALSE, eval = !is.null(df)} # replace Inf travel time with 120 df[, TMISA := fifelse(TMISA==Inf, 120, TMISA)] # calculate average travel time by race df[, .(average = weighted.mean(x=TMISA, w=P001, na.rm=T), white = weighted.mean(x=TMISA, w=P002, na.rm=T), black = weighted.mean(x=TMISA, w=P003, na.rm=T))] # calculate average travel time by income temp <- df[, .(average = weighted.mean(x=TMISA, w=P001, na.rm=T)), by=R003] temp <- na.omit(temp) ggplot() + geom_point(data=temp, aes(y=average, x=factor(R003))) + labs(x='Income decile', y='Avg. travel time to\nclosest hospital') + theme_minimal() ```