An Interactive Look at Healthcare Price Disparities in NYC
By: Anne Bode
Tags: Healthcare, Data Science, Data Journalism, Inequality, Editors Pick

Results

Borough Stats

Key stats per NYC borough

We can see that even before adjusting for AGI per Capita, the Bronx has relatively high Medicare claims, at +33% vs. the NYC median, on average. Once we adjust for AGI per Capita, pretty much every borough skyrockets except for Manhattan (at -51%), due to the concentration of wealth on the island. The adjusted rate for the Bronx is now a mind-blowing +404%. And if we look at the Avg. Difference in People per Provider, Queens appears to have the most overwhelmed providers, at +259%. Manhattan again screens well on this metric, with 67% fewer People per Provider, on average.

These are interesting conclusions, but anyone who has been to NYC knows that most of these boroughs contain a very wide range of neighborhoods. Just take Manhattan — from Chinatown, to Hells Kitchen, to East Harlem, to the Upper East Side, these neighborhoods can differ greatly. We’ll use bokeh to create an interactive chloropleth map of these stats by Neighborhood (see jupyter notebook for code), and will use datapane to embed the map into this article, below.

Chloropleth Map #1: Median Price per Service (Unadjusted)

Avg. Difference in Median Price, by Neighborhood (boundaries represent zip codes; multiple zip codes can be part of the same neighborhood)

From scrolling around, we can see that the Avg. Difference in Median Price in Greenpoint is -14% vs. the UES at +7%. However, most notably we can see how high prices are in Southeast Queens (+69%) and in the Bronx Park/Fordham neighborhood (+60%).

Chloropleth Map #2: Median Price per Service (Adjusted)

Avg. Difference in Adjusted Median Price, by Neighborhood (boundaries represent zip codes; multiple zip codes can be part of the same neighborhood)

In this map, we can see price disparities a bit more practically by taking income into account. Of course, people can go elsewhere in the city for care. But it is obviously easier to seek care if it is nearby, with fewer barriers to access it. Using adjusted median prices, it is clear that most of Manhattan has a relatively low cost of care. The exception is the very northern end of the island: East Harlem, Central Harlem, and Inwood/Washington Heights at +200%/+130%/+233%. However, even this pales in comparison to the Bronx. Bronx Park/Fordham is now at +654%, and neighborhoods south of it are all hovering in the +300–350% range. Another outlier is East New York and New Lots, at +337%.

Comparison of Means: Neighborhoods ≥50% White vs. Neighborhoods <50% White

Comparison of means across key variables in neighborhoods where population ≥50% white and <50% white

In the table above, we compare means across key variables in neighborhoods where the population is ≥50% white (13 neighborhoods) vs. neighborhoods where the population is <50% white (29 neighborhoods). Note that all values should be interpreted as percentage points, except AGI per Capita (dollars) and AGI Log (the log of AGI per Capita). In this table, we can see that in majority-white neighborhoods, mean AGI per Capita is $136k vs. $32k, Avg. Difference in Median Price is -4.5% vs. +4.4%, Avg. Difference in Adjusted Median Price is +26% vs. +205%, Avg. Difference in People per Provider is +34% vs. +71%, and the percentage of all provider/service combos offered in the neighborhood (out of all 111 provider/services included in analysis) is 68% vs. 53%.

This indicates that healthcare conditions in majority-white neighborhoods are more optimal: lower prices (both unadjusted and adjusted for AGI), fewer people per provider, and more services offered. However, these are small sample sizes and we should check for significance before we take anything too seriously. Simple t tests (using scipy) are run to check if the differences in means are statistically significant. In the end, only AGI Per Capita and Avg. Difference in Adjusted Median Price are significant (p<0.05; last column).

Checking for Correlations

Correlation matrix of our variables of interest

Before we run our regression analyses to see which variables can help us predict healthcare price disparities, it helps to first create a correlation matrix to gauge the strength and direction of relationships between our variables. In this heatmap, blue indicates a positive correlation and red a negative one. Again, we really only care about significant relationships between variables. Therefore, in the table below we include not only the correlation coefficient (as seen in the matrix above), but also the p value (calculated using pearsonr from scipy.stats) and R² (correlation coefficient²). As a reminder: we like p values when they are <0.05 and R² can be defined as the percentage of variation in y that can be explained by x (see here).

Significant correlations between our variables of interest (p<0.05)

In the table above, we include only significant correlations (p<0.05), and sort high to low on R². The strongest relationships are between the Avg. Difference in Adjusted Median Price and White population rate, Hispanic/Latino population rate, and AGI per Capita. Interestingly, the percent of the population that is white or Hispanic/Latino appear to explain MORE of the Avg. Difference in Adjusted Median Price (higher R²) than AGI per Capita (lower R²), even though AGI per Capita was part of the adjusted price calculation in the first place. So there might be something about a high white or Hispanic/Latino population, beyond just AGI per Capita, that explains differences in median Medicare claims?

Let’s take the variables with the strongest correlations and visualize them with a Pair Plot, so we can see how linear (or non-linear) their relationships seem to be.

Pair Plot of correlated variables to visualize their linear (or non-linear) relationships

The positive linear relationship between the Hispanic/Latino population and adjusted claims is very apparent. The same can be said for the negative linear relationship between the white population and adjusted claims. On the other hand, the relationship between AGI per Capita and adjusted claims seems to be logarithmically decreasing — not really a linear relationship. This might explain why the correlation between the two variables was not the strongest in the correlation matrix above, although we might have expected it to be. That matrix was looking at linear correlation, not logarithmic correlation. To account for this, we will take the log of our AGI per Capita variable and add it to our pandas dataframe for further analysis.

Next, we’ll run a few multiple regressions to see if we can take a closer look at the size and significance of the effects of these different variables on Avg. Difference in Adjusted Median Price.

Running Regressions

Before we run our regressions, let’s first make sure there isn’t too much “collinearity” among our independent variables. For example, if the percent of the population that is white is too highly correlated with the percent of the population that is Black, it wouldn’t make sense to include both variables in our regression because they would essentially both be saying the same thing (in opposite directions). This could mess with our model. One way of checking for this is to see if any correlation coefficients are ≥0.8. We didn’t have that in our correlation matrix, but a second check is to look at “variance inflation factors” (VIFs). If any variables have a VIF ≥ 5, we are in trouble.

Checking our variables of interest for collinearity

Looks like no issues with collinearity, so we can proceed with our first regression. We will check to see if demographics can help predict adjusted price disparities. To do so, we will run a multiple linear regression of our dependent variable (Avg. Difference in Adjusted Median Price) on our three independent variables (percent of population that is Black, Hispanic/Latino, and white).

Regression: Avg. Difference in Adjusted Median Price on Demographics; Adjusted R² = 0.65

We see that as the percent of the population that is Hispanic/Latino increases, so do prices (+1% Hispanic/Latino = +2.97% Avg. Difference in Adjusted Median Price, all else equal). The reverse is true for the white population (+1% white = -3.15% Avg. Difference in Adjusted Median Price, all else equal). The Black/African American percent of the population does not have a significant effect in this regression (p > 0.05). Importantly, the adjusted R² of this regression is 0.65. In our next regression, we will remove “Black or African American (%)” as an independent variable (since it did not have a significant effect) and see how that affects our adjusted R² value.

Regression: Avg. Difference in Adjusted Median Price on Hispanic/Latino and white percent of population; Adjusted R² = 0.66

The Adjusted R² improves slightly when we remove “Black or African American (%)” from our regression, and we are left with two significant effects of similar magnitude to our first regression. Adjusted R² is now 0.66. +1% Hispanic/Latino = +2.92% Avg. Difference in Adjusted Median Price, all else equal.+1% white = -3.20% Avg. Difference in Adjusted Median Price, all else equal.

A 0.66 adjusted R² — that’s not bad. That means that just by looking at the percent of the population that is Hispanic/Latino and white, I can explain 66% of the variation in the Avg. Difference in Adjusted Median Price. But maybe the whole effect of demographics is really just being mediated by the relationship between demographics and AGI per Capita. Disparities in wealth by race and ethnicity are well-documented. We used AGI per Capita when we calculated adjusted rates, so obviously the AGI per Capita will have an impact on adjusted rates. To explore this potential mediating effect, I will use this mediation analysis strategy described by the University of Virginia.

First, I will regress AGI per Capita on the percent of the population that is Hispanic/Latino and white. For this regression, I will use the log of AGI per Capita. Remember, in our Pair Plot we discovered a logarithmically decreasing relationship between AGI per Capita and the Avg. Difference in Adjusted Median Price.

Regression: Log of AGI per Capita on Hispanic/Latino and white percent of population; Adjusted R² = 0.56

In the regression above, we can see that the white percent of the population has a significant effect on the log of AGI per Capita, all else equal. The percent of the population that is Hispanic/Latino, however, does not have a significant effect on the log of AGI per Capita, all else equal. Therefore, the significant negative effect we found earlier of the white percent of the population on Avg. Difference in Adjusted Median Price is likely just due to how closely related the white percent of the population is to AGI per Capita.

We can verify this by adding the log of AGI per Capita to our original regression. If any of the other terms lose their significance once the log of AGI per Capita is included, that means their effect on Avg. Difference in Adjusted Median Price is actually “mediated” by AGI per Capita. I don’t know about you, but I don’t naturally think in logarithms. How do we interpret the coefficient of the log of AGI per Capita, in our results? A 1% increase in AGI per Capita increases the Avg. Difference in Adjusted Median Price by (whatever the coefficient is/100).

Regression: Avg. Difference in Adjusted Median Price on Log of AGI per Capita and Hispanic/Latino & white percent of population; Adjusted R² = 0.76

The white percent of the population has lost its significance in this regression (p>0.05), but the Hispanic/Latino percent of the population retains its significance even when the log of AGI per Capita is added to the regression. This seems to indicate that there is a factor beyond just AGI which accounts for higher prices in areas with a higher Hispanic/Latino population. Perhaps this explains the higher prices we see in the Bronx for not only AGI adjusted claims (+404%) but also for unadjusted claims (+33%), since the Bronx is majority Hispanic/Latino (56%). Interpreting the results of this regression, the adjusted R² is 0.76. For every increase of 1% in the Hispanic/Latino population, the Avg. Difference in Adjusted Median Price increases by 2.3%, all else equal. For every increase of 1% in AGI per Capita, the Avg. Difference in Adjusted Median Price decreases by 0.9%.