Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

use caliper but get completely different results than last version #48

Closed
youblue opened this issue Nov 19, 2020 · 3 comments
Closed

use caliper but get completely different results than last version #48

youblue opened this issue Nov 19, 2020 · 3 comments

Comments

@youblue
Copy link

youblue commented Nov 19, 2020

If not using caliper the results keep the same. But when I used the same program with selected caliper before, the results completely changed.

@ngreifer
Copy link
Collaborator

ngreifer commented Nov 19, 2020

Yes, the behavior when using calipers has changed. To replicate old results, you must use an older version of MatchIt. That said, if you did not set a seed when you originally ran the analysis, your results will not replicate anyway.

In the past, matchit() would randomly select one control unit within the caliper of a treated unit. Now, matchit() selects the closest control unit within the caliper of the treated unit, which makes more sense and should yield better matches. Because the old version used a random selection of units, it would be impossible to replicate results without setting a seed prior to calling matchit(). Now, the matched set will be the same every time when a caliper is used. So, even though older results are no longer replicable, the new version improves replicability moving forward and should produce better matches, especially when wider calipers are used.

@youblue
Copy link
Author

youblue commented Nov 19, 2020

Thank you so much for the clarification!

@youblue
Copy link
Author

youblue commented Nov 20, 2020

Can I ask a follow-up question?

With the new behavior of caliper, does it mean that the matched controls selected when using caliper are always a subset of those selected without using caliper, given all the other parameters are the same (using method = "nearest")?
Since caliper behaviors only helps to remove those "outliers" but for those matched ones they are always the nearest get selected, there's no randomness any more?

Thank you so much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants