`Note: - The outcome variable is 1978 earnings ( ‘re78’)- The intervention: ‘treat’- 1974 earnings: re74- 1975 earnings: re75- and other control variables`

Here, we construct a susceptibility score for each observation based on covariates (age, education, race, married, no degree, re74, and re75), which represents its tendency to enroll in the program.

Step 1: No equivalence and compare covariate equilibrium

`result_0 <- matchit(treat ~ age + educ + race + married +  nodegree + re74 + re75, data = lalonde, method = NULL, distance = 'glm')result_0`
`summary(result_0)`

There are a total of 185 treated and 429 untreated findings.

Normal mean difference and eCDF statistics approaching 0 or a variance ratio close to 1 indicate good balance; Otherwise an imbalance.

There are serious imbalances between treated and untreated groups without a matching method. They appear to be quite different in terms of mean mean difference (constant. Mean difference), variance ratio (variance ratio), and empirical cumulative density function (eCDF).

Covariate imbalance indicates the bias of choice before treatment, so we cannot attribute the difference to intervention.

Step 2.1: Nearest neighbor

`result_1 <- matchit(treat ~ age + educ + race + married +  nodegree + re74 + re75, data = lalonde, method = “nearest”, distance = ‘glm’)result_1`

We use the closest method and a 1: 1 match to the nearest neighbor. 1: 1 fitting means that we fit one processed unit to one control unit with the nearest tendency points. This control unit is then removed from the control pool and is not available in other cases (i.e., not a replacement). Repeat the process for the other cases treated.

`summary(result_1, un=FALSE)`
`plot(result_1, type = “jitter”, interactive = FALSE)`
`plot(result_1, type = “qq”, interactive = FALSE, which.xs = c(“age”, “married”, “re75”))`

Check the distribution of covariates for the three variables. Scores far from the solid diagonal line indicate covariate differences between the two groups. The two variables, married and re75, have a better balance after equivalence, but age does not improve.

After a 1: 1 correspondence, both groups have a better balance compared to the fact that the constant amounts have not been matched. Average difference, Var. Relationship and eCDF statistics. However, group imbalances still exist. Check other correspondence methods and compare results.

Step 2.2: Full fit and probit

`result_2 <- matchit(treat ~ age + educ + race + married + nodegree + re74 + re75, data = lalonde, method = “full”, distance = “glm”, link = “probit”)result_2`

Full reconciliation matches one processed unit to one or more control units (or one control unit to one or more processed units) (Gary King). In addition, we changed the link function from logit to probit.

`summary(result_2, un = FALSE)`
`plot(summary(result_2))`

After application of perfect fit, covariates appear to be much more balanced between treated and untreated groups.

Step 3: Evaluate the impact and standard error

`m.data2 <- match.data(result_2)m.data2`