Without a completereprex
(see the FAQ), including representative data.
Alternatively please explain what you want to do differently from the help("GemMatch")
example
library(Matching)
#> Loading required package: MASS
#> ##
#> ## Matching (Version 4.10-8, Build Date: 2022-11-03)
#> ## See http://sekhon.berkeley.edu/matching for additional documentation.
#> ## Please cite software as:
#> ## Jasjeet S. Sekhon. 2011. ``Multivariate and Propensity Score Matching
#> ## Software with Automated Balance Optimization: The Matching package for R.''
#> ## Journal of Statistical Software, 42(7): 1-52.
#> ##
data(lalonde)
attach(lalonde)
#The covariates we want to match on
X = cbind(age, educ, black, hisp, married, nodegr, u74, u75, re75, re74)
#The covariates we want to obtain balance on
BalanceMat <- cbind(age, educ, black, hisp, married, nodegr, u74, u75, re75, re74,
I(re74*re75))
#
#Let's call GenMatch() to find the optimal weight to give each
#covariate in 'X' so as we have achieved balance on the covariates in
BalanceMat’. This is only an example so we want GenMatch to be quick
#so the population size has been set to be only 16 via the 'pop.size'
#option. This is *WAY* too small for actual problems.
#For details see http://sekhon.berkeley.edu/papers/MatchingJSS.pdf.
#
genout <- GenMatch(Tr=treat, X=X, BalanceMatrix=BalanceMat, estimand="ATE", M=1,
pop.size=16, max.generations=10, wait.generations=1)
#> Loading required namespace: rgenoud
#>
#>
#> Thu Jun 1 02:50:24 2023
#> Domains:
#> 0.000000e+00 <= X1 <= 1.000000e+03
#> 0.000000e+00 <= X2 <= 1.000000e+03
#> 0.000000e+00 <= X3 <= 1.000000e+03
#> 0.000000e+00 <= X4 <= 1.000000e+03
#> 0.000000e+00 <= X5 <= 1.000000e+03
#> 0.000000e+00 <= X6 <= 1.000000e+03
#> 0.000000e+00 <= X7 <= 1.000000e+03
#> 0.000000e+00 <= X8 <= 1.000000e+03
#> 0.000000e+00 <= X9 <= 1.000000e+03
#> 0.000000e+00 <= X10 <= 1.000000e+03
#>
#> Data Type: Floating Point
#> Operators (code number, name, population)
#> (1) Cloning........................... 1
#> (2) Uniform Mutation.................. 2
#> (3) Boundary Mutation................. 2
#> (4) Non-Uniform Mutation.............. 2
#> (5) Polytope Crossover................ 2
#> (6) Simple Crossover.................. 2
#> (7) Whole Non-Uniform Mutation........ 2
#> (8) Heuristic Crossover............... 2
#> (9) Local-Minimum Crossover........... 0
#>
#> SOFT Maximum Number of Generations: 10
#> Maximum Nonchanging Generations: 1
#> Population size : 16
#> Convergence Tolerance: 1.000000e-03
#>
#> Not Using the BFGS Derivative Based Optimizer on the Best Individual Each Generation.
#> Not Checking Gradients before Stopping.
#> Using Out of Bounds Individuals.
#>
#> Maximization Problem.
#> GENERATION: 0 (initializing the population)
#> Lexical Fit..... 1.965387e-01 1.965387e-01 2.567638e-01 2.567638e-01 3.173114e-01 3.173114e-01 3.173114e-01 3.173114e-01 4.790353e-01 5.357585e-01 5.638495e-01 5.638495e-01 7.928051e-01 8.747544e-01 9.005085e-01 9.726726e-01 9.757135e-01 9.972415e-01 9.972415e-01 9.999977e-01 1.000000e+00 1.000000e+00
#> #unique......... 16, #Total UniqueCount: 16
#> var 1:
#> best............ 2.831305e+02
#> mean............ 4.339086e+02
#> variance........ 9.205897e+04
#> var 2:
#> best............ 4.582351e+01
#> mean............ 4.808526e+02
#> variance........ 9.951977e+04
#> var 3:
#> best............ 6.079865e+01
#> mean............ 4.581846e+02
#> variance........ 7.144076e+04
#> var 4:
#> best............ 1.419532e+02
#> mean............ 4.329569e+02
#> variance........ 6.749356e+04
#> var 5:
#> best............ 6.269561e+01
#> mean............ 5.433120e+02
#> variance........ 1.007233e+05
#> var 6:
#> best............ 4.022851e+02
#> mean............ 3.998682e+02
#> variance........ 6.291170e+04
#> var 7:
#> best............ 3.013591e+01
#> mean............ 4.630557e+02
#> variance........ 9.051718e+04
#> var 8:
#> best............ 3.071364e+02
#> mean............ 4.540889e+02
#> variance........ 8.608832e+04
#> var 9:
#> best............ 1.045635e+02
#> mean............ 2.749121e+02
#> variance........ 6.837157e+04
#> var 10:
#> best............ 9.450274e+01
#> mean............ 6.127432e+02
#> variance........ 1.050091e+05
#>
#> GENERATION: 1
#> Lexical Fit..... 3.173114e-01 3.173114e-01 3.173114e-01 3.173114e-01 3.711480e-01 3.711480e-01 4.054626e-01 4.054626e-01 4.598117e-01 4.796243e-01 4.796243e-01 5.426673e-01 6.956137e-01 7.353599e-01 8.254712e-01 9.304397e-01 9.758377e-01 9.972415e-01 9.991359e-01 9.999999e-01 1.000000e+00 1.000000e+00
#> #unique......... 12, #Total UniqueCount: 28
#> var 1:
#> best............ 3.299557e+02
#> mean............ 2.640421e+02
#> variance........ 3.959094e+04
#> var 2:
#> best............ 4.294913e+01
#> mean............ 2.157304e+02
#> variance........ 9.514945e+04
#> var 3:
#> best............ 6.079865e+01
#> mean............ 2.973923e+02
#> variance........ 6.926883e+04
#> var 4:
#> best............ 1.419532e+02
#> mean............ 3.992844e+02
#> variance........ 6.263337e+04
#> var 5:
#> best............ 6.269561e+01
#> mean............ 3.973911e+02
#> variance........ 1.003613e+05
#> var 6:
#> best............ 5.576743e+02
#> mean............ 3.694883e+02
#> variance........ 2.014507e+04
#> var 7:
#> best............ 3.013591e+01
#> mean............ 3.757987e+02
#> variance........ 8.645335e+04
#> var 8:
#> best............ 4.150622e+02
#> mean............ 3.565758e+02
#> variance........ 2.384791e+04
#> var 9:
#> best............ 1.045635e+02
#> mean............ 2.224873e+02
#> variance........ 3.323147e+04
#> var 10:
#> best............ 3.818596e+02
#> mean............ 6.225901e+02
#> variance........ 1.460706e+05
#>
#> GENERATION: 2
#> Lexical Fit..... 3.173114e-01 3.173114e-01 3.173114e-01 3.173114e-01 3.711480e-01 3.711480e-01 4.054626e-01 4.054626e-01 4.598117e-01 4.796243e-01 4.796243e-01 5.426673e-01 6.956137e-01 7.353599e-01 8.254712e-01 9.304397e-01 9.758377e-01 9.972415e-01 9.991359e-01 9.999999e-01 1.000000e+00 1.000000e+00
#> #unique......... 12, #Total UniqueCount: 40
#> var 1:
#> best............ 3.299557e+02
#> mean............ 3.560685e+02
#> variance........ 1.452756e+04
#> var 2:
#> best............ 4.294913e+01
#> mean............ 4.720064e+01
#> variance........ 9.665896e+02
#> var 3:
#> best............ 6.079865e+01
#> mean............ 1.694049e+02
#> variance........ 5.988433e+04
#> var 4:
#> best............ 1.419532e+02
#> mean............ 2.082209e+02
#> variance........ 2.321037e+04
#> var 5:
#> best............ 6.269561e+01
#> mean............ 2.029439e+02
#> variance........ 7.731470e+04
#> var 6:
#> best............ 5.576743e+02
#> mean............ 4.354230e+02
#> variance........ 7.085862e+03
#> var 7:
#> best............ 3.013591e+01
#> mean............ 1.607625e+02
#> variance........ 6.746991e+04
#> var 8:
#> best............ 4.150622e+02
#> mean............ 3.494544e+02
#> variance........ 2.621848e+03
#> var 9:
#> best............ 1.045635e+02
#> mean............ 1.705721e+02
#> variance........ 2.688426e+04
#> var 10:
#> best............ 3.818596e+02
#> mean............ 2.915842e+02
#> variance........ 7.914410e+04
#>
#> GENERATION: 3
#> Lexical Fit..... 3.173114e-01 3.173114e-01 3.173114e-01 3.173114e-01 3.711480e-01 3.711480e-01 4.054626e-01 4.054626e-01 4.598117e-01 4.796243e-01 4.796243e-01 5.426673e-01 6.956137e-01 7.353599e-01 8.254712e-01 9.304397e-01 9.758377e-01 9.972415e-01 9.991359e-01 9.999999e-01 1.000000e+00 1.000000e+00
#> #unique......... 12, #Total UniqueCount: 52
#> var 1:
#> best............ 3.299557e+02
#> mean............ 3.156883e+02
#> variance........ 6.347119e+02
#> var 2:
#> best............ 4.294913e+01
#> mean............ 5.417629e+01
#> variance........ 1.679504e+03
#> var 3:
#> best............ 6.079865e+01
#> mean............ 6.985327e+01
#> variance........ 4.963423e+02
#> var 4:
#> best............ 1.419532e+02
#> mean............ 1.435664e+02
#> variance........ 6.771293e+02
#> var 5:
#> best............ 6.269561e+01
#> mean............ 6.184391e+01
#> variance........ 2.193731e+00
#> var 6:
#> best............ 5.576743e+02
#> mean............ 4.942367e+02
#> variance........ 7.572460e+03
#> var 7:
#> best............ 3.013591e+01
#> mean............ 5.851087e+01
#> variance........ 8.565154e+03
#> var 8:
#> best............ 4.150622e+02
#> mean............ 3.686187e+02
#> variance........ 3.207996e+03
#> var 9:
#> best............ 1.045635e+02
#> mean............ 1.037300e+02
#> variance........ 3.372995e+00
#> var 10:
#> best............ 3.818596e+02
#> mean............ 2.483674e+02
#> variance........ 2.473883e+04
#>
#> 'wait.generations' limit reached.
#> No significant improvement in 1 generations.
#>
#> Solution Lexical Fitness Value:
#> 3.173114e-01 3.173114e-01 3.173114e-01 3.173114e-01 3.711480e-01 3.711480e-01 4.054626e-01 4.054626e-01 4.598117e-01 4.796243e-01 4.796243e-01 5.426673e-01 6.956137e-01 7.353599e-01 8.254712e-01 9.304397e-01 9.758377e-01 9.972415e-01 9.991359e-01 9.999999e-01 1.000000e+00 1.000000e+00
#>
#> Parameters at the Solution:
#>
#> X[ 1] : 3.299557e+02
#> X[ 2] : 4.294913e+01
#> X[ 3] : 6.079865e+01
#> X[ 4] : 1.419532e+02
#> X[ 5] : 6.269561e+01
#> X[ 6] : 5.576743e+02
#> X[ 7] : 3.013591e+01
#> X[ 8] : 4.150622e+02
#> X[ 9] : 1.045635e+02
#> X[10] : 3.818596e+02
#>
#> Solution Found Generation 1
#> Number of Generations Run 3
#>
#> Thu Jun 1 02:50:24 2023
#> Total run time : 0 hours 0 minutes and 0 seconds
#The outcome variable
Y=re78/1000
#
# Now that GenMatch() has found the optimal weights, let's estimate
# our causal effect of interest using those weights
#
mout <- Match(Y=Y, Tr=treat, X=X, estimand="ATE", Weight.matrix=genout)
summary(mout)
#>
#> Estimate... 1.7968
#> AI SE...... 0.72812
#> T-stat..... 2.4678
#> p.val...... 0.013596
#>
#> Original number of observations.............. 445
#> Original number of treated obs............... 185
#> Matched number of observations............... 445
#> Matched number of observations (unweighted). 614
#
#Let's determine if balance has actually been obtained on the variables of interest
#
mb <- MatchBalance(treat~age +educ+black+ hisp+ married+ nodegr+ u74+ u75+
re75+ re74+ I(re74*re75),
match.out=mout, nboots=500)
#>
#> ***** (V1) age *****
#> Before Matching After Matching
#> mean treatment........ 25.816 25.184
#> mean control.......... 25.054 25.229
#> std mean diff......... 10.655 -0.67659
#>
#> mean raw eQQ diff..... 0.94054 0.35342
#> med raw eQQ diff..... 1 0
#> max raw eQQ diff..... 7 8
#>
#> mean eCDF diff........ 0.025364 0.0096762
#> med eCDF diff........ 0.022193 0.0065147
#> max eCDF diff........ 0.065177 0.030945
#>
#> var ratio (Tr/Co)..... 1.0278 0.90561
#> T-test p-value........ 0.26594 0.73536
#> KS Bootstrap p-value.. 0.508 0.758
#> KS Naive p-value...... 0.7481 0.93044
#> KS Statistic.......... 0.065177 0.030945
#>
#>
#> ***** (V2) educ *****
#> Before Matching After Matching
#> mean treatment........ 10.346 10.227
#> mean control.......... 10.088 10.228
#> std mean diff......... 12.806 -0.079008
#>
#> mean raw eQQ diff..... 0.40541 0.10912
#> med raw eQQ diff..... 0 0
#> max raw eQQ diff..... 2 2
#>
#> mean eCDF diff........ 0.028698 0.0077943
#> med eCDF diff........ 0.012682 0.0040717
#> max eCDF diff........ 0.12651 0.035831
#>
#> var ratio (Tr/Co)..... 1.5513 1.0364
#> T-test p-value........ 0.15017 0.97584
#> KS Bootstrap p-value.. 0.014 0.38
#> KS Naive p-value...... 0.062873 0.82547
#> KS Statistic.......... 0.12651 0.035831
#>
#>
#> ***** (V3) black *****
#> Before Matching After Matching
#> mean treatment........ 0.84324 0.8382
#> mean control.......... 0.82692 0.8427
#> std mean diff......... 4.4767 -1.219
#>
#> mean raw eQQ diff..... 0.016216 0.0032573
#> med raw eQQ diff..... 0 0
#> max raw eQQ diff..... 1 1
#>
#> mean eCDF diff........ 0.0081601 0.0016287
#> med eCDF diff........ 0.0081601 0.0016287
#> max eCDF diff........ 0.01632 0.0032573
#>
#> var ratio (Tr/Co)..... 0.92503 1.0231
#> T-test p-value........ 0.64736 0.47962
#>
#>
#> ***** (V4) hisp *****
#> Before Matching After Matching
#> mean treatment........ 0.059459 0.085393
#> mean control.......... 0.10769 0.08764
#> std mean diff......... -20.341 -0.8032
#>
#> mean raw eQQ diff..... 0.048649 0.0016287
#> med raw eQQ diff..... 0 0
#> max raw eQQ diff..... 1 1
#>
#> mean eCDF diff........ 0.024116 0.00081433
#> med eCDF diff........ 0.024116 0.00081433
#> max eCDF diff........ 0.048233 0.0016287
#>
#> var ratio (Tr/Co)..... 0.58288 0.97676
#> T-test p-value........ 0.064043 0.31731
#>
#>
#> ***** (V5) married *****
#> Before Matching After Matching
#> mean treatment........ 0.18919 0.16404
#> mean control.......... 0.15385 0.15506
#> std mean diff......... 8.9995 2.4246
#>
#> mean raw eQQ diff..... 0.037838 0.0065147
#> med raw eQQ diff..... 0 0
#> max raw eQQ diff..... 1 1
#>
#> mean eCDF diff........ 0.017672 0.0032573
#> med eCDF diff........ 0.017672 0.0032573
#> max eCDF diff........ 0.035343 0.0065147
#>
#> var ratio (Tr/Co)..... 1.1802 1.0467
#> T-test p-value........ 0.33425 0.37115
#>
#>
#> ***** (V6) nodegr *****
#> Before Matching After Matching
#> mean treatment........ 0.70811 0.78202
#> mean control.......... 0.83462 0.78202
#> std mean diff......... -27.751 0
#>
#> mean raw eQQ diff..... 0.12432 0
#> med raw eQQ diff..... 0 0
#> max raw eQQ diff..... 1 0
#>
#> mean eCDF diff........ 0.063254 0
#> med eCDF diff........ 0.063254 0
#> max eCDF diff........ 0.12651 0
#>
#> var ratio (Tr/Co)..... 1.4998 1
#> T-test p-value........ 0.0020368 1
#>
#>
#> ***** (V7) u74 *****
#> Before Matching After Matching
#> mean treatment........ 0.70811 0.74157
#> mean control.......... 0.75 0.73483
#> std mean diff......... -9.1895 1.5382
#>
#> mean raw eQQ diff..... 0.037838 0.0016287
#> med raw eQQ diff..... 0 0
#> max raw eQQ diff..... 1 1
#>
#> mean eCDF diff........ 0.020946 0.00081433
#> med eCDF diff........ 0.020946 0.00081433
#> max eCDF diff........ 0.041892 0.0016287
#>
#> var ratio (Tr/Co)..... 1.1041 0.98352
#> T-test p-value........ 0.33033 0.40546
#>
#>
#> ***** (V8) u75 *****
#> Before Matching After Matching
#> mean treatment........ 0.6 0.64719
#> mean control.......... 0.68462 0.64944
#> std mean diff......... -17.225 -0.46975
#>
#> mean raw eQQ diff..... 0.081081 0.0016287
#> med raw eQQ diff..... 0 0
#> max raw eQQ diff..... 1 1
#>
#> mean eCDF diff........ 0.042308 0.00081433
#> med eCDF diff........ 0.042308 0.00081433
#> max eCDF diff........ 0.084615 0.0016287
#>
#> var ratio (Tr/Co)..... 1.1133 1.0029
#> T-test p-value........ 0.068031 0.31731
#>
#>
#> ***** (V9) re75 *****
#> Before Matching After Matching
#> mean treatment........ 1532.1 1264.4
#> mean control.......... 1266.9 1323.9
#> std mean diff......... 8.2363 -2.0509
#>
#> mean raw eQQ diff..... 367.61 114.78
#> med raw eQQ diff..... 0 0
#> max raw eQQ diff..... 2110.2 8195.6
#>
#> mean eCDF diff........ 0.050834 0.0067367
#> med eCDF diff........ 0.061954 0.0065147
#> max eCDF diff........ 0.10748 0.022801
#>
#> var ratio (Tr/Co)..... 1.0763 1.0118
#> T-test p-value........ 0.38527 0.45981
#> KS Bootstrap p-value.. 0.046 0.782
#> KS Naive p-value...... 0.16449 0.99724
#> KS Statistic.......... 0.10748 0.022801
#>
#>
#> ***** (V10) re74 *****
#> Before Matching After Matching
#> mean treatment........ 2095.6 1961.2
#> mean control.......... 2107 1991.4
#> std mean diff......... -0.23437 -0.62292
#>
#> mean raw eQQ diff..... 487.98 172.06
#> med raw eQQ diff..... 0 0
#> max raw eQQ diff..... 8413 7870.3
#>
#> mean eCDF diff........ 0.019223 0.0057796
#> med eCDF diff........ 0.0158 0.004886
#> max eCDF diff........ 0.047089 0.021173
#>
#> var ratio (Tr/Co)..... 0.7381 0.89669
#> T-test p-value........ 0.98186 0.69561
#> KS Bootstrap p-value.. 0.604 0.706
#> KS Naive p-value...... 0.97023 0.99914
#> KS Statistic.......... 0.047089 0.021173
#>
#>
#> ***** (V11) I(re74 * re75) *****
#> Before Matching After Matching
#> mean treatment........ 13118591 11633548
#> mean control.......... 14530303 12543909
#> std mean diff......... -2.7799 -2.0317
#>
#> mean raw eQQ diff..... 3278733 1703799
#> med raw eQQ diff..... 0 0
#> max raw eQQ diff..... 188160151 188160151
#>
#> mean eCDF diff........ 0.022723 0.004617
#> med eCDF diff........ 0.014449 0.0032573
#> max eCDF diff........ 0.061019 0.014658
#>
#> var ratio (Tr/Co)..... 0.69439 0.7597
#> T-test p-value........ 0.79058 0.54267
#> KS Bootstrap p-value.. 0.322 0.928
#> KS Naive p-value...... 0.81575 1
#> KS Statistic.......... 0.061019 0.014658
#>
#>
#> Before Matching Minimum p.value: 0.0020368
#> Variable Name(s): nodegr Number(s): 6
#>
#> After Matching Minimum p.value: 0.31731
#> Variable Name(s): hisp Number(s): 4
Created on 2023-06-01 with reprex v2.0.2