I am hoping to calculate personal income quintiles using the ACS 2018. This seems like a simple task, however, I am unable to match other data sources’ reports of personal incomes. While my sample is slightly more specific than those of these data sources, my numbers just seem too low.
I am filtering for the following: 1) age between 20 - 49, inclusive, 2) family size < 8, and 3) not married in the year 2017 (so single, or got married after 2017). I also drop some observations that would probably have incorrect data/would wrongly skew my results, such as dropping those with negative family income and personal income. I use pernum == 1 based on my readings of some other threads. Dropping pernum == 1 does not improve my results. I am interested in personal income (earned and unearned income), so I use variable INCTOT to calculate quintiles.
Here is my code using R:
acs_raw = read.dta13("[path to dta file]")
acs18 = acs_raw %>% filter(year == 2018)
acs18 = acs18 %>% group_by(serial) %>% mutate(famsize = n()) %>% ungroup()
acs18 = acs18 %>% filter(pernum ==1,
age %in% c(20:49) &
ftotinc >= 0 &
ftotinc != 9999999 &
inctot >= 0 &
inctot != 9999999 &
famsize < 8 &
(yrmarr == 0 | yrmarr > 2017) # single in 2017
)
wtd.quantile(acs18$inctot,
weights = acs18$perwt, probs = c(0.2, 0.4,0.6, 0.8))
The above code produces the quinties:
12.3k (20%), 26k (40%), 40k (60%), 62k (80%).
These seem too low. Can anyone help? Thank you!