Hello I'm using the MatchIt package in R

I have a total of unmatched 116 treated cases and 462 unmatcehd non-treated case

with the command

mod_match_logit = matchit(f.build("treatement_yes_or_no", covariates), 
method = "nearest", distance = "logit", data = df, caliper = 0.05, ratio = 3)

I get then a result of 91 matched treated cases with 248 matched non treated cases. What I don't understand is that, with a 3:1 matching, I should have 91*3 = 273 matched non treated cases (and not 248). Per default is the command replace set to F in MatchIt, so it doesn't explain the difference for me. What am I missing?

  • 1
    $\begingroup$ I'm not familiar with this R package, but it may be that with your caliper width of 0.05, not every case will have at least 3 potentiel matched controls. You might set the caliper width to something larger or smaller to see the number of matches increase or decreased, respectively. $\endgroup$ Oct 14 '18 at 22:43

The ratio argument sets the maximum number of controls to match to each treated unit. If there aren't enough control units, you won't get 3 control units per treated unit, but matchit will issue a warning. If you use a caliper and there are treated units for which there are fewer than 3 controls in its acceptable region, some treated units will not have 3 controls (but there won't be a warning). You can take a look at which treated units have fewer than 3 matches by looking at mod_match_logit$match.matrix. The ones with "NA" are ones that don't have all the matches.

Also, I noticed you're using my package cobalt based on your use of f.build. I hope it's working well for you.

  • $\begingroup$ Hello @Noah. Thank you very much for your very helpful answer. Yes I'm using your package which I find great! I'm actually the guy who wrote 2 days ago with the question about reference for the value of SMD to use! If I may take the opportunity, I have a side question related to this one. I tried to make a matching with my database with ratio 1, caliper 0.7, max value of SMD 0.1, repeated the operation 2000x and chose the match with the max. num. of matched subject in the treated group. I repeated the operation with ratio 3 but it could produce any model. Do you know why? Many many thanks! $\endgroup$
    – ecjb
    Oct 17 '18 at 6:32
  • 1
    $\begingroup$ @ecjb, email me or ask a new question on SE. These questions are better asked on StackOverflow because they are solely about software and not statistics. $\endgroup$
    – Noah
    Oct 17 '18 at 16:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.