Hello everyone,
I am trying to complete a propensity score matching analysis using Stata's teffects psmatch command. I've completed the multiple imputation (MI) and I am able to complete the matching using the 'cmdok' option with mi estimate (because teffects psmatch is not officially supported in the MI environment):
mi estimate, cmdok: teffects psmatch (outcome) (binary_exposure confounders), atet nneighbor(4) caliper(0.2) generate(matches)
The issue that I am running into is that the generate(matches) option does not actually generate variable(s) specifying the observation numbers of the nearest neighbours that were matched. This option is required if you wish to perform post-estimation commands (i.e., tebalance summarize) based on the matching results. Therefore, I am wondering why generate(matches) is not working - and whether there is another way to make it work?
I also tried running the teffects psmatch on a specific imputed dataset:
mi xeq 1: teffects psmatch (outcome) (binary_exposure confounders), atet nneighbor(4) caliper(0.2) generate(matches)
Again, generate(matches)failed to create any new variables in my dataset (not even within m=1, in this case).
Overall, the inability to get generate(matches) to work (I also cannot get osample(unmatched) to work) means that I cannot use any of the tebalance post-estimation commands after completing my matching analyses. I want to look at the standardized mean differences within each imputed dataset, to be sure that there is adequate balance (which would mean that the summarized pooled estimate/variance came from imputed datasets where balance was achieved). However, I cannot do this if generate(matches) does not work.
Any help would be much appreciated! Thank you,
I am trying to complete a propensity score matching analysis using Stata's teffects psmatch command. I've completed the multiple imputation (MI) and I am able to complete the matching using the 'cmdok' option with mi estimate (because teffects psmatch is not officially supported in the MI environment):
mi estimate, cmdok: teffects psmatch (outcome) (binary_exposure confounders), atet nneighbor(4) caliper(0.2) generate(matches)
The issue that I am running into is that the generate(matches) option does not actually generate variable(s) specifying the observation numbers of the nearest neighbours that were matched. This option is required if you wish to perform post-estimation commands (i.e., tebalance summarize) based on the matching results. Therefore, I am wondering why generate(matches) is not working - and whether there is another way to make it work?
I also tried running the teffects psmatch on a specific imputed dataset:
mi xeq 1: teffects psmatch (outcome) (binary_exposure confounders), atet nneighbor(4) caliper(0.2) generate(matches)
Again, generate(matches)failed to create any new variables in my dataset (not even within m=1, in this case).
Overall, the inability to get generate(matches) to work (I also cannot get osample(unmatched) to work) means that I cannot use any of the tebalance post-estimation commands after completing my matching analyses. I want to look at the standardized mean differences within each imputed dataset, to be sure that there is adequate balance (which would mean that the summarized pooled estimate/variance came from imputed datasets where balance was achieved). However, I cannot do this if generate(matches) does not work.
Any help would be much appreciated! Thank you,
Comment