Finds the largest matched sample with maximum absolute SMD below
balance_threshold. Uses an iterative caliper-tightening
heuristic over morie_matching_nearest_neighbor; for an
exact mixed-integer-programming alternative see
designmatch::cardmatch.
References
Zubizarreta, J. R. (2012). Using mixed integer programming for matching in an observational study of kidney failure after surgery. JASA, 107(500), 1360–1371.
Examples
# \donttest{
set.seed(1)
df <- data.frame(y = rnorm(200), d = rbinom(200, 1, 0.4),
x1 = rnorm(200), x2 = rnorm(200))
morie_matching_cardinality(df, "d", c("x1", "x2"),
balance_threshold = 0.1)
#> $matched_data
#> y d x1 x2
#> 1 -0.626453811 1 0.893673702 0.077303123
#> 2 0.183643324 0 -1.047298149 -0.296868642
#> 3 -0.835628612 1 1.971337386 -1.183242240
#> 4 1.595280802 1 -0.383632106 0.011292688
#> 5 0.329507772 1 1.654145302 0.991601036
#> 6 -0.820468384 1 1.512212694 1.593967454
#> 8 0.738324705 1 0.567220915 -0.249610933
#> 9 0.575781352 0 -1.024548480 1.159424527
#> 10 -0.305388387 1 0.323006503 -1.114222348
#> 11 1.511781168 1 1.043612458 -2.528500689
#> 12 0.389843236 0 0.099078487 -0.935902559
#> 13 -0.621240581 1 -0.454136909 -0.967239458
#> 14 -2.214699887 1 -0.655781852 0.047488592
#> 15 1.124930918 1 -0.035922423 -0.403736793
#> 16 -0.044933609 0 1.069161461 0.231496128
#> 17 -0.016190263 0 -0.483974930 -0.422372408
#> 18 0.943836211 0 -0.121010111 0.374118395
#> 19 0.821221195 1 -1.294140004 -0.366005775
#> 20 0.593901321 1 0.494312836 1.190101447
#> 21 0.918977372 0 1.307901520 -0.737327525
#> 22 0.782136301 0 1.497041009 0.290666645
#> 23 0.074564983 1 0.814702731 -0.884849568
#> 24 -1.989351696 0 -1.869788790 0.208006479
#> 25 0.619825748 0 0.482029504 -0.047730172
#> 28 -1.470752384 1 0.170489471 1.180213666
#> 29 -0.478150055 1 -0.864035954 0.681399923
#> 30 0.417941560 1 0.679230774 0.143247631
#> 31 1.358679552 1 -0.327101015 -1.192316444
#> 34 -0.053805041 0 1.364434929 -0.451773753
#> 35 -1.377059557 0 -0.334281365 1.642028213
#> 36 -0.414994563 1 0.732750042 -0.769592322
#> 37 -0.394289954 1 0.946585640 0.303360961
#> 38 -0.059313397 0 0.004398704 1.281737421
#> 39 1.100025372 0 -0.352322306 0.602222795
#> 40 0.763175748 1 -0.529695509 -0.307022265
#> 41 -0.164523596 0 0.739589226 -0.418418103
#> 43 0.696963375 0 0.246210844 0.513481115
#> 44 0.556663199 1 -0.289499367 0.018607400
#> 45 -0.688755695 0 -2.264889356 1.318448972
#> 46 -0.707495157 0 -1.408850456 -0.065832000
#> 47 0.364581962 0 0.916019329 -0.700296078
#> 48 0.768532925 1 -0.191278951 0.537326132
#> 49 -0.112346212 0 0.803283216 -2.201782322
#> 50 0.881107726 0 1.887474463 0.391973744
#> 51 0.398105880 1 1.473881181 0.496960952
#> 52 -0.612026393 0 0.677268492 -0.224874715
#> 53 0.341119691 0 0.379962687 -1.117143165
#> 54 -1.129363096 0 -0.192798426 -0.394994603
#> 55 1.433023702 0 1.577891795 1.549830342
#> 56 1.980399899 1 0.596234109 -0.743514480
#> 58 -1.044134626 1 -0.155642535 0.812245442
#> 59 0.569719627 1 -1.918909820 -0.501310657
#> 60 -0.135054604 0 -0.195258846 -0.510886566
#> 61 2.401617761 0 -2.592327670 -1.215364041
#> 63 0.689739362 0 -0.635543001 0.701239300
#> 66 0.188792300 1 0.612218174 1.096640215
#> 67 -1.804958629 1 0.678340177 -0.247509677
#> 68 1.465554862 0 0.567951972 -0.159901713
#> 69 0.153253338 0 -0.572542604 -0.625778251
#> 70 2.172611670 1 -1.363291256 0.900434636
#> 71 0.475509529 0 -0.388722244 -0.994193629
#> 72 -0.709946431 1 0.277914132 0.849250386
#> 73 0.610726353 1 -0.823081122 0.805702289
#> 74 -0.934097632 0 -0.068840934 -0.467600936
#> 75 -1.253633400 0 -1.167662326 0.848420314
#> 76 0.291446236 0 -0.008309014 0.986769864
#> 77 -0.443291873 1 0.128855402 0.575620289
#> 78 0.001105352 0 -0.145875628 2.024842045
#> 79 0.074341324 0 -0.163910957 -1.962353191
#> 80 -0.589520946 1 1.763552003 -1.164920931
#> 81 -0.568668733 1 0.762586512 -1.376519214
#> 82 -0.135178615 0 1.111431081 0.167679934
#> 83 1.178086997 1 -0.923206953 1.584629079
#> 84 -1.523566800 1 0.164341838 1.677888953
#> 85 0.593946188 0 1.154825187 0.488296698
#> 86 0.332950371 0 -0.056521425 0.878673263
#> 87 1.063099837 0 -2.129360648 -0.144874874
#> 88 -0.304183924 0 0.344845762 0.468971760
#> 89 0.370018810 1 -1.904955446 0.376235477
#> 90 0.267098791 0 -0.811170153 -0.761040275
#> 91 -0.542520031 0 1.324004321 -0.293294934
#> 92 1.207867806 1 0.615636849 -0.134841264
#> 93 1.160402616 0 1.091668956 1.393845816
#> 94 0.700213650 0 0.306604862 -1.036988690
#> 95 1.586833455 0 -0.110158762 -2.114335148
#> 96 0.558486426 0 -0.924312773 0.768278218
#> 98 -0.573265414 0 0.045010598 -0.436106923
#> 99 -1.224612615 1 -0.715128401 0.904705031
#> 100 -0.473400636 0 0.865223100 -0.763086265
#> 101 -0.620366677 0 1.074440958 -0.341066980
#> 102 0.042115873 1 1.895654774 1.502424534
#> 103 -0.910921649 1 -0.602997304 0.528307712
#> 104 0.158028772 1 -0.390867821 0.542191355
#> 105 -0.654584644 0 -0.416222032 -0.136673356
#> 106 1.767287269 1 -0.375657423 -1.136733853
#> 107 0.716707476 0 -0.366630946 -1.496627154
#> 108 0.910174229 1 -0.295677453 -0.223385644
#> 109 0.384185358 1 1.441820410 2.001719228
#> 110 1.682176081 0 -0.697538292 0.221703816
#> 111 -0.635736454 1 -0.388167506 0.164372909
#> 112 -0.461644730 0 0.652536452 0.332623609
#> 113 1.432282239 0 1.124772447 -0.385207999
#> 114 -0.650696353 1 -0.772110803 -1.398754027
#> 115 -0.207380744 1 -0.508086216 2.675740796
#> 116 -0.392807929 0 0.523620590 -0.423686089
#> 117 -0.319992869 1 1.017754227 -0.298601512
#> 120 -0.177330482 1 1.709121032 -0.247303918
#> 121 -0.505957462 1 1.435069572 -0.255510379
#> 122 1.343038825 1 -0.710371146 -1.786938100
#> 123 -0.214579409 0 -0.065067574 1.784662816
#> 124 -0.179556530 0 -1.759468735 1.763586348
#> 125 -0.100190741 0 0.569722972 0.689600222
#> 126 0.712666307 1 1.612346798 -1.100740644
#> 127 -0.073564404 1 -1.637280647 0.714509357
#> 128 -0.037634171 1 -0.779568513 -0.246470317
#> 129 -0.681660479 1 -0.641176934 -0.319786166
#> 130 -0.324270272 1 -0.681131394 1.362644293
#> 131 0.060160440 1 -2.033285596 -1.227882590
#> 133 0.531496193 0 -1.531798140 -0.731194999
#> 134 -1.518394082 0 -0.024997639 0.019752007
#> 135 0.306557861 0 0.592984721 -1.572863915
#> 137 -0.300976127 0 0.892008392 0.715932089
#> 138 -0.528279904 0 -0.025715071 0.465214906
#> 139 -0.652094781 0 -0.647660451 -0.973902306
#> 140 -0.056896778 1 0.646359415 0.559217730
#> 142 1.176583312 1 1.772611185 -0.340484927
#> 143 -1.664972436 1 -0.018259711 0.713033195
#> 145 -1.115920105 0 0.205162903 -0.036402623
#> 147 2.087166546 1 -1.366111931 0.847792797
#> 148 0.017395620 0 -0.424102260 -1.850388849
#> 150 -1.640605534 1 -2.342723120 -0.255248113
#> 151 0.450187101 1 0.961696633 0.060921227
#> 153 -0.318068375 0 -0.752877279 1.829730485
#> 154 -0.929362147 1 -1.555611593 -1.429916216
#> 155 -1.487460310 1 -1.453893738 0.254137143
#> 157 1.000028804 0 0.509369407 0.002415809
#> 158 -0.621266695 0 -2.097882960 0.509665571
#> 159 -1.384426847 1 -1.004361979 -1.084720001
#> 160 1.869290622 1 0.535771722 0.704832977
#> 161 0.425100377 1 -0.453037085 0.330976350
#> 162 -0.238647101 0 2.165368502 0.976327473
#> 163 1.058483049 0 1.245746673 -0.843339880
#> 164 0.886422651 1 0.595498034 -0.970579905
#> 165 -0.619243048 1 0.004884450 -1.771531349
#> 166 2.206102465 1 0.279360782 -0.322470342
#> 167 -0.255027030 0 -0.705906125 -1.338800742
#> 168 -1.424494650 1 0.628017153 0.688156028
#> 169 -0.144399602 0 1.480213960 0.071280652
#> 170 0.207538339 1 1.083429910 2.189752359
#> 171 2.307978399 0 -0.813244257 -1.157707599
#> 173 0.456998805 0 -0.109655699 -0.527368362
#> 174 -0.077152935 0 0.440889371 -1.456628011
#> 175 -0.334000842 1 1.350993980 0.572967370
#> 177 0.787639606 1 0.364384593 -1.055185019
#> 178 2.075245009 0 0.233499835 -0.733111877
#> 179 1.027392439 1 1.193955261 0.210907264
#> 180 1.207908398 1 -0.027909972 -0.998920727
#> 181 -1.231323422 0 -0.357298855 1.077850323
#> 182 0.983895570 1 -1.146814136 -1.198974383
#> 183 0.219924804 1 -0.517420484 0.216637035
#> 184 -1.467250029 0 -0.362123773 0.143087030
#> 185 0.521022743 0 2.350554326 -1.065750091
#> 187 1.464587312 0 -0.166703279 -0.656179477
#> 189 -0.430211754 1 -1.972934934 1.556052636
#> 190 -0.926109497 1 0.514671633 -1.040796434
#> 191 -0.177103961 0 -1.090573584 0.930572409
#> 192 0.402011779 0 2.284659326 -0.075445931
#> 193 -0.731748173 1 -0.885617573 -1.967195349
#> 194 0.830373168 1 0.111106430 -0.755903643
#> 195 -1.208082786 1 3.810276681 0.461149161
#> 196 -1.047984413 1 -1.108909998 0.145106631
#> 197 1.441157707 0 0.307566624 -2.442311321
#> 198 -1.015847465 0 -1.106894472 0.580318685
#> 199 0.411974712 0 0.347653649 0.655051998
#>
#> $n_treated
#> [1] 87
#>
#> $n_matched_control
#> [1] 87
#>
#> $match_pairs
#> treated_idx control_idx distance
#> 1 1 45 2.339704e-03
#> 3 3 98 3.540272e-03
#> 4 4 185 1.453433e-03
#> 5 5 38 7.838973e-02
#> 6 6 123 9.362749e-02
#> 8 8 110 6.467675e-03
#> 10 10 87 5.886455e-04
#> 11 11 61 2.760086e-02
#> 13 13 71 2.208290e-04
#> 14 14 21 1.388377e-03
#> 15 15 100 4.632166e-04
#> 19 19 12 3.802549e-03
#> 20 20 50 5.298584e-02
#> 23 23 46 1.343788e-02
#> 28 28 124 3.913746e-02
#> 29 29 157 2.900059e-02
#> 30 30 75 5.797689e-03
#> 31 31 133 3.534101e-03
#> 36 36 24 1.163707e-02
#> 37 37 82 1.515639e-02
#> 40 40 60 1.536325e-02
#> 44 44 41 6.272776e-03
#> 48 48 138 1.397223e-03
#> 51 51 125 3.571626e-02
#> 56 56 173 1.371668e-02
#> 58 58 169 1.993963e-02
#> 59 59 174 4.294561e-03
#> 66 66 137 5.813640e-02
#> 67 67 134 2.484495e-03
#> 70 70 191 2.978721e-02
#> 72 72 22 1.623428e-02
#> 73 73 39 3.636856e-03
#> 77 77 88 4.532204e-03
#> 80 80 74 6.251279e-03
#> 81 81 90 1.795600e-03
#> 83 83 76 5.068188e-02
#> 84 84 35 5.031531e-02
#> 89 89 163 6.316226e-03
#> 92 92 68 9.472779e-03
#> 99 99 112 6.455862e-03
#> 102 102 93 9.206582e-02
#> 103 103 34 4.314330e-02
#> 104 104 18 1.316684e-02
#> 106 106 135 1.124265e-02
#> 108 108 47 7.297940e-04
#> 109 109 78 1.306251e-01
#> 111 111 52 7.126727e-03
#> 114 114 167 1.857317e-02
#> 115 115 162 1.378401e-01
#> 117 117 113 9.521087e-03
#> 120 120 96 6.091332e-03
#> 121 121 25 3.662881e-02
#> 122 122 95 1.928137e-02
#> 126 126 54 2.108394e-03
#> 127 127 145 4.438104e-03
#> 128 128 17 1.265570e-02
#> 129 129 178 1.435457e-02
#> 130 130 181 3.370742e-02
#> 131 131 79 1.404854e-03
#> 140 140 199 4.862865e-03
#> 142 142 91 2.814785e-02
#> 143 143 16 1.088170e-02
#> 147 147 198 3.549427e-02
#> 150 150 139 1.007533e-02
#> 151 151 63 1.550937e-03
#> 154 154 148 6.041891e-03
#> 155 155 158 5.631511e-05
#> 159 159 171 5.965309e-04
#> 160 160 192 1.875675e-02
#> 161 161 101 1.434543e-02
#> 164 164 187 2.645183e-03
#> 165 165 49 2.451659e-02
#> 166 166 116 9.470299e-04
#> 168 168 86 1.741546e-02
#> 170 170 55 9.565551e-02
#> 175 175 85 3.499962e-02
#> 177 177 94 1.014170e-03
#> 179 179 43 1.575069e-02
#> 180 180 53 9.362846e-03
#> 182 182 107 2.499405e-03
#> 183 183 184 2.584181e-03
#> 189 189 9 4.460973e-03
#> 190 190 69 3.433886e-03
#> 193 193 197 4.647290e-04
#> 194 194 2 2.976503e-05
#> 195 195 153 9.484857e-02
#> 196 196 105 1.553479e-03
#>
#> $method
#> [1] "cardinality"
#>
#> $details
#> $details$engine
#> [1] "native-greedy-1d"
#>
#> $details$caliper
#> NULL
#>
#> $details$replace
#> [1] FALSE
#>
#> $details$n_neighbors
#> [1] 1
#>
#> $details$alpha
#> [1] 0.05
#>
#> $details$propensity_logit_sd
#> [1] 0.2393504
#>
#> $details$balance_threshold
#> [1] 0.1
#>
#>
#> attr(,"class")
#> [1] "morie_match_result" "list"
# }
