Try the machine learning K-nearest-neighbor algorithm on the PUMS data to get another view of the "interesting pattern" from above. (As usual, step one is to replicate my code, then gradually morph it into your own.) How good of a classification can you get?
The PUMS data includes a code, ANCESTR1D, for each person to give detail about their ancestry. The complete codes are below. You might figure out some recoding (note that most of the codes less than 2100 are European, then rest of 2000s are Latin America, 3000 are Caribbean, 4000 MENA, 5000 African, 6000 Indian subcontinent, 7000 Asia, 8000 Pacific, 9000 other). You might make judgements about how to combine groups. Look at average incomes within some of these ancestry groups, are they statistically significantly different? Explain.