I was trying to match two groups with n1 = 181 and n2 = 39. Because the regular 1:1 or 1:2 matching cannot produce the ideal SMD results, I changed to 1:3 with caliper = 0.2. The results shows good now (most of the SMD < 0.1) but it turns out that the matched samples are n1 = 95 and n2 = 35. I can understand there are some drop-outs in n2. Some values in n2 cannot find the match within the caliper in n1 so they are dropped. But the ratio becomes 1:2.7 right now, which is not the 1:3 I entered at the beginning. This confused me that how R did this matching? I have attached my code below:

set.seed(1000)
match_obj <- matchit(cabg_indication_new ~ age + gender + dm + dialysis + htn + copd + bav + pvd + cvd + previous_cabg + previous_mi + afib + reop, data = project2, method = "nearest", distance ="glm", ratio = 3, caliper = 0.2, replace = FALSE)

summary(match_obj, un = FALSE) 

Here is the results I got in console:

Sample Sizes:
              Control Treated
All             181.       39
Matched (ESS)    87.5      35
Matched          95.       35
Unmatched        86.        4
Discarded         0.        0

Anyone has any explanation on this? Really appreciate it!

1

There are 1 best solutions below

0
On

4 of your n2 units could not find any matches and were dropped, but some of the remaining units could only find 1 or 2 matches. That's perfectly fine and there is nothing that says all units must have exactly 3 matches in order to be validly included in the matched sample. It become critical to include the matching weights in the final analysis, though, as explained in the MatchIt vignette on estimating effects.