According to the data and methodology used, estimate 161072 people living in a food desert. This is similar, but not exactly the same as previous estimates. In fact, other studies give a higher estimate.
All data from the Chicago Open Data Portal. Several files:
\[ y_{ij} = \text{logit}^{-1}\left( \alpha + X_{B}\beta_{B} \right) \]
\[ y_{i} = \text{logit}^{-1}\left( \alpha + X_{B}\beta_{B} + \gamma_j \right) \]
\[ y_{i} = \text{logit}^{-1}\left( \alpha_{j[i]} + X_{B}\beta_{B} \right) \]
Where \(\alpha_j \sim N(\mu_\alpha, \sigma^2_\alpha)\)
\[ y_{i} = \text{logit}^{-1}\left( \alpha_{j[i]} + X_{B}\beta_{B} + \epsilon_i \right) \] Where \(\alpha_j \sim N(X_N \beta_N, \sigma^2_\alpha)\)
##
## Call:
## glm(formula = desert ~ CTA_counts + vacant_counts + crime, family = "binomial",
## data = model_data_scale)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.0109 -0.5023 -0.3341 -0.1989 3.4291
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.84947 0.02851 -99.959 < 2e-16 ***
## CTA_counts -1.58807 0.04031 -39.392 < 2e-16 ***
## vacant_counts 0.40999 0.01766 23.218 < 2e-16 ***
## crime 0.05639 0.01904 2.962 0.00306 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 22117 on 36869 degrees of freedom
## Residual deviance: 19819 on 36866 degrees of freedom
## AIC: 19827
##
## Number of Fisher Scoring iterations: 6
##
## Call:
## glm(formula = desert ~ CTA_counts + vacant_counts + crime + Neighborhood,
## family = "binomial", data = model_data_scale)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.3398 -0.3087 -0.0001 0.0000 3.6919
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.068e+01 7.574e+02 -0.027 0.978
## CTA_counts -7.828e-01 6.087e-02 -12.860 < 2e-16
## vacant_counts -4.084e-01 3.795e-02 -10.761 < 2e-16
## crime 1.011e-01 2.316e-02 4.364 1.28e-05
## NeighborhoodArcher Heights -3.755e-01 1.446e+03 0.000 1.000
## NeighborhoodArmour Square 1.793e+01 7.574e+02 0.024 0.981
## NeighborhoodAshburn 1.832e+01 7.574e+02 0.024 0.981
## NeighborhoodAuburn Gresham 1.414e+01 7.574e+02 0.019 0.985
## NeighborhoodAustin 1.695e+01 7.574e+02 0.022 0.982
## NeighborhoodAvalon Park 1.600e+01 7.574e+02 0.021 0.983
## NeighborhoodAvondale 4.744e-01 1.120e+03 0.000 1.000
## NeighborhoodBelmont Cragin -2.183e-01 9.506e+02 0.000 1.000
## NeighborhoodBeverly 1.702e+01 7.574e+02 0.022 0.982
## NeighborhoodBridgeport 1.619e+01 7.574e+02 0.021 0.983
## NeighborhoodBrighton Park -3.120e-01 1.089e+03 0.000 1.000
## NeighborhoodBurnside -2.586e-02 2.105e+03 0.000 1.000
## NeighborhoodCalumet Heights 1.551e+01 7.574e+02 0.020 0.984
## NeighborhoodChatham 1.763e+01 7.574e+02 0.023 0.981
## NeighborhoodChicago Lawn 1.757e+01 7.574e+02 0.023 0.981
## NeighborhoodClearing 2.017e+01 7.574e+02 0.027 0.979
## NeighborhoodDouglas 2.585e-01 1.787e+03 0.000 1.000
## NeighborhoodDunning 1.842e+01 7.574e+02 0.024 0.981
## NeighborhoodEast Side -9.362e-01 1.160e+03 -0.001 0.999
## NeighborhoodEdgewater 3.130e-01 1.091e+03 0.000 1.000
## NeighborhoodEdison Park 1.636e+01 7.574e+02 0.022 0.983
## NeighborhoodEnglewood 1.967e+01 7.574e+02 0.026 0.979
## NeighborhoodForest Glen 1.781e+01 7.574e+02 0.024 0.981
## NeighborhoodFuller Park 1.853e+01 7.574e+02 0.024 0.980
## NeighborhoodGage Park -5.577e-03 1.116e+03 0.000 1.000
## NeighborhoodGarfield Park 2.044e+01 7.574e+02 0.027 0.978
## NeighborhoodGarfield Ridge 1.839e+01 7.574e+02 0.024 0.981
## NeighborhoodGrand Boulevard 1.824e+01 7.574e+02 0.024 0.981
## NeighborhoodGreater Grand Crossing 1.179e+00 1.060e+03 0.001 0.999
## NeighborhoodHegewisch 2.201e+01 7.574e+02 0.029 0.977
## NeighborhoodHermosa -7.616e-02 1.318e+03 0.000 1.000
## NeighborhoodHumboldt Park 1.437e+01 7.574e+02 0.019 0.985
## NeighborhoodHyde Park 3.159e-01 1.585e+03 0.000 1.000
## NeighborhoodIrving Park -5.197e-02 1.000e+03 0.000 1.000
## NeighborhoodJefferson Park -6.124e-01 1.083e+03 -0.001 1.000
## NeighborhoodKenwood 1.622e-01 1.831e+03 0.000 1.000
## NeighborhoodLake View 5.727e-01 9.968e+02 0.001 1.000
## NeighborhoodLincoln Park 2.841e-01 1.091e+03 0.000 1.000
## NeighborhoodLincoln Square 1.524e-01 1.087e+03 0.000 1.000
## NeighborhoodLogan Square 3.736e-01 9.286e+02 0.000 1.000
## NeighborhoodLoop 4.593e+00 1.627e+03 0.003 0.998
## NeighborhoodLower West Side -1.791e-01 1.141e+03 0.000 1.000
## NeighborhoodMcKinley Park -4.250e-01 1.387e+03 0.000 1.000
## NeighborhoodMontclaire -6.654e-01 1.428e+03 0.000 1.000
## NeighborhoodMorgan Park 1.430e+01 7.574e+02 0.019 0.985
## NeighborhoodMount Greenwood -1.035e+00 1.241e+03 -0.001 0.999
## NeighborhoodNear North Side 1.286e+00 1.065e+03 0.001 0.999
## NeighborhoodNear South Side 2.026e-01 1.645e+03 0.000 1.000
## NeighborhoodNear West Side 1.981e+01 7.574e+02 0.026 0.979
## NeighborhoodNew City 1.753e+01 7.574e+02 0.023 0.982
## NeighborhoodNorth Center 2.488e-02 1.073e+03 0.000 1.000
## NeighborhoodNorth Lawndale 2.014e+01 7.574e+02 0.027 0.979
## NeighborhoodNorth Park -4.848e-01 1.314e+03 0.000 1.000
## NeighborhoodNorwood Park 1.586e+01 7.574e+02 0.021 0.983
## NeighborhoodO'Hare 1.737e+01 7.574e+02 0.023 0.982
## NeighborhoodOakland -3.329e-01 2.336e+03 0.000 1.000
## NeighborhoodPortage Park 1.700e+01 7.574e+02 0.022 0.982
## NeighborhoodPullman 2.048e+01 7.574e+02 0.027 0.978
## NeighborhoodRiverdale -9.502e-01 2.643e+03 0.000 1.000
## NeighborhoodRogers Park -1.802e-01 1.140e+03 0.000 1.000
## NeighborhoodRoseland 2.114e+01 7.574e+02 0.028 0.978
## NeighborhoodSouth Chicago 4.705e-01 1.066e+03 0.000 1.000
## NeighborhoodSouth Deering 1.846e+01 7.574e+02 0.024 0.981
## NeighborhoodSouth Lawndale -6.613e-02 1.038e+03 0.000 1.000
## NeighborhoodSouth Shore 1.490e+01 7.574e+02 0.020 0.984
## NeighborhoodUptown 8.448e-01 1.290e+03 0.001 0.999
## NeighborhoodWashington Heights 1.734e+01 7.574e+02 0.023 0.982
## NeighborhoodWashington Park 1.985e+01 7.574e+02 0.026 0.979
## NeighborhoodWest Elsdon -3.566e-01 1.287e+03 0.000 1.000
## NeighborhoodWest Lawn 1.803e+01 7.574e+02 0.024 0.981
## NeighborhoodWest Pullman 2.043e+01 7.574e+02 0.027 0.978
## NeighborhoodWest Ridge 1.843e+01 7.574e+02 0.024 0.981
## NeighborhoodWest Town 5.658e-01 9.413e+02 0.001 1.000
## NeighborhoodWoodlawn 1.751e+01 7.574e+02 0.023 0.982
##
## (Intercept)
## CTA_counts ***
## vacant_counts ***
## crime ***
## NeighborhoodArcher Heights
## NeighborhoodArmour Square
## NeighborhoodAshburn
## NeighborhoodAuburn Gresham
## NeighborhoodAustin
## NeighborhoodAvalon Park
## NeighborhoodAvondale
## NeighborhoodBelmont Cragin
## NeighborhoodBeverly
## NeighborhoodBridgeport
## NeighborhoodBrighton Park
## NeighborhoodBurnside
## NeighborhoodCalumet Heights
## NeighborhoodChatham
## NeighborhoodChicago Lawn
## NeighborhoodClearing
## NeighborhoodDouglas
## NeighborhoodDunning
## NeighborhoodEast Side
## NeighborhoodEdgewater
## NeighborhoodEdison Park
## NeighborhoodEnglewood
## NeighborhoodForest Glen
## NeighborhoodFuller Park
## NeighborhoodGage Park
## NeighborhoodGarfield Park
## NeighborhoodGarfield Ridge
## NeighborhoodGrand Boulevard
## NeighborhoodGreater Grand Crossing
## NeighborhoodHegewisch
## NeighborhoodHermosa
## NeighborhoodHumboldt Park
## NeighborhoodHyde Park
## NeighborhoodIrving Park
## NeighborhoodJefferson Park
## NeighborhoodKenwood
## NeighborhoodLake View
## NeighborhoodLincoln Park
## NeighborhoodLincoln Square
## NeighborhoodLogan Square
## NeighborhoodLoop
## NeighborhoodLower West Side
## NeighborhoodMcKinley Park
## NeighborhoodMontclaire
## NeighborhoodMorgan Park
## NeighborhoodMount Greenwood
## NeighborhoodNear North Side
## NeighborhoodNear South Side
## NeighborhoodNear West Side
## NeighborhoodNew City
## NeighborhoodNorth Center
## NeighborhoodNorth Lawndale
## NeighborhoodNorth Park
## NeighborhoodNorwood Park
## NeighborhoodO'Hare
## NeighborhoodOakland
## NeighborhoodPortage Park
## NeighborhoodPullman
## NeighborhoodRiverdale
## NeighborhoodRogers Park
## NeighborhoodRoseland
## NeighborhoodSouth Chicago
## NeighborhoodSouth Deering
## NeighborhoodSouth Lawndale
## NeighborhoodSouth Shore
## NeighborhoodUptown
## NeighborhoodWashington Heights
## NeighborhoodWashington Park
## NeighborhoodWest Elsdon
## NeighborhoodWest Lawn
## NeighborhoodWest Pullman
## NeighborhoodWest Ridge
## NeighborhoodWest Town
## NeighborhoodWoodlawn
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 22117 on 36869 degrees of freedom
## Residual deviance: 12814 on 36792 degrees of freedom
## AIC: 12970
##
## Number of Fisher Scoring iterations: 19
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: desert ~ CTA_counts + vacant_counts + crime + (1 | Neighborhood)
## Data: model_data_scale
##
## AIC BIC logLik deviance df.resid
## 13139.4 13182.0 -6564.7 13129.4 36865
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.7507 -0.2201 -0.0253 -0.0137 30.0781
##
## Random effects:
## Groups Name Variance Std.Dev.
## Neighborhood (Intercept) 15.97 3.996
## Number of obs: 36870, groups: Neighborhood, 75
##
## Fixed effects:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -6.30657 0.65670 -9.603 < 2e-16 ***
## CTA_counts -0.79401 0.06081 -13.058 < 2e-16 ***
## vacant_counts -0.40397 0.03795 -10.644 < 2e-16 ***
## crime 0.10091 0.02316 4.358 1.31e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) CTA_cn vcnt_c
## CTA_counts 0.008
## vacant_cnts 0.026 0.067
## crime -0.004 -0.007 -0.008
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula:
## desert ~ CTA_counts + crime + vacant_counts + Cancer..All.Sites. +
## Diabetes.related + Dependency + TOTAL.POPULATION + (1 | Neighborhood)
## Data: model_data_scale
## Control: glmerControl(calc.derivs = FALSE, optCtrl = list(maxfun = 1000))
##
## AIC BIC logLik deviance df.resid
## 13099.2 13175.8 -6540.6 13081.2 36861
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.8351 -0.2207 -0.0313 -0.0075 29.1992
##
## Random effects:
## Groups Name Variance Std.Dev.
## Neighborhood (Intercept) 9.784 3.128
## Number of obs: 36870, groups: Neighborhood, 75
##
## Fixed effects:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -6.22074 0.52232 -11.910 < 2e-16 ***
## CTA_counts -0.77853 0.06099 -12.765 < 2e-16 ***
## crime 0.10207 0.02317 4.406 1.05e-05 ***
## vacant_counts -0.41319 0.03791 -10.899 < 2e-16 ***
## Cancer..All.Sites. 3.28898 0.85192 3.861 0.000113 ***
## Diabetes.related -1.95373 0.80128 -2.438 0.014758 *
## Dependency 1.15782 0.69514 1.666 0.095794 .
## TOTAL.POPULATION -0.14705 0.04757 -3.091 0.001992 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) CTA_cn crime vcnt_c C..A.S Dbts.r Dpndnc
## CTA_counts 0.028
## crime -0.004 -0.005
## vacant_cnts 0.019 0.068 -0.008
## Cncr..Al.S. -0.338 -0.007 0.003 -0.012
## Diabts.rltd 0.382 -0.019 -0.001 -0.011 -0.755
## Dependency -0.360 0.033 -0.001 -0.004 -0.150 -0.218
## TOTAL.POPUL 0.001 -0.063 -0.014 0.009 0.006 -0.006 0.010
## convergence code: 0
## failure to converge in 1000 evaluations
Variance ratio \(\approx 3\) indicates much higher variability within a neighborhood than between neighborhoods.
AICs for random intercept models were higher than no pooling model.
Models are an improvement over just using neighborhood level variables, but I’m not convinced that the hierarchical model is an improvement over simpler no pooling or partial pooling.
Unfortunately this project doesn’t really give us any more information about the causes of food deserts that we didn’t really know before. More importantly this project doesn’t help resolve the issue at all.