diff --git a/R/back_transformations.R b/R/back_transformations.R index 0bb1f82..097a775 100644 --- a/R/back_transformations.R +++ b/R/back_transformations.R @@ -16,12 +16,12 @@ NULL #' @describeIn back Back transform beta estimates for models with log-link #' @export -log_back <- function(beta, se, sim) { +log <- function(beta, se, sim) { simulated <- rnorm(sim, beta, se) original <- exp(simulated) %>% # exponential = inverse of log na.omit() m_est <- mean(original) - se_est <- sd(original) + se_est <- sd(original) / sqrt(length(original)) quantiles <- quantile(original, c(0.025, 0.975), na.rm = TRUE) set <- data.frame(mean_origin = m_est, se_origin = se_est, lower = quantiles[[1]], upper = quantiles[[2]]) if (flatten_dbl(set) %>% @@ -35,12 +35,12 @@ log_back <- function(beta, se, sim) { #' @describeIn back Back transform beta estimates for models with logit-link #' @export -logit_back <- function(beta, se, sim) { +logit <- function(beta, se, sim) { simulated <- rnorm(sim, beta, se) original <- plogis(simulated) %>% # invlogit na.omit() m_est <- mean(original) - se_est <- sd(original) + se_est <- sd(original) / sqrt(length(original)) quantiles <- quantile(original, c(0.025, 0.975), na.rm = TRUE) set <- data.frame(mean_origin = m_est, se_origin = se_est, lower = quantiles[[1]], upper = quantiles[[2]]) if (flatten_dbl(set) %>% @@ -54,12 +54,12 @@ logit_back <- function(beta, se, sim) { #' @describeIn back Back transform beta estimates for models with probit-link #' @export -probit_back <- function(beta, se, sim) { +probit <- function(beta, se, sim) { simulated <- rnorm(sim, beta, se) original <- pnorm(simulated) %>% # inv-probit na.omit() m_est <- mean(original) - se_est <- sd(original) + se_est <- sd(original) / sqrt(length(original)) quantiles <- quantile(original, c(0.025, 0.975), na.rm = TRUE) set <- data.frame(mean_origin = m_est, se_origin = se_est, lower = quantiles[[1]], upper = quantiles[[2]]) if (flatten_dbl(set) %>% @@ -73,12 +73,12 @@ probit_back <- function(beta, se, sim) { #' @describeIn back Back transform beta estimates for models with \eqn{1/x} link #' @export -inverse_back <- function(beta, se, sim) { +inverse <- function(beta, se, sim) { simulated <- rnorm(sim, beta, se) original <- 1 / simulated %>% # inverse na.omit() m_est <- mean(original) - se_est <- sd(original) + se_est <- sd(original) / sqrt(length(original)) quantiles <- quantile(original, c(0.025, 0.975), na.rm = TRUE) set <- data.frame(mean_origin = m_est, se_origin = se_est, lower = quantiles[[1]], upper = quantiles[[2]]) if (flatten_dbl(set) %>% @@ -92,12 +92,12 @@ inverse_back <- function(beta, se, sim) { #' @describeIn back Back transform beta estimates for models with \eqn{x^2}-link #' @export -square_back <- function(beta, se, sim) { +square <- function(beta, se, sim) { simulated <- rnorm(sim, beta, se) original <- sqrt(simulated) %>% # inverse of x^2 na.omit() m_est <- mean(original) - se_est <- sd(original) + se_est <- sd(original) / sqrt(length(original)) quantiles <- quantile(original, c(0.025, 0.975), na.rm = TRUE) set <- data.frame(mean_origin = m_est, se_origin = se_est, lower = quantiles[[1]], upper = quantiles[[2]]) if (flatten_dbl(set) %>% @@ -111,12 +111,12 @@ square_back <- function(beta, se, sim) { #' @describeIn back Back transform beta estimates for models with \eqn{x^3}-link #' @export -cube_back <- function(beta, se, sim) { +cube <- function(beta, se, sim) { simulated <- rnorm(sim, beta, se) original <- pracma::nthroot(simulated, n = 3) %>% # inverse of x^3, use non-base to allow for -ve numbers na.omit() m_est <- mean(original) - se_est <- sd(original) + se_est <- sd(original) / sqrt(length(original)) quantiles <- quantile(original, c(0.025, 0.975), na.rm = TRUE) set <- data.frame(mean_origin = m_est, se_origin = se_est, lower = quantiles[[1]], upper = quantiles[[2]]) if (flatten_dbl(set) %>% @@ -130,12 +130,12 @@ cube_back <- function(beta, se, sim) { #' @describeIn back Back transform beta estimates for models with identity-link #' @export -identity_back <- function(beta, se, sim) { # identity (typo) TODO +identity <- function(beta, se, sim) { # identity (typo) TODO simulated <- rnorm(sim, beta, se) original <- simulated %>% # no transformation na.omit() m_est <- mean(original) - se_est <- sd(original) + se_est <- sd(original) / sqrt(length(original)) quantiles <- quantile(original, c(0.025, 0.975), na.rm = TRUE) set <- data.frame(mean_origin = m_est, se_origin = se_est, lower = quantiles[[1]], upper = quantiles[[2]]) if (flatten_dbl(set) %>% @@ -150,12 +150,12 @@ identity_back <- function(beta, se, sim) { # identity (typo) TODO #' @describeIn back Back transform beta estimates for models with power-link #' @export -power_back <- function(beta, se, sim, n) { +power <- function(beta, se, sim, n) { simulated <- rnorm(sim, beta, se) original <- pracma::nthroot(simulated, n = n) %>% # inverse of x^n, use non-base to allow for -ve numbers na.omit() m_est <- mean(original) - se_est <- sd(original) + se_est <- sd(original) / sqrt(length(original)) quantiles <- quantile(original, c(0.025, 0.975), na.rm = TRUE) set <- data.frame(mean_origin = m_est, se_origin = se_est, lower = quantiles[[1]], upper = quantiles[[2]]) if (flatten_dbl(set) %>% @@ -170,12 +170,12 @@ power_back <- function(beta, se, sim, n) { #' @describeIn back Back transform beta estimates or out-of-sample predictions from models whose response variable has been divided by some number, `n`. #' @param n Denominator used by analyst to divide the response variable. #' @export -divide_back <- function(beta, se, sim, n) { +divide <- function(beta, se, sim, n) { simulated <- rnorm(sim, beta, se) original <- simulated * n %>% na.omit() m_est <- mean(original, na.rm = TRUE) - se_est <- sd(original, na.rm = TRUE) + se_est <- sd(original, na.rm = TRUE) / sqrt(length(original)) quantiles <- quantile(original, c(0.025, 0.975), na.rm = TRUE @@ -200,12 +200,12 @@ divide_back <- function(beta, se, sim, n) { #' @describeIn back Back transform beta estimates or out-of-sample predictions from models whose response variable has been transformed by the square root #' @export -square_root_back <- function(beta, se, sim) { +square_root <- function(beta, se, sim) { simulated <- rnorm(sim, beta, se) original <- simulated^2 %>% na.omit() m_est <- mean(original) - se_est <- sd(original) + se_est <- sd(original) / sqrt(length(original)) quantiles <- quantile(original, c(0.025, 0.975), na.rm = TRUE) set <- data.frame(mean_origin = m_est, se_origin = se_est, lower = quantiles[[1]], upper = quantiles[[2]]) if (flatten_dbl(set) %>%