Nothing
## Data generation
set.seed(999)
x1 = rnorm(100, 0, 0.5)
x2 = rnorm(100, 0, 0.1)
x3 = rnorm(100, 0, 1)
x4 = rnorm(100, x1, 0.1)
r1ss <- seq(0.1,50, 5)
r2ss <- seq(0.1,50, 5)
x = cbind(x1, x2, x3,x4)
z = sample(c(rep(1, 50), rep(0, 50)))
e1 = rnorm(100, 0, 1.5)
e0 = rnorm(100, 0, 1.5)
y1impute = x1^2 + 0.6*x2^2 + 1 + e1
y0impute = x1^2 + 0.6*x2^2 + e0
treat = (z==1)
y = ifelse(treat, y1impute, y0impute)
names(x) <- c("x1", "x2", "x3", "x4")
df <- data.frame(cbind(z, y, x))
df$x5 <- 1
d1 <- as.matrix(dist(df["x1"]))
d2 <- as.matrix(dist(df["x2"]))
idx <- 1:length(z)
treatedUnits <- idx[z==1]
controlUnits <- idx[z==0]
d1 <- as.matrix(d1[treatedUnits, controlUnits])
d2 <- as.matrix(d2[treatedUnits, controlUnits])
res6 <- two_dist_match(data = df, treat_col = "z",
dist1_matrix=d1, dist1_type= "User",
dist2_matrix=d2, dist2_type="User",
marg_bal_col=c("x5"),
exclusion_penalty=r1ss,
dist2_penalty=r2ss,
propensity_col = c("x1"),
pscore_name = NULL,
ignore_col = c("y"),
max_unmatched = 0.1,
caliper_option=0.25,
tol=1e-6,
max_iter=0,
rho_max_factor = 10)
## 0. Check the correctness of the result
test_that("two_dist_match test with correct input", {
expect_equal(names(res6), c("numTreat","rhoList", "matchList", "treatmentCol",
"covs", "exactCovs", "idMapping", "b.var",
"dataTable", "t", "df", "pair_cost1", "pair_cost2", "version", "fDist1",
"fExclude", "fDist2"))
expect_equal(0, sum(unlist(lapply(res6, is.na))))
expect_equal(res6$version, "Advanced")
expect_equal(length(res6$matchList), 100)
expect_equal(length(res6$fDist1), length(res6$fDist2))
expect_equal(length(res6$fDist1), length(res6$fExclude))
})
## 1. Tabular summary function works
test_that("Some tabular summary functions only works for the basic version", {
expect_error(compare_matching(res6))
summary_table <- get_rho_obj(res6)
expect_equal(dim(summary_table)[1], 100)
expect_equal(dim(summary_table)[2], 7)
})
## 2. Some graphical summary function would not work
test_that("Some graphicall summary functions only works for the basic version", {
expect_error(get_tv_graph(res6))
expect_error(get_pairdist_graph(res6))
expect_error(get_pairdist_balance_graph(res6))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.