#' Function that calculates the random effect that corresponds to a specific
#' average probability of treatment.
#'
#' @param alpha Target average probability of treatment. Numberic in 0 - 1.
#' @param lin_pred Linear predictor for the probability of treatment among the
#' remaining units. Includes intercept and fixed effects.
#' @param alpha_re_bound The lower and upper end of the values for bi we will
#' look at. Defaults to 10, meaning we will look between - 10 and 10.
#'
FromAlphaToRE <- function(alpha, lin_pred, alpha_re_bound = 10) {
alpha_re_bound <- abs(alpha_re_bound)
r <- optimise(f = AlphaToBi, lower = - 1 * alpha_re_bound,
upper = alpha_re_bound, alpha = alpha, lin_pred = lin_pred)
r <- r$minimum
if (alpha_re_bound - abs(r) < 0.1) {
warning(paste0('bi = ', r, ', alpha_re_bound = ', alpha_re_bound))
}
return(r)
}
AlphaToBi <- function(b, alpha, lin_pred) {
exp_lin_pred <- exp(lin_pred)
r <- abs(mean(exp_lin_pred / (exp_lin_pred + exp(- b))) - alpha)
return(r)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.