## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  eval = requireNamespace("MatchIt", quietly = TRUE) &&
    requireNamespace("WeightIt", quietly = TRUE) &&
    requireNamespace("survey", quietly = TRUE) &&
    requireNamespace("ranger", quietly = TRUE) &&
    requireNamespace("rpart", quietly = TRUE) &&
    requireNamespace("xgboost", quietly = TRUE)
)

## ----message = FALSE----------------------------------------------------------
library(psAve)
data("lalonde", package = "MatchIt")

## -----------------------------------------------------------------------------
set.seed(1234)
fit <- psave(treat ~ age + educ + race + married + nodegree + re74 + re75,
             data = lalonde, outcome = ~ re78)
fit

## -----------------------------------------------------------------------------
w <- psave_weight(fit)   # a genuine weightit object, estimand = "ATT"
w

cobalt::bal.tab(w, distance = data.frame(prog = fit$prog))

## ----eval = FALSE-------------------------------------------------------------
# WeightIt::weightit(treat ~ age + educ + race + married + nodegree + re74 + re75,
#                    data = lalonde, ps = fit$ps, estimand = "ATT")

## -----------------------------------------------------------------------------
library(survey)

des.att <- svydesign(ids = ~1, weights = weights(fit), data = lalonde)
fit.att <- svyglm(re78 ~ treat, design = des.att)
summary(fit.att)

## -----------------------------------------------------------------------------
set.seed(1234)
fit.ate <- psave(treat ~ age + educ + race + married + nodegree + re74 + re75,
                 data = lalonde, outcome = ~ re78, estimand = "ATE")
fit.ate

## -----------------------------------------------------------------------------
des.ate <- svydesign(ids = ~1, weights = weights(fit.ate), data = lalonde)
fit.ate.glm <- svyglm(re78 ~ treat, design = des.ate)
summary(fit.ate.glm)

