How can I determine how many people live in a household with at least one non-citizen in 2016 ACS?
With the 2016 ACS data, the CITIZEN variable identifies the information you are looking for. The trick will be converting this person-level variable to a household-level variable. I’d first generate a person-level dummy variable equal to 1 if CITIZEN==3 “Not a citizen”. Then, I’d generate a household-level variable if there is at least one value of the person-level dummy variable equal to 1 within a given household (based on SERIAL). Third, convert your person-level data set into a household-level data set by keeping only observations with PERNUM==1. Finally, run a tabulation using the household-level sampling weight (HHWT). The specific details on how to perform these steps will depend on the specific statistical software you are using. For example, if you are using Stata, one way is to perform the following commands:
generate non_citizen = 1 if citizen==3
replace non_citizen = 0 if citizen!=3
by serial, sort: egen non_citizen_hh = max(non_citizen)
keep if pernum==1
tab non_citizen_hh [fweight = hhwt]