How to create matched sample for sample selection method to perform? I'm working on a project in which I only use sub sample (say the immigrant households of all households), and there is a sample selection problem that I apply the standard Heckman's sample selection approach. The question is the full sample is heterogeneous and not completely compatible to the sub sample, one of my supervisors criticize this and urges me to create some more "balancing" data at the first stage of heckman selection model,at least as a robustness check. One approach come into my mind is nearest neighbor matching, but in literature it's mainly used to deal with endogenity of treatment variable, not selection variable, I'm not sure if it's appropriate to use it in this case?If you know any literature has used this method, please attach it so I can cite to justify my practice, if it's not , please give me some suggestion which methods I can use to achieve my goal. Thank you so much
 A: Nearest neighbor matching or matching in general is not only used for "the endogeneity of treatment variables". In this sense being a migrant household is also a treatment into which households have self-selected. So whether you want to see if a job program was successful or whether migrant families have higher income, both issues boil down to an omitted variables problem that leads to endogeneity of the "treatment". In the job program case it's likely unobserved ability, in the migration case it is unobserved factors that led to the choice of migrating which are likely to be correlated with earnings in the host country, e.g. if the most educated families emigrate from their home countries.
Matching in your context makes sense as a robustness check.  When you estimate your selection model with the matched sample you perform your analysis on treated and non-treated households that differ in their treatment status but are similar with regards to their observable characteristics. If you find the same results compared to the whole sample then you can be arguably more confident that the results are not driven by mere heterogeneity in the covariates rather than the treatment status. However, the success of such a robustness check largely depends on what variables you can observe. Suppose you are matching on average age in the household but you don't observe the number of household members and their employment status, you might match


*

*a migrant family with father, mother, one child - average age 21

*a native family with father, mother, four children - average age 21.5


then in your analysis it will turn out that the migrant family has a higher income than the native family, so being a migrant increases your income. Is this the true effect? Probably not. Since one family has more children but you don't observe the household's members employment status, the migrant family might find it easier to leave their child in day-care and both parents work, whereas this is much more difficult if you have four children (especially if some of them are very young). This is a case where matching would have made matters worse if the whole sample is somewhat more similar. Note though that this is an artificial example which might not even make sense (likely you will have matched on other characteristics that could alleviate the problem) but it is worth to think about who you match on what variables.
In terms of application, Stata has facilities for nearest neighbore matching with nnmatch and pscore2. Personally I prefer the latter because it is somewhat more straight forward. After you perform the matching you obtain an id variable for treated and control cases that were successfully matched. If you have panel data, the whole procedure gets a little more complicated but it is still straight forward if you know how to do it. The procedure is described in this answer. After you have done the matching you would simply keep the matched sample and perform your analysis as usual.
An example where a similar robustness check is used is difference in differences. There you would match treated and non-treated units based on their pre-treatment outcome values in order to be more confident about the parallel trends assumption. An example of this type of robustness check using matching methods is this paper.
