Simulating 233066 households for Bucks County
100%|███████████████████████████████████████| 233066/233066 [00:39<00:00, 11925.22it/s]
Simulated 233066 households
SNAP ELIGIBLE INDIVIDUALS: 348288
Estimate the eligible but not enrolled population by zipcode, county, and congressional district using publicly available data.
There are three questions that dictate whether you might be eligible for SNAP in PA:
- How many people live in your household?
- What is your gross monthly income?
- Is anyone elderly or disabled in your household?
The information is gathered by the US Census Bureau down to the zipcode level in the American Community Survey. This project uses data in the ACS to simulate the three dimensions above. By simulating these dimensions, rough estimation for eligibility can be computed.
Using Monte-Carlo methods using randomness derived from US Census data, SNAP eligibility estimates are generated based on local household size, income, and households with elderly or disabled individuals.
A series of PDFs are used to randomly generate a sample of households. Each simulated household is assigned a size (1-7 person households), an income (0 - $200k), and either has or does not have an elderly or disabled household member. Using the US Census data, we created three PDFs, one for each of the three questions that influence SNAP eligibility.
In each locality, we can get the number of total number of households by number of household members. From these numbers, we can compute a PDF (sample shown below in Dist plot).
Philadelphia Household Size PDF | Bucks Household Size PDF |
---|---|
![]() |
![]() |
In each locality, we can get the number of total number of households by income (in 16 buckets < $10k to > $200k). From these numbers, we can compute a PDF (sample shown below in Dist plot).
This presents a challenge because we only have certain data for income by household size. Without factoring in the impact of household size on income in the simulation, the final estimates of SNAP eligibility seem unreasonably high when compare to previous snap participation rates (Cunnyngham, K et al, 2009). This simulation is in simulation_1.py
.
🚧 Work in progress
US Census data provides median household income by household size (B19019). Using methods for estimating standard deviation, this simulation seeks to more accurately simulate SNAP eligibility. US Census data also provides total households by income buckets (B19101) using 16 income buckets (see simulator.INCOMES
in simulator.py
).
This method will use the median income by household size as a seed to adjust the probability distribution function derived from US Census data (example below). These PDFs vary by county, zipcode, and congressional district.
Philadelphia Income PDF | Bucks Income PDF |
---|---|
![]() |
![]() |
These PDFs are adjusted by summing them with a normally distributed probability density function derived for each household size (see household_size_pdfs.py
). Using the median from US Census data and an assumed standard deviation (std = $200k / 6 = $30k), this method sums the two PDFs together and normalizes them into a household size adjusted income probability distribution function.