testthat::test_that("Likelihood objects form", {
set.seed(20348)
n <- 15
d <- 3
x <- matrix(stats::rnorm(n*d), n, d)
z <- rbinom(n, 1, prob = 0.5)
weights <- rep(1/n,n)
data <-causalOT::dataHolder(x = x, z = z)
testthat::expect_silent(likm <- causalOT:::likelihoodMethods(data,
estimand = "ATT",
method = "Logistic",
options = list(NULL)))
testthat::expect_silent(likm <- causalOT:::likelihoodMethods(data,
estimand = "ATT",
method = "Logistic"))
testthat::expect_true(all(slotNames(likm) %in% c("data", "estimand",
"method", "solver", "solver.options")))
testthat::expect_silent(likm <- causalOT:::likelihoodMethods(data,
estimand = "ATT",
method = "CBPS",
options = list(NULL)))
testthat::expect_silent(likm <- causalOT:::likelihoodMethods(data,
estimand = "ATT",
method = "CBPS"))
testthat::expect_true(all(slotNames(likm) %in% c("data", "estimand",
"method", "solver", "solver.options")))
})
testthat::test_that("CBPS works", {
testthat::skip_if_not_installed("CBPS")
set.seed(20348)
n <- 15
d <- 3
x <- matrix(stats::rnorm(n*d), n, d)
z <- rbinom(n, 1, prob = 0.5)
weights <- rep(1/n,n)
data <-causalOT::dataHolder(x = x, z = z)
likm <- causalOT:::likelihoodMethods(data,
estimand = "ATT",
method = "CBPS",
options = list(NULL))
mess <- testthat::capture_output(test <- likm@solver(likm))
testthat::expect_equal(likm@solver, causalOT:::cbps_optimizer)
})
testthat::test_that("logistic works", {
set.seed(20348)
n <- 15
d <- 3
x <- matrix(stats::rnorm(n*d), n, d)
z <- rbinom(n, 1, prob = 0.5)
weights <- rep(1/n,n)
data <-causalOT::dataHolder(x = x, z = z)
testthat::expect_silent({
likm <- causalOT:::likelihoodMethods(data,
estimand = "ATT",
method = "Logistic",
options = list(NULL))
test <- likm@solver(likm)
likm <- causalOT:::likelihoodMethods(data,
estimand = "ATC",
method = "Logistic",
options = list(NULL))
test <- likm@solver(likm)
likm <- causalOT:::likelihoodMethods(data,
estimand = "ATE",
method = "Logistic",
options = list(NULL))
test <- likm@solver(likm)
})
})
testthat::test_that("probit works", {
set.seed(20348)
n <- 15
d <- 3
x <- matrix(stats::rnorm(n*d), n, d)
z <- rbinom(n, 1, prob = 0.5)
weights <- rep(1/n,n)
data <-causalOT::dataHolder(x = x, z = z)
testthat::expect_silent({
likm <- causalOT:::likelihoodMethods(data,
estimand = "ATT",
method = "Probit",
options = list(NULL))
test <- likm@solver(likm)
likm <- causalOT:::likelihoodMethods(data,
estimand = "ATC",
method = "Probit",
options = list(NULL))
test <- likm@solver(likm)
likm <- causalOT:::likelihoodMethods(data,
estimand = "ATE",
method = "Probit",
options = list(NULL))
test <- likm@solver(likm)
})
fit <- glm(data@z ~ data@x, family = binomial(link = "probit"))
probs <- predict(fit, type = "response")
p1 <- probs[data@z==1]
p0 <- 1-probs[data@z==0]
testthat::expect_equal(test$w1, 1/p1 * 1/n)
testthat::expect_equal(test$w0, 1/p0 * 1/n)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.