-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
TODO: * @examples * unit tests
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,72 +1,81 @@ | ||
|
||
#' marginal effect variance using the delta method | ||
#' | ||
#' \deqn{\frac{1}{n_C} + \frac{1}{n_{\bar{C}}} + \frac{1}{n_B} + \frac{1}{n_{\bar{B}}}} | ||
#' Marginal effect variance using the delta method | ||
#' | ||
#' Calculate | ||
#' \deqn{\frac{1}{n_C} + \frac{1}{n_{\bar{C}}} + \frac{1}{n_B} + \frac{1}{n_{\bar{B}}}}. | ||
#' | ||
#' @param x x | ||
#' @param trials Trial labels | ||
#' @param ald Aggregate-level data | ||
#' @param treatments Treatment labels; default _B_ vs _C_ | ||
#' @return Sum of variances | ||
#' @export | ||
#' | ||
marginal_variance <- function(x, trials = list("B", "C")) { | ||
|
||
trial_vars <- purrr::map_dbl(trials, ~trial_variance(x, .x)) | ||
marginal_variance <- function(ald, treatments = list("B", "C")) { | ||
trial_vars <- purrr::map_dbl(treatments, ~trial_variance(ald, .x)) | ||
sum(trial_vars) | ||
} | ||
|
||
|
||
#' B vs C marginal treatment effect from reported event counts | ||
#' | ||
#' \deqn{\log(n_B n_{\bar{C}}) -log(n_C n_{\bar{B}})} | ||
#' Marginal treatment effect from reported event counts | ||
#' | ||
#' Calculate | ||
#' \deqn{\log(n_B n_{\bar{C}}) - log(n_C n_{\bar{B}})}. | ||
#' | ||
#' @param x x | ||
#' @param trials Trial labels | ||
#' @param ald Aggregate-level data | ||
#' @param treatments Treatment labels; default _B_ vs _C_ | ||
#' @return Trial effect difference | ||
#' @export | ||
#' | ||
marginal_treatment_effect <- function(x, trials = list("B", "C")) { | ||
trial_effect <- purrr::map_dbl(trials, ~trial_treatment_effect(x, .x)) | ||
marginal_treatment_effect <- function(ald, treatments = list("B", "C")) { | ||
trial_effect <- purrr::map_dbl(treatments, ~trial_treatment_effect(ald, .x)) | ||
trial_effect[2] - trial_effect[1] | ||
} | ||
|
||
|
||
#' Trial variance | ||
#' Trial variance with aggregate data | ||
#' | ||
#' @param x x | ||
#' @param k k | ||
#' Calculate | ||
#' \deqn{1/(\sum y_k) + 1/(N_k - \sum y_k)}. | ||
#' | ||
#' @param ald Aggregate-level data | ||
#' @param tid Treatment label | ||
#' | ||
#' @return Value | ||
#' @export | ||
#' | ||
trial_variance <- function(x, k) { | ||
var_string <- glue::glue("1/x$y.{k}.sum + 1/(x$N.{k} - x$y.{k}.sum)") | ||
trial_variance <- function(ald, tid) { | ||
var_string <- glue::glue("1/ald$y.{tid}.sum + 1/(ald$N.{tid} - ald$y.{tid}.sum)") | ||
eval(parse(text = var_string)) | ||
} | ||
|
||
|
||
#' Trial treatment effect | ||
#' | ||
#' @param x x | ||
#' @param k k | ||
#' Trial treatment effect with aggregate data | ||
#' | ||
#' Calculate | ||
#' \deqn{\log(\sum y_k (N_k - \sum y_k))}. | ||
#' | ||
#' @param ald Aggregate-level data | ||
#' @param tid Treatment label | ||
#' | ||
#' @return Value | ||
#' @export | ||
#' | ||
trial_treatment_effect <- function(x, k) { | ||
var_string <- glue::glue("log(x$y.{k}.sum*(x$N.{k} - x$y.{k}.sum))") | ||
trial_treatment_effect <- function(ald, tid) { | ||
var_string <- glue::glue("log(ald$y.{tid}.sum*(ald$N.{tid} - ald$y.{tid}.sum))") | ||
eval(parse(text = var_string)) | ||
} | ||
|
||
|
||
#' Aggregate-level data statistics | ||
#' Aggregate-level data mean and variance statistics | ||
#' | ||
#' @param data Data | ||
#' @param trials Trial labels; default `B`, `C` | ||
#' @param ald Aggregate-level trial data | ||
#' @param treatments Treatment labels; default `B`, `C` | ||
#' | ||
#' @return List of marginal treatment effect and variance | ||
#' @return List of marginal treatment effect mean and variance | ||
#' @seealso [marginal_treatment_effect()], [marginal_variance()] | ||
#' @export | ||
#' | ||
ALD_stats <- function(data, trials = list("B", "C")) { | ||
list(mean = marginal_treatment_effect(data, trials), | ||
var = marginal_variance(data, trials)) | ||
ALD_stats <- function(ald, treatments = list("B", "C")) { | ||
list(mean = marginal_treatment_effect(ald, treatments), | ||
var = marginal_variance(ald, treatments)) | ||
} | ||
|
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.