X-Git-Url: https://code.communitydata.science/ml_measurement_error_public.git/blobdiff_plain/b8d2048cc5338fbd872b55029c3e5d01c739a397..refs/heads/master:/simulations/summarize_estimator.R diff --git a/simulations/summarize_estimator.R b/simulations/summarize_estimator.R index f416c5b..8ddeb7c 100644 --- a/simulations/summarize_estimator.R +++ b/simulations/summarize_estimator.R @@ -1,5 +1,6 @@ +library(ggdist) -summarize.estimator <- function(df, suffix='naive', coefname='x'){ +summarize.estimator <- function(sims.df, suffix='naive', coefname='x'){ reported_vars <- c( 'Bxy', @@ -9,14 +10,14 @@ summarize.estimator <- function(df, suffix='naive', coefname='x'){ ) - grouping_vars <- c('N','m','B0', 'Bxy', 'Bzy', 'Bzx', 'Px', 'y_explained_variance', 'prediction_accuracy','outcome_formula','proxy_formula','truth_formula','z_bias','y_bias') + grouping_vars <- c('N','m','B0', 'Bxy', 'Bzy', 'Bzx', 'Px', 'Py','y_explained_variance', 'prediction_accuracy','outcome_formula','proxy_formula','truth_formula','z_bias','y_bias') grouping_vars <- grouping_vars[grouping_vars %in% names(df)] - part <- df[, - c(reported_vars, - grouping_vars), - with=FALSE] + part <- sims.df[, + unique(c(reported_vars, + grouping_vars)), + with=FALSE] true.in.ci <- as.integer((part$Bxy >= part[[paste0('B',coefname,'y.ci.lower.',suffix)]]) & (part$Bxy <= part[[paste0('B',coefname,'y.ci.upper.',suffix)]])) @@ -29,6 +30,7 @@ summarize.estimator <- function(df, suffix='naive', coefname='x'){ bias=bias, sign.correct =sign.correct)] + part.plot <- part[, .(p.true.in.ci = mean(true.in.ci), mean.bias = mean(bias), mean.est = mean(.SD[[paste0('B',coefname,'y.est.',suffix)]],na.rm=T), @@ -37,6 +39,8 @@ summarize.estimator <- function(df, suffix='naive', coefname='x'){ est.lower.95 = quantile(.SD[[paste0('B',coefname,'y.est.',suffix)]],0.025,na.rm=T), mean.ci.upper = mean(.SD[[paste0('B',coefname,'y.ci.upper.',suffix)]],na.rm=T), mean.ci.lower = mean(.SD[[paste0('B',coefname,'y.ci.lower.',suffix)]],na.rm=T), + median.ci.upper = median(.SD[[paste0('B',coefname,'y.ci.upper.',suffix)]],na.rm=T), + median.ci.lower = median(.SD[[paste0('B',coefname,'y.ci.lower.',suffix)]],na.rm=T), ci.upper.975 = quantile(.SD[[paste0('B',coefname,'y.ci.upper.',suffix)]],0.975,na.rm=T), ci.upper.025 = quantile(.SD[[paste0('B',coefname,'y.ci.upper.',suffix)]],0.025,na.rm=T), ci.lower.975 = quantile(.SD[[paste0('B',coefname,'y.ci.lower.',suffix)]],0.975,na.rm=T),