#' @title Setup data for covariate pre-test
#'
#' @description Sets up the data for conducting covariate pre-test
#'
#' @inheritParams ife_setup_pte
#'
#' @return \code{pte_params} object
#'
#' @export
setup_cov_pre_test <- function(yname,
gname,
tname,
idname,
data,
nife = 1,
anticipation = 0,
...) {
required_pre_periods <- nife + 1
data <- as.data.frame(data)
# setup data
G <- data[, gname]
id <- data[, idname]
period <- data[, tname]
data$G <- G
data$id <- id
n <- length(unique(data$id))
# data$original_period <- period
# data$original_group <- G
data$Y <- data[, yname]
time.periods <- unique(period)
groups <- unique(data$G)
# drop never treated group
groups <- sort(groups)[-1]
# do some recoding to make sure time periods are 1 unit apart
# and then put these back together at the end
# (this probably won't work for unequally spaced periods)
original_time.periods <- time.periods
original_groups <- groups
# get new time periods / groups
time.periods <- sapply(original_time.periods,
orig2t,
original_time.periods = original_time.periods
)
groups <- sapply(original_groups,
orig2t,
original_time.periods = original_time.periods
)
# put the period in new time scale
data$period <- sapply(period,
orig2t,
original_time.periods = original_time.periods
)
data$G <- sapply(G,
orig2t,
original_time.periods = original_time.periods
)
# sort the time periods and drop the first
# \code{required_pre_periods} time periods
# these are the ones we loop over below
time.periods <- sort(time.periods)[-seq(1, required_pre_periods)]
# time.periods <- time.periods[1:(length(time.periods) - nife)]
groups <- groups[groups %in% time.periods]
# account for anticipation
groups <- groups[groups >= (min(time.periods) + anticipation)]
# drop early treated groups
data <- data[!(data$G %in% seq(1, required_pre_periods + anticipation)), ]
params <- pte_params(
yname = yname,
gname = gname,
tname = tname,
idname = idname,
data = data,
glist = groups,
tlist = time.periods,
cband = TRUE, # never use anything from here after
alp = 0.05,
boot_type = "multiplier",
biters = 100,
cl = 1
)
params
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.