The CDC web page provides access to Life Expectancy estimates for each census tract linked to several geographies units such as States and Counties.
These Life Expectancy estimates are the result of the collaborative project, “U.S. Small-area Life Expectancy Estimates Project (USALEEP),” between the National Center for Health Statistics (NCHS), the National Association for Public Health Statistics and Information Systems (NAPHSIS), and the Robert Wood Johnson Foundation (RWJF).
From the web page, a file with the Life Expectancy for Arizona Census Tracts was downloaded and called “U.S._Life_Expectancy_at_Birth_by_State_and_Census_Tract_-_2010-2015”. The file was filtered to obtain five counties: Cochise, Greenlee, Graham, Santa Cruz and Pima. This file contains 295 observations - where each out of 268 census tracts is associated with a Life Expectancy estimate. The remaining 27 Census Tracts do not have an associated life expectancy value.
The file contains six variables: State, County, Census Tract Number, Life Expectancy, Life Expectancy Range and Life Expectancy Standard Error.
The file was manipulated to obtain the full census tract numbers for each record. This was possible thanks to the “2018 FIPS Codes” from the The United States’ Federal Information Processing Standards (FIPS). The file is available here.
With the full census tracts numbers, it is possible to match census tracts and ZIP codes using the crosswalk files from the United States Department of Housing and Urban Development (HUD).
In principle, one can compute a mean Life Expectancy per ZIP code by aggregating the Life Expectancy estimates at the tract level to the ZIP code level using the RES_RATIO fractions from the ZIP_TRACT crosswalk file. RES_RATIO gives the percentage of residencies in the ZIP code that belongs to the intersection between the ZIP code and a given census tract. For a fixed ZIP code the RES_RATIO for each ZIP_TRACT sum up to 1.0.
However, this approach has two problems.
First, by aggregating at the ZIP code level we lose information. Typically ZIP code areas are larger the the census tracts. According to the University of Central Florida, “There are approximately 50% more census tracts than ZIP Codes”. For example, into the five counties considered, there are 293 census tracts and 112 ZIP codes. Thus, using census tracts provides targeted estimates for smaller geographic areas.
Secondly, and more importantly, census tracts are designed based on statistical sampling. Generally the census tracts have a population size between 1,200 and 8,000 individuals, with an optimum size of 4,000 individuals.
Because Life Expectancy is already estimated at the census tract level, a better approach would be to visualize Life Expectancy at the tract level, and use the TRACT_ZIP crosswalk file to find the most representative ZIP code for a given census tract, as a way to associate census tracts and ZIP codes.
A census tract can overlap multiple ZIP codes. Using RES_RATIO in the TRAC_ZIP crosswalk file we can have the percentage of residencies in the census tract that belongs to a given ZIP code.
That said, the ZIP code does not “replace” the census tract, but can be added as an additional information. The important geographical are for our analysis is the census tract.
As a tool to identify regions with low Life Expectancy, we propose ranking the census tracts by Life Expectancy and use the Leaflet tool to overlay the census tracts geometry with the OpenStreetMap (see section Visualizing Life Expectancy).
According to the HUD, a ZIP code can split into different census tracts and when this happens, that ZIP code is duplicated in the crosswalk file - for example, the ZIP code 03870 splits into the 33015066000 and 33015071000 tracts. Also, a census tract can be split by two or more different ZIP codes - for example, the tract 01001020200 is split by two different ZIP codes, 36008 and 36067.
We verified that the match using ZIP_TRACT or TRACT_ZIP files produces the same result, meaning that any of the files lead to a dataset with 566 rows that combines census tract and ZIP (or ZIP and Census Tract) for the five counties selected and for that, 506 Census Tracts and ZIP (or ZIP and Census Tracts) combinations were associated with a Life Expectancy estimate.
Finally, we decided to use the TRACT_ZIP file because RES_RATIO provides the percentage of residencies in the census tract that belongs to a given ZIP code, and from that we can identify the most representative ZIP code. For example, the 04019002000 census tract in Pima County (Tucson, AZ) has a life expectancy of 68.5 years, and overlaps multiple ZIP codes with the following RES_RATIO values 85713(75.4%), 85726(23.1%), 85716(1%), 85719(0.5%), 85711(0%). Thus the most representative ZIP code in this tract is 85713.
As said before, some tracts do not have Life Expectancy (blank cells) because they were not calculated by CDC, and for others tracts, the value of Life Expectancy is missing because the tract from the HUD TRACT_ZIP file was not found in the CDC Life Expectancy data.
As a note, from the TRACT_ZIP crosswalk file, a vlookup formula was used to match the full Census Tract Number to its corresponding record in the CDC dataset. The final table with the data is into the sheet called “TRACT_ZIP5” in this Google Spreadsheets
Load ZIP Codes geometry:
zip_codes <- zctas(cb = TRUE, starts_with = c("853","855","856","857","859"))
Get Census Tract geometry with population data from ACS:
az_population <- get_acs(geography="tract", variables="B01003_001", state="AZ", geometry=TRUE)
Read Life Expectancy data per tract:
life_expect <- read_csv("./tract_zip_final.csv")
life_expect$LE_TRACT <- as.numeric(life_expect$LE_TRACT)
Add Life Expectancy data by joining with GEOID (full Census Tract Number)
az_life_expect <- az_population %>% right_join(life_expect, by="GEOID")
az_life_expect$POPULATION <- az_life_expect$estimate
The following interactive map uses Leaflet overlay the census tract and ZIP code geometries with the OpenStreetMap. These layers can be activated on of the map using the layer control tool.
By default, both layers are activated and the layer on the top shows Life Expectancy per census tract. One can deactivate them, and to have ZIP code on the top, select first the Life Expectancy layer and then the ZIP code layer.
The ZIP codes and other relevant variables - such as population - associated to each tract are also shown on the “popup” tool. To show the popup click on the Census Tract (or type “esc” to remove the popup). The most representative ZIP code for each census tract is indicated with the highest percentage in the popup (TRACT_ZIP_RES_P).
tract_map<-mapview(az_life_expect, map.type="OpenStreetMap", alpha.regions = 0.2, zcol = "LE_TRACT", layer.name="Life Expectancy", popup=popupTable(az_life_expect, zcol=c('GEOID','COUNTY_NAME','TRACT_ZIP_RES_P','POPULATION','LE_TRACT','LEL1','LEL2','LE_SE')))
zip_map<-mapview(zip_codes, map.type="OpenStreetMap", alpha=0.1, alpha.regions=0, zcol="GEOID10", layer.name="ZIP Codes", popup=FALSE, legend=FALSE, highlight=highlightOptions(weight=2, opacity=1))
zip_map + tract_map
The median Life Expectancy for the five counties in the dataset is 79.1 years (meaning that 50% of the census tracts have a life expectancy lower than 79.1 years) and there are 76 census tracts in the first quartile (25% of the observations with Life Expectancy lower than 76.1 years).
summary(az_life_expect$LE_TRACT)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 67.40 76.10 79.10 78.91 81.30 89.70 60
The following map shows Life Expectancy for census tracts in the first quartile.
The following table shows Life Expectancy in ascending order for 76 tracts. The column “Rank” indicates the census tracts with the lowest Life Expectancy. Note that the top 10 census tracts with the lowest Life Expectancy are in Pima County and those tracts cross the following ZIP codes: 85705, 85757, 85713, 85730, 85712, 85719, 85716 which are the most representative ones according to the table.
| Rank | TRACT | COUNTY_NAME | TRACT_ZIP_RES_P | POPULATION | LE_TRACT | LEL1 | LEL2 | LE_SE |
|---|---|---|---|---|---|---|---|---|
| 1 | 04019001303 | PIMA | 85705(100%) | 2709 | 67.4 | 56.9 | 75.1 | 1.625 |
| 2 | 04019941000 | PIMA | 85757(98.6%), 85746(1.4%) | 4187 | 68.4 | 56.9 | 75.1 | 1.3478 |
| 3 | 04019002000 | PIMA | 85713(75.4%), 85726(23.1%), 85716(1%), 85719(0.5%), 85711(0%) | 6333 | 68.5 | 56.9 | 75.1 | 1.2661 |
| 4 | 04019001304 | PIMA | 85705(100%) | 5474 | 69.5 | 56.9 | 75.1 | 1.6708 |
| 5 | 04019004033 | PIMA | 85730(100%) | 4306 | 69.9 | 56.9 | 75.1 | 1.3979 |
| 6 | 04019003102 | PIMA | 85712(70.3%), 85711(29.7%) | 3728 | 70.2 | 56.9 | 75.1 | 1.3777 |
| 7 | 04019002602 | PIMA | 85719(86.9%), 85705(13.1%) | 4703 | 70.3 | 56.9 | 75.1 | 2.5461 |
| 8 | 04019002802 | PIMA | 85716(91.8%), 85712(8.2%) | 4020 | 70.5 | 56.9 | 75.1 | 1.3154 |
| 9 | 04019003003 | PIMA | 85712(63.7%), 85751(36.3%), 85715(0%) | 4339 | 70.5 | 56.9 | 75.1 | 1.3188 |
| 10 | 04019002801 | PIMA | 85716(100%) | 2032 | 70.7 | 56.9 | 75.1 | 2.2095 |
| 11 | 04003000901 | COCHISE | 85608(59.7%), 85607(40.3%) | 2383 | 71.5 | 56.9 | 75.1 | 2.0216 |
| 12 | 04019002803 | PIMA | 85716(95.3%), 85712(4.7%) | 2322 | 72.0 | 56.9 | 75.1 | 1.8603 |
| 13 | 04003001501 | COCHISE | 85635(100%) | 3173 | 72.1 | 56.9 | 75.1 | 1.8529 |
| 14 | 04019002604 | PIMA | 85705(70%), 85703(30%) | 3537 | 72.4 | 56.9 | 75.1 | 2.1791 |
| 15 | 04019003101 | PIMA | 85712(59.8%), 85716(27.3%), 85711(12.9%) | 5424 | 72.5 | 56.9 | 75.1 | 0.9691 |
| 16 | 04019001801 | PIMA | 85716(95.6%), 85712(4.4%) | 4755 | 72.6 | 56.9 | 75.1 | 1.4559 |
| 17 | 04019003502 | PIMA | 85711(100%) | 4115 | 72.9 | 56.9 | 75.1 | 1.2896 |
| 18 | 04019003501 | PIMA | 85711(100%) | 7761 | 73.2 | 56.9 | 75.1 | 1.2352 |
| 19 | 04019000900 | PIMA | 85701(85.9%), 85713(14.1%) | 2589 | 73.2 | 56.9 | 75.1 | 1.7976 |
| 20 | 04019002603 | PIMA | 85705(100%) | 3451 | 73.3 | 56.9 | 75.1 | 3.3008 |
| 21 | 04019003303 | PIMA | 85711(100%) | 3805 | 73.3 | 56.9 | 75.1 | 1.4035 |
| 22 | 04003000902 | COCHISE | 85607(100%) | 2083 | 73.4 | 56.9 | 75.1 | 1.7846 |
| 23 | 04019003503 | PIMA | 85711(100%) | 4288 | 73.4 | 56.9 | 75.1 | 1.6442 |
| 24 | 04003000301 | COCHISE | 85602(100%), 85627(0%) | 3668 | 73.4 | 56.9 | 75.1 | 1.6654 |
| 25 | 04019001700 | PIMA | 85716(100%) | 2807 | 73.7 | 56.9 | 75.1 | 3.1462 |
| 26 | 04003000700 | COCHISE | 85607(100%) | 4328 | 73.9 | 56.9 | 75.1 | 1.299 |
| 27 | 04019002300 | PIMA | 85713(71.5%), 85725(28.5%) | 5667 | 74.0 | 56.9 | 75.1 | 1.8832 |
| 28 | 04003000800 | COCHISE | 85607(100%) | 3985 | 74.0 | 56.9 | 75.1 | 1.4792 |
| 29 | 04019002202 | PIMA | 85713(100%) | 3213 | 74.1 | 56.9 | 75.1 | 1.5796 |
| 30 | 04019002400 | PIMA | 85713(56.3%), 85714(43.7%), 85723(0%) | 5565 | 74.2 | 56.9 | 75.1 | 1.2148 |
| 31 | 04019002703 | PIMA | 85719(100%) | 3944 | 74.3 | 56.9 | 75.1 | 2.0758 |
| 32 | 04019004039 | PIMA | 85710(100%) | 2379 | 74.3 | 56.9 | 75.1 | 3.5303 |
| 33 | 04019001000 | PIMA | 85701(86.9%), 85713(12%), 85745(1.1%) | 1165 | 74.4 | 56.9 | 75.1 | 2.9741 |
| 34 | 04019002201 | PIMA | 85714(100%), 85713(0%) | 3562 | 74.4 | 56.9 | 75.1 | 3.5876 |
| 35 | 04019004037 | PIMA | 85730(100%) | 2923 | 74.5 | 56.9 | 75.1 | 1.5963 |
| 36 | 04003001602 | COCHISE | 85636(61.3%), 85635(38.7%) | 3205 | 74.6 | 56.9 | 75.1 | 1.5576 |
| 37 | 04019001802 | PIMA | 85716(100%) | 2245 | 74.6 | 56.9 | 75.1 | 2.392 |
| 38 | 04019004506 | PIMA | 85705(100%), 85743(0%) | 5433 | 74.6 | 56.9 | 75.1 | 1.6908 |
| 39 | 04019004513 | PIMA | 85705(100%) | 2651 | 74.8 | 56.9 | 75.1 | 1.753 |
| 40 | 04019003004 | PIMA | 85712(100%), 85715(0%) | 1618 | 74.8 | 56.9 | 75.1 | 1.4646 |
| 41 | 04019004710 | PIMA | 85718(56.6%), 85728(25.1%), 85704(18.4%) | 3715 | 74.8 | 56.9 | 75.1 | 1.3544 |
| 42 | 04019004029 | PIMA | 85730(100%) | 4395 | 74.9 | 56.9 | 75.1 | 1.8312 |
| 43 | 04019002100 | PIMA | 85713(100%) | 6106 | 74.9 | 56.9 | 75.1 | 1.2419 |
| 44 | 04019003002 | PIMA | 85712(54.8%), 85711(45.2%) | 4855 | 74.9 | 56.9 | 75.1 | 1.3869 |
| 45 | 04019004419 | PIMA | 85653(100%) | 6486 | 75.0 | 56.9 | 75.1 | 1.6701 |
| 46 | 04019004035 | PIMA | 85730(100%) | 3718 | 75.0 | 56.9 | 75.1 | 1.2748 |
| 47 | 04019004112 | PIMA | 85706(100%) | 3022 | 75.0 | 56.9 | 75.1 | 1.6205 |
| 48 | 04019003702 | PIMA | 85706(100%) | 6997 | 75.1 | 56.9 | 75.1 | 1.7462 |
| 49 | 04019002901 | PIMA | 85712(100%) | 6327 | 75.2 | 75.2 | 77.5 | 1.3203 |
| 50 | 04019004010 | PIMA | 85710(100%) | 2974 | 75.2 | 75.2 | 77.5 | 1.7438 |
| 51 | 04019001100 | PIMA | 85745(100%) | 2892 | 75.2 | 75.2 | 77.5 | 1.799 |
| 52 | 04019003705 | PIMA | 85734(45.4%), 85756(45.3%), 85706(9.3%) | 6377 | 75.3 | 75.2 | 77.5 | 1.2556 |
| 53 | 04019004505 | PIMA | 85705(100%) | 4592 | 75.3 | 75.2 | 77.5 | 1.2813 |
| 54 | 04019004646 | PIMA | 85741(51.8%), 85652(48.1%), 85742(0.1%), 85743(0%) | 4598 | 75.3 | 75.2 | 77.5 | 1.2487 |
| 55 | 04019004038 | PIMA | 85730(100%) | 3069 | 75.4 | 75.2 | 77.5 | 1.6288 |
| 56 | 04019004512 | PIMA | 85705(100%) | 4132 | 75.4 | 75.2 | 77.5 | 1.2304 |
| 57 | 04009940500 | GRAHAM | 85530(0%), 85550(0%) | 4805 | 75.5 | 75.2 | 77.5 | 1.3414 |
| 58 | 04019940800 | PIMA | 85634(100%), 85639(0%) | 4877 | 75.5 | 75.2 | 77.5 | 1.5879 |
| 59 | 04019004313 | PIMA | 85736(99.6%), 85735(0.4%) | 4488 | 75.5 | 75.2 | 77.5 | 2.4308 |
| 60 | 04019004616 | PIMA | 85704(100%), 85741(0%) | 4132 | 75.5 | 75.2 | 77.5 | 1.1832 |
| 61 | 04019004034 | PIMA | 85730(100%) | 3904 | 75.6 | 75.2 | 77.5 | 2.4948 |
| 62 | 04019001302 | PIMA | 85705(100%) | 1758 | 75.6 | 75.2 | 77.5 | 1.6345 |
| 63 | 04009961300 | GRAHAM | 85546(64.4%), 85548(35.6%) | 3114 | 75.7 | 75.2 | 77.5 | 1.8034 |
| 64 | 04019004424 | PIMA | 85735(99.8%), 85736(0.2%) | 4012 | 75.7 | 75.2 | 77.5 | 2.3246 |
| 65 | 04019004614 | PIMA | 85704(100%), 85741(0%) | 3118 | 75.7 | 75.2 | 77.5 | 1.6419 |
| 66 | 04003001502 | COCHISE | 85635(99.7%), 85613(0.3%) | 3326 | 75.8 | 75.2 | 77.5 | 2.0841 |
| 67 | 04019004069 | PIMA | 85710(67.8%), 85731(32.2%) | 3631 | 75.9 | 75.2 | 77.5 | 1.3457 |
| 68 | 04019004644 | PIMA | 85742(100%) | 2848 | 75.9 | 75.2 | 77.5 | 1.7319 |
| 69 | 04003001100 | COCHISE | 85603(82.6%), 85620(17.1%), 85607(0.3%) | 3260 | 75.9 | 75.2 | 77.5 | 1.5211 |
| 70 | 04003000203 | COCHISE | 85625(43.3%), 85606(41.2%), 85643(14.9%), 85609(0.5%) | 2771 | 75.9 | 75.2 | 77.5 | 2.693 |
| 71 | 04019003802 | PIMA | 85706(99.6%), 85714(0.4%) | 5337 | 76.0 | 75.2 | 77.5 | 1.5589 |
| 72 | 04019003903 | PIMA | 85756(97.5%), 85706(2.5%) | 3472 | 76.0 | 75.2 | 77.5 | 1.6379 |
| 73 | 04003001300 | COCHISE | 85616(99.9%), 85611(0.1%) | 5375 | 76.0 | 75.2 | 77.5 | 1.2629 |
| 74 | 04019004423 | PIMA | 85743(100%) | 4567 | 76.0 | 75.2 | 77.5 | 2.0591 |
| 75 | 04019004049 | PIMA | 85710(99.7%), 85748(0.3%) | 2857 | 76.1 | 75.2 | 77.5 | 2.1032 |
| 76 | 04003002001 | COCHISE | 85650(70.4%), 85615(29.6%) | 5773 | 76.1 | 75.2 | 77.5 | 1.3716 |
The table above can be viewed in this Google Spreadsheet.
U.S. Small-area Life Expectancy Estimates Project: Methodology and Results Summary. https://www.semanticscholar.org/paper/U.S.-Small-area-Life-Expectancy-Estimates-Project%3A-Arias-Escobedo/db35ff1b6bef862dcfb5656b6ea953debef4b0dd
Geographic Terms and Concepts. U.S. Census Bureau, 2010 Census Redistricting Data (Public Law 94-171) Summary File https://www2.census.gov/geo/pdfs/reference/GTC_10.pdf
UCF Libraries. University of Central Florida https://guides.ucf.edu/statistics/zip