I have a sample of people which is biased in age, gender, geography. I am trying to measure various continuous outcomes out of them. I have the census data to tell me the reality of the population distribution at the zipcode level/county/state level and I cannot change my biased sample. How can I alter my sample to be a good representation of the population?
I guess I would like to have a set of weights for each one of the people in my sample, to alter the outcome according to these weights, determined by the mismatch between my sample and the population. These weights should be normalized to 1 to make sure the full aggregated outcome remains the same.
Another idea would be to sub-sample to match the population distribution, but I would potentially lose a lot of data so I'd rather not go that way.
I started reading about the Heckman correction. Is it the place to start? Is there a standard method which can help me achieve that goal? Do you know of any good book that treats this question?