R/sensitivity_learning_table.R

Defines functions sensitivity_learning_table

Documented in sensitivity_learning_table

sensitivity_learning_table <- function(df){
  # This function provides redundant programming. If necessary, this function can be split into parts without much recoding.
  # It takes ca. 10 min to run this function.
  # learning_sensitivity_table function (multiple calls of bayesmeta)
  # computes a table containing the paremeters of heterogeneity priors HN, EXP, HC, LMX, 
  # descriptive statistics of posteriors,
  # learning and sensitivity estimates for static 5%-tail HN(0.5)(U=1)- and HN(1)(U=2)-like scale parameters for for HN, EXP, HC, LMX heterogeneity priors 
  # learning and sensitivity for dynamically assigned scaling parameters for HN, EXP, HC, LMX for rlmc025 and rlmc05 adjusted at the median
  # input:
  # df: data frame in form compatible with data objects in the bayesmeta environment
  # output:
  # table with the following columns:
  # "U"
  # "tail_prob"
  # "par_val" 
  # "MRLMC" 
  # "median_post_mu"
  # "95CrI_post_mu_low"
  # "95CrI_post_mu_up"
  # "length_95CrI_post_mu" 
  # "median_post_tau"
  # "95CrI_post_tau_low"
  # "95CrI_post_tau_up"
  # "length_95CrI_post_tau"
  # "L_mu"
  # "L_tau"
  # "S_mu"
  # "S_tau"
  # for HN, EXP, HC and LMX heterogeneity priors with the following scaling parameters (indicated in rows)
  # "HN(0.5)_U1tail5perz", "EXP_U1tail5perz", "HC_U1tail5perz", "LMX_U1tail5perz": 5%-tail adjusted with threshold U=1 (static)
  # "HN_mrlmc025", "EXP_mrlmc025", "HC_mrlmc025", "LMX_mrlmc025": median-adjusted with target RLMC=0.25 (dynamic)
  # "HN(1)_U2tail5perz", "EXP_U2tail5perz", "HC_U2tail5perz", "LMX_U2tail5perz":: 5%-tail adjusted with threshold U=2 (static)
  # "HN_mrlmc050", "EXP_mrlmc050", "HC_mrlmc050", "LMX_mrlmc050": median-adjusted with target RLMC=0.50 (dynamic)
  
  
  # with bayesmeta
  # Version downloaded on 20180928
  
  ####---- parameters for learning and sensitivity computation ----####
  
  # mu_mean: mean of the Normal prior for mu
  mu_mean <- 0
  # mu_sd: sd of the Normal prior for mu (according to Roever(2018) Bayesmeta-Paper (unit-information prior for log-odds-ratios))
  mu_sd <- 4
  ## static choice of the scale parameter for the heterogeneity prior for tau
  # 1-phalfnormal(q=1, scale=0.5) # P[HN(0.5)>1]=0.04550026
  # 1-phalfnormal(q=2, scale=1) # P[HN(1)>2]=0.04550026
  # tail_alpha_static: P[HN(0.5)>1]=0.04550026, P[HN(1)>2]=0.04550026
  tail_alpha_static <- 0.04550026
  # U1: thershold for  P[HN(0.5)>1]=0.04550026
  U1 <- 1
  # U1: thershold for P[HN(1)>2]=0.04550026
  U2 <- 2
  ## dynamic choice of the scale parameter for the heterogeneity prior for tau
  # tail_alpha_dynamic=0.5: centering of Uref in the median P[tau>=Uref]=tail_alpha_tynamic=0.5 for a heterogeneity prior for tau
  tail_alpha_dynamic <- 0.5
  # rlmc025=0.25: The Relative Latent Model Complexity (RLMC) set to 0.25 (empirically corresponding to HN(0.5))
  rlmc025 <- 0.25
  # rlmc05=0.5: The Relative Latent Model Complexity (RLMC) set to 0.5 (empirically corresponding to HN(1))
  rlmc05 <- 0.5
  ## grid_epsilon for sensitivity computation
  # grid_epsilon=0.00354: grid_epsilon as suggested by Roos et al. (2015) corresponds to H(N(0,1),N(0.01,1))=0.00354
  grid_epsilon <- 0.00354
  
  
  ####---- epsilon-local grid for mu ----####
  
  
  # normal (for mu)
  # upper and lower epsilon grid values for a normal distribution with mean=0 according to equation (20) in Roos et al. (2015) expressed in tersms of mu_sd
  AAu_normal_mu <- mu_sd*(1+sqrt(1-(1-grid_epsilon^2)^4))/(1-grid_epsilon^2)^2
  AAl_normal_mu <- mu_sd*(1-sqrt(1-(1-grid_epsilon^2)^4))/(1-grid_epsilon^2)^2
  
  
  ####---- create an object to collect the results ----####
  
  
  tres<-matrix(NA, nrow=16, ncol=16)
  colnames(tres)<-c("U", "tail_prob", "par_val", "MRLMC", 
                    "median_post_mu", "95CrI_post_mu_low", "95CrI_post_mu_up", "length_95CrI_post_mu", 
                    "median_post_tau", "95CrI_post_tau_low", "95CrI_post_tau_up", "length_95CrI_post_tau",
                    "L_mu", "L_tau", "S_mu", "S_tau")
  rownames(tres)<-c("HN(0.5)_U1tail5perz", "EXP_U1tail5perz", "HC_U1tail5perz", "LMX_U1tail5perz",
                    "HN_mrlmc025", "EXP_mrlmc025", "HC_mrlmc025", "LMX_mrlmc025",
                    "HN(1)_U2tail5perz", "EXP_U2tail5perz", "HC_U2tail5perz", "LMX_U2tail5perz",
                    "HN_mrlmc050", "EXP_mrlmc050", "HC_mrlmc050", "LMX_mrlmc050")
  
  
  
  ####----  (HN(0.5)-like) static 0.05-tail adjustment with threshold U=1 (HN(0.5)) ----####
  
  # prior parameters 
  
  tres[c(1:4),1]<-U1
  tres[c(1:4),2]<-tail_alpha_static
  tres[1,3]<-pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_HN
  tres[2,3]<-pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_EXP
  tres[3,3]<-pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_HC
  tres[4,3]<-pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_LMX
  
  # effective mrlmc
  
  tres[1,4]<- median(effective_rlmc(df=df, r.tau.prior=function(MM)rhalfnormal(n=MM, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_HN), 
                                     MM=1000000, output="sample", step=0.03))
  tres[2,4]<- median(effective_rlmc(df=df, r.tau.prior=function(MM)rexp(n=MM, rate=1/pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_EXP), 
                                     MM=1000000, output="sample", step=0.03))
  tres[3,4]<- median(effective_rlmc(df=df, r.tau.prior=function(MM)rhalfcauchy(n=MM, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_HC), 
                                     MM=1000000, output="sample", step=0.03))
  tres[4,4]<- median(effective_rlmc(df=df, r.tau.prior=function(MM)rlomax(n=MM, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_LMX, shape=1), 
                                     MM=1000000, output="sample", step=0.03))
  
  
  # posteriors for base HN, EXP, HC and LMX heterogeneity priors
  
  fit.bayesmeta.HN05 <- bayesmeta(y=df[,"y"], 
                                  sigma=df[,"sigma"],
                                  labels=df[,"labels"],
                                  mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                  tau.prior=function(t){dhalfnormal(t, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_HN)})
  tres[1,c(5:7)]<-fit.bayesmeta.HN05$summary[c("median","95% lower","95% upper"),"mu"]
  tres[1,c(9:11)]<-fit.bayesmeta.HN05$summary[c("median","95% lower","95% upper"),"tau"]
  
  fit.bayesmeta.EXP_HN05adj <- bayesmeta(y=df[,"y"], 
                                         sigma=df[,"sigma"],
                                         labels=df[,"labels"],
                                         mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                         tau.prior=function(t){dexp(t, rate=1/pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_EXP)})
  tres[2,c(5:7)]<-fit.bayesmeta.EXP_HN05adj$summary[c("median","95% lower","95% upper"),"mu"]
  tres[2,c(9:11)]<-fit.bayesmeta.EXP_HN05adj$summary[c("median","95% lower","95% upper"),"tau"]
  
  fit.bayesmeta.HC_HN05adj <- bayesmeta(y=df[,"y"], 
                                        sigma=df[,"sigma"],
                                        labels=df[,"labels"],
                                        mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                        tau.prior=function(t){dhalfcauchy(t, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_HC)})
  tres[3,c(5:7)]<-fit.bayesmeta.HC_HN05adj$summary[c("median","95% lower","95% upper"),"mu"]
  tres[3,c(9:11)]<-fit.bayesmeta.HC_HN05adj$summary[c("median","95% lower","95% upper"),"tau"]
  
  fit.bayesmeta.LMX_HN05adj <- bayesmeta(y=df[,"y"], 
                                         sigma=df[,"sigma"],
                                         labels=df[,"labels"],
                                         mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                         tau.prior=function(t){dlomax(t, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_LMX, shape=1)})
  tres[4,c(5:7)]<-fit.bayesmeta.LMX_HN05adj$summary[c("median","95% lower","95% upper"),"mu"]
  tres[4,c(9:11)]<-fit.bayesmeta.LMX_HN05adj$summary[c("median","95% lower","95% upper"),"tau"]
  
  
  # learning quantification
  
  # mu
  
  integrand_HN05_mu <- function(x) {sqrt(fit.bayesmeta.HN05$dposterior(mu=x)*dnorm(x, mean=mu_mean, sd=mu_sd))}
  integrand_EXP_HN05adj_mu <- function(x) {sqrt(fit.bayesmeta.EXP_HN05adj$dposterior(mu=x)*dnorm(x, mean=mu_mean, sd=mu_sd))}
  integrand_HC_HN05adj_mu <- function(x) {sqrt(fit.bayesmeta.HC_HN05adj$dposterior(mu=x)*dnorm(x, mean=mu_mean, sd=mu_sd))}
  integrand_LMX_HN05adj_mu <- function(x) {sqrt(fit.bayesmeta.LMX_HN05adj$dposterior(mu=x)*dnorm(x, mean=mu_mean, sd=mu_sd))}
  
  tres[1,13]<-sqrt(1-integrate(integrand_HN05_mu, lower = -Inf, upper = Inf)$value)
  tres[2,13]<-sqrt(1-integrate(integrand_EXP_HN05adj_mu, lower = -Inf, upper = Inf)$value)
  tres[3,13]<-sqrt(1-integrate(integrand_HC_HN05adj_mu, lower = -Inf, upper = Inf)$value) 
  tres[4,13]<-sqrt(1-integrate(integrand_LMX_HN05adj_mu, lower = -Inf, upper = Inf)$value) 
  
  # tau
  
  integrand_HN05_tau <- function(x) {sqrt(fit.bayesmeta.HN05$dposterior(tau=x)*dhalfnormal(x, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_HN))}
  integrand_EXP_HN05adj_tau <- function(x) {sqrt(fit.bayesmeta.EXP_HN05adj$dposterior(tau=x)*dexp(x, rate=1/pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_EXP))}
  integrand_HC_HN05adj_tau <- function(x) {sqrt(fit.bayesmeta.HC_HN05adj$dposterior(tau=x)*dhalfcauchy(x, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_HC))}
  integrand_LMX_HN05adj_tau <- function(x) {sqrt(fit.bayesmeta.LMX_HN05adj$dposterior(tau=x)*dlomax(x, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_LMX, shape=1))}
  
  tres[1,14]<-sqrt(1-integrate(integrand_HN05_tau, lower = 0, upper = Inf)$value)
  tres[2,14]<-sqrt(1-integrate(integrand_EXP_HN05adj_tau, lower = 0, upper = Inf)$value)
  tres[3,14]<-sqrt(1-integrate(integrand_HC_HN05adj_tau, lower = 0, upper = Inf)$value) 
  tres[4,14]<-sqrt(1-integrate(integrand_LMX_HN05adj_tau, lower = 0, upper = Inf)$value) 
  
  
  # epsilon-local grid for A*|X| scaled distributions for tau
  
  
  gr2p_HN05adj<-pri_par_epsilon_grid(AA0_HN=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_HN, 
                                     AA0_EXP=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_EXP,
                                     AA0_HC=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_HC,
                                     AA0_LMX=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_LMX,
                                     grid_epsilon=grid_epsilon)
  
  
  # sensitivity quantification
  
  # HN
  
  fit.bayesmeta.HN05 <- bayesmeta(y=df[,"y"], 
                                  sigma=df[,"sigma"],
                                  labels=df[,"labels"],
                                  mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                  tau.prior=function(t){dhalfnormal(t, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_HN)})
  
  fit.bayesmeta.HN05_mu_l <- bayesmeta(y=df[,"y"], 
                                       sigma=df[,"sigma"],
                                       labels=df[,"labels"],
                                       mu.prior.mean=mu_mean, mu.prior.sd=AAl_normal_mu,
                                       tau.prior=function(t){dhalfnormal(t, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_HN)})
  
  fit.bayesmeta.HN05_mu_u <- bayesmeta(y=df[,"y"], 
                                       sigma=df[,"sigma"],
                                       labels=df[,"labels"],
                                       mu.prior.mean=mu_mean, mu.prior.sd=AAu_normal_mu,
                                       tau.prior=function(t){dhalfnormal(t, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_HN)})
  
  fit.bayesmeta.HN05_tau_l <- bayesmeta(y=df[,"y"], 
                                        sigma=df[,"sigma"],
                                        labels=df[,"labels"],
                                        mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                        tau.prior=function(t){dhalfnormal(t, scale=gr2p_HN05adj$p_HN_l)})
  
  fit.bayesmeta.HN05_tau_u <- bayesmeta(y=df[,"y"], 
                                        sigma=df[,"sigma"],
                                        labels=df[,"labels"],
                                        mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                        tau.prior=function(t){dhalfnormal(t, scale=gr2p_HN05adj$p_HN_u)})
  
  
  integrand_HN05_l_base_mu <- function(x) {sqrt(fit.bayesmeta.HN05$dposterior(mu=x)*fit.bayesmeta.HN05_mu_l$dposterior(mu=x))}
  sens_HN05_l_base_mu<-sqrt(1-integrate(integrand_HN05_l_base_mu, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  integrand_HN05_u_base_mu <- function(x) {sqrt(fit.bayesmeta.HN05$dposterior(mu=x)*fit.bayesmeta.HN05_mu_u$dposterior(mu=x))}
  sens_HN05_u_base_mu<-sqrt(1-integrate(integrand_HN05_u_base_mu, lower = -Inf, upper = Inf)$value)/grid_epsilon  
  worst_sens_HN05_mu<-max(sens_HN05_l_base_mu, sens_HN05_u_base_mu)
  
  integrand_HN05_l_base_tau <- function(x) {sqrt(fit.bayesmeta.HN05$dposterior(tau=x)*fit.bayesmeta.HN05_tau_l$dposterior(tau=x))}
  sens_HN05_l_base_tau<-sqrt(1-integrate(integrand_HN05_l_base_tau, lower = 0, upper = Inf)$value)/grid_epsilon  
  integrand_HN05_u_base_tau <- function(x) {sqrt(fit.bayesmeta.HN05$dposterior(tau=x)*fit.bayesmeta.HN05_tau_u$dposterior(tau=x))}
  sens_HN05_u_base_tau<-sqrt(1-integrate(integrand_HN05_u_base_tau, lower = 0, upper = Inf)$value)/grid_epsilon  
  worst_sens_HN05_tau<-max(sens_HN05_l_base_tau, sens_HN05_u_base_tau)
  
  
  # EXP
  
  fit.bayesmeta.EXP_HN05adj <- bayesmeta(y=df[,"y"], 
                                         sigma=df[,"sigma"],
                                         labels=df[,"labels"],
                                         mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                         tau.prior=function(t){dexp(t, rate=1/pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_EXP)})
  
  fit.bayesmeta.EXP_HN05adj_mu_l <- bayesmeta(y=df[,"y"], 
                                              sigma=df[,"sigma"],
                                              labels=df[,"labels"],
                                              mu.prior.mean=mu_mean, mu.prior.sd=AAl_normal_mu,
                                              tau.prior=function(t){dexp(t, rate=1/pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_EXP)})
  
  fit.bayesmeta.EXP_HN05adj_mu_u <- bayesmeta(y=df[,"y"], 
                                              sigma=df[,"sigma"],
                                              labels=df[,"labels"],
                                              mu.prior.mean=mu_mean, mu.prior.sd=AAu_normal_mu,
                                              tau.prior=function(t){dexp(t, rate=1/pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_EXP)})
  
  fit.bayesmeta.EXP_HN05adj_tau_l <- bayesmeta(y=df[,"y"], 
                                               sigma=df[,"sigma"],
                                               labels=df[,"labels"],
                                               mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                               tau.prior=function(t){dexp(t, rate=1/gr2p_HN05adj$p_EXP_l)})
  
  fit.bayesmeta.EXP_HN05adj_tau_u <- bayesmeta(y=df[,"y"], 
                                               sigma=df[,"sigma"],
                                               labels=df[,"labels"],
                                               mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                               tau.prior=function(t){dexp(t, rate=1/gr2p_HN05adj$p_EXP_u)})
  
  
  integrand_EXP_HN05adj_l_base_mu <- function(x) {sqrt(fit.bayesmeta.EXP_HN05adj$dposterior(mu=x)*fit.bayesmeta.EXP_HN05adj_mu_l$dposterior(mu=x))}
  sens_EXP_HN05adj_l_base_mu<-sqrt(1-integrate(integrand_EXP_HN05adj_l_base_mu, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  integrand_EXP_HN05adj_u_base_mu <- function(x) {sqrt(fit.bayesmeta.EXP_HN05adj$dposterior(mu=x)*fit.bayesmeta.EXP_HN05adj_mu_u$dposterior(mu=x))}
  sens_EXP_HN05adj_u_base_mu<-sqrt(1-integrate(integrand_EXP_HN05adj_u_base_mu, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  worst_sens_EXP_HN05adj_mu<-max(sens_EXP_HN05adj_l_base_mu, sens_EXP_HN05adj_u_base_mu)
  
  integrand_EXP_HN05adj_l_base_tau <- function(x) {sqrt(fit.bayesmeta.EXP_HN05adj$dposterior(tau=x)*fit.bayesmeta.EXP_HN05adj_tau_l$dposterior(tau=x))}
  sens_EXP_HN05adj_l_base_tau<-sqrt(1-integrate(integrand_EXP_HN05adj_l_base_tau, lower = 0, upper = Inf)$value)/grid_epsilon 
  integrand_EXP_HN05adj_u_base_tau <- function(x) {sqrt(fit.bayesmeta.EXP_HN05adj$dposterior(tau=x)*fit.bayesmeta.EXP_HN05adj_tau_u$dposterior(tau=x))}
  sens_EXP_HN05adj_u_base_tau<-sqrt(1-integrate(integrand_EXP_HN05adj_u_base_tau, lower = 0, upper = Inf)$value)/grid_epsilon
  worst_sens_EXP_HN05adj_tau<-max(sens_EXP_HN05adj_l_base_tau, sens_EXP_HN05adj_u_base_tau)
  
  # HC
  
  fit.bayesmeta.HC_HN05adj <- bayesmeta(y=df[,"y"], 
                                        sigma=df[,"sigma"],
                                        labels=df[,"labels"],
                                        mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                        tau.prior=function(t){dhalfcauchy(t, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_HC)})
  
  fit.bayesmeta.HC_HN05adj_mu_l <- bayesmeta(y=df[,"y"], 
                                             sigma=df[,"sigma"],
                                             labels=df[,"labels"],
                                             mu.prior.mean=mu_mean, mu.prior.sd=AAl_normal_mu,
                                             tau.prior=function(t){dhalfcauchy(t, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_HC)})
  
  fit.bayesmeta.HC_HN05adj_mu_u <- bayesmeta(y=df[,"y"], 
                                             sigma=df[,"sigma"],
                                             labels=df[,"labels"],
                                             mu.prior.mean=mu_mean, mu.prior.sd=AAu_normal_mu,
                                             tau.prior=function(t){dhalfcauchy(t, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_HC)})
  
  fit.bayesmeta.HC_HN05adj_tau_l <- bayesmeta(y=df[,"y"], 
                                              sigma=df[,"sigma"],
                                              labels=df[,"labels"],
                                              mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                              tau.prior=function(t){dhalfcauchy(t, scale=gr2p_HN05adj$p_HC_l)})
  
  fit.bayesmeta.HC_HN05adj_tau_u <- bayesmeta(y=df[,"y"], 
                                              sigma=df[,"sigma"],
                                              labels=df[,"labels"],
                                              mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                              tau.prior=function(t){dhalfcauchy(t, scale=gr2p_HN05adj$p_HC_u)})
  
  
  integrand_HC_HN05adj_l_base_mu <- function(x) {sqrt(fit.bayesmeta.HC_HN05adj$dposterior(mu=x)*fit.bayesmeta.HC_HN05adj_mu_l$dposterior(mu=x))}
  sens_HC_HN05adj_l_base_mu<-sqrt(1-integrate(integrand_HC_HN05adj_l_base_mu, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  integrand_HC_HN05adj_u_base_mu <- function(x) {sqrt(fit.bayesmeta.HC_HN05adj$dposterior(mu=x)*fit.bayesmeta.HC_HN05adj_mu_u$dposterior(mu=x))}
  sens_HC_HN05adj_u_base_mu<-sqrt(1-integrate(integrand_HC_HN05adj_u_base_mu, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  worst_sens_HC_HN05adj_mu<-max(sens_HC_HN05adj_l_base_mu, sens_HC_HN05adj_u_base_mu)
  
  integrand_HC_HN05adj_l_base_tau <- function(x) {sqrt(fit.bayesmeta.HC_HN05adj$dposterior(tau=x)*fit.bayesmeta.HC_HN05adj_tau_l$dposterior(tau=x))}
  sens_HC_HN05adj_l_base_tau<-sqrt(1-integrate(integrand_HC_HN05adj_l_base_tau, lower = 0, upper = Inf)$value)/grid_epsilon 
  integrand_HC_HN05adj_u_base_tau <- function(x) {sqrt(fit.bayesmeta.HC_HN05adj$dposterior(tau=x)*fit.bayesmeta.HC_HN05adj_tau_u$dposterior(tau=x))}
  sens_HC_HN05adj_u_base_tau<-sqrt(1-integrate(integrand_HC_HN05adj_u_base_tau, lower = 0, upper = Inf)$value)/grid_epsilon 
  worst_sens_HC_HN05adj_tau<-max(sens_HC_HN05adj_l_base_tau, sens_HC_HN05adj_u_base_tau)
  
  # LMX
  
  fit.bayesmeta.LMX_HN05adj <- bayesmeta(y=df[,"y"], 
                                         sigma=df[,"sigma"],
                                         labels=df[,"labels"],
                                         mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                         tau.prior=function(t){dlomax(t, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_LMX, shape=1)})
  
  fit.bayesmeta.LMX_HN05adj_mu_l <- bayesmeta(y=df[,"y"], 
                                              sigma=df[,"sigma"],
                                              labels=df[,"labels"],
                                              mu.prior.mean=mu_mean, mu.prior.sd=AAl_normal_mu,
                                              tau.prior=function(t){dlomax(t, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_LMX, shape=1)})
  
  fit.bayesmeta.LMX_HN05adj_mu_u <- bayesmeta(y=df[,"y"], 
                                              sigma=df[,"sigma"],
                                              labels=df[,"labels"],
                                              mu.prior.mean=mu_mean, mu.prior.sd=AAu_normal_mu,
                                              tau.prior=function(t){dlomax(t, scale=pri_par_adjust_static(UU=U1, tail_prob=tail_alpha_static)$p_LMX, shape=1)})
  
  fit.bayesmeta.LMX_HN05adj_tau_l <- bayesmeta(y=df[,"y"], 
                                               sigma=df[,"sigma"],
                                               labels=df[,"labels"],
                                               mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                               tau.prior=function(t){dlomax(t, scale=gr2p_HN05adj$p_LMX_l, shape=1)})
  
  fit.bayesmeta.LMX_HN05adj_tau_u <- bayesmeta(y=df[,"y"], 
                                               sigma=df[,"sigma"],
                                               labels=df[,"labels"],
                                               mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                               tau.prior=function(t){dlomax(t, scale=gr2p_HN05adj$p_LMX_u, shape=1)})
  
  
  integrand_LMX_HN05adj_l_base_mu <- function(x) {sqrt(fit.bayesmeta.LMX_HN05adj$dposterior(mu=x)*fit.bayesmeta.LMX_HN05adj_mu_l$dposterior(mu=x))}
  sens_LMX_HN05adj_l_base_mu<-sqrt(1-integrate(integrand_LMX_HN05adj_l_base_mu, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  integrand_LMX_HN05adj_u_base_mu <- function(x) {sqrt(fit.bayesmeta.LMX_HN05adj$dposterior(mu=x)*fit.bayesmeta.LMX_HN05adj_mu_u$dposterior(mu=x))}
  sens_LMX_HN05adj_u_base_mu<-sqrt(1-integrate(integrand_LMX_HN05adj_u_base_mu, lower = -Inf, upper = Inf)$value)/grid_epsilon
  worst_sens_LMX_HN05adj_mu<-max(sens_LMX_HN05adj_l_base_mu, sens_LMX_HN05adj_u_base_mu)
  
  integrand_LMX_HN05adj_l_base_tau <- function(x) {sqrt(fit.bayesmeta.LMX_HN05adj$dposterior(tau=x)*fit.bayesmeta.LMX_HN05adj_tau_l$dposterior(tau=x))}
  sens_LMX_HN05adj_l_base_tau<-sqrt(1-integrate(integrand_LMX_HN05adj_l_base_tau, lower = 0, upper = Inf)$value)/grid_epsilon 
  integrand_LMX_HN05adj_u_base_tau <- function(x) {sqrt(fit.bayesmeta.LMX_HN05adj$dposterior(tau=x)*fit.bayesmeta.LMX_HN05adj_tau_u$dposterior(tau=x))}
  sens_LMX_HN05adj_u_base_tau<-sqrt(1-integrate(integrand_LMX_HN05adj_u_base_tau, lower = 0, upper = Inf)$value)/grid_epsilon 
  worst_sens_LMX_HN05adj_tau<-max(sens_LMX_HN05adj_l_base_tau, sens_LMX_HN05adj_u_base_tau)
  
  
  
  tres[1,15]<-worst_sens_HN05_mu
  tres[2,15]<-worst_sens_EXP_HN05adj_mu
  tres[3,15]<-worst_sens_HC_HN05adj_mu 
  tres[4,15]<-worst_sens_LMX_HN05adj_mu 
  
  tres[1,16]<-worst_sens_HN05_tau
  tres[2,16]<-worst_sens_EXP_HN05adj_tau
  tres[3,16]<-worst_sens_HC_HN05adj_tau  
  tres[4,16]<-worst_sens_LMX_HN05adj_tau
  
  
  
  
  
  
  ####----  (HN(1)-like) static 0.05-tail adjustment with threshold U=2 (HN(1)) ----####
  
  # prior parameters 
  
  tres[c(9:12),1]<-U2
  tres[c(9:12),2]<-tail_alpha_static
  tres[9,3]<-pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_HN
  tres[10,3]<-pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_EXP
  tres[11,3]<-pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_HC
  tres[12,3]<-pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_LMX
  
  
  # effective mrlmc
  
  
  tres[9,4]<- median(effective_rlmc(df=df, r.tau.prior=function(MM)rhalfnormal(n=MM, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_HN), 
                                     MM=1000000, output="sample", step=0.03))
  tres[10,4]<- median(effective_rlmc(df=df, r.tau.prior=function(MM)rexp(n=MM, rate=1/pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_EXP), 
                                      MM=1000000, output="sample", step=0.03))
  tres[11,4]<- median(effective_rlmc(df=df, r.tau.prior=function(MM)rhalfcauchy(n=MM, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_HC), 
                                      MM=1000000, output="sample", step=0.03))
  tres[12,4]<- median(effective_rlmc(df=df, r.tau.prior=function(MM)rlomax(n=MM, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_LMX, shape=1), 
                                      MM=1000000, output="sample", step=0.03))
  
  # posteriors for base HN, EXP, HC and LMX heterogeneity priors
  
  
  fit.bayesmeta.HN1 <- bayesmeta(y=df[,"y"], 
                                 sigma=df[,"sigma"],
                                 labels=df[,"labels"],
                                 mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                 tau.prior=function(t){dhalfnormal(t, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_HN)})
  tres[9,c(5:7)]<-fit.bayesmeta.HN1$summary[c("median","95% lower","95% upper"),"mu"]
  tres[9,c(9:11)]<-fit.bayesmeta.HN1$summary[c("median","95% lower","95% upper"),"tau"]
  
  fit.bayesmeta.EXP_HN1adj <- bayesmeta(y=df[,"y"], 
                                        sigma=df[,"sigma"],
                                        labels=df[,"labels"],
                                        mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                        tau.prior=function(t){dexp(t, rate=1/pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_EXP)})
  tres[10,c(5:7)]<-fit.bayesmeta.EXP_HN1adj$summary[c("median","95% lower","95% upper"),"mu"]
  tres[10,c(9:11)]<-fit.bayesmeta.EXP_HN1adj$summary[c("median","95% lower","95% upper"),"tau"]
  
  fit.bayesmeta.HC_HN1adj <- bayesmeta(y=df[,"y"], 
                                       sigma=df[,"sigma"],
                                       labels=df[,"labels"],
                                       mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                       tau.prior=function(t){dhalfcauchy(t, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_HC)})
  tres[11,c(5:7)]<-fit.bayesmeta.HC_HN1adj$summary[c("median","95% lower","95% upper"),"mu"]
  tres[11,c(9:11)]<-fit.bayesmeta.HC_HN1adj$summary[c("median","95% lower","95% upper"),"tau"]
  
  fit.bayesmeta.LMX_HN1adj <- bayesmeta(y=df[,"y"], 
                                        sigma=df[,"sigma"],
                                        labels=df[,"labels"],
                                        mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                        tau.prior=function(t){dlomax(t, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_LMX, shape=1)})
  tres[12,c(5:7)]<-fit.bayesmeta.LMX_HN1adj$summary[c("median","95% lower","95% upper"),"mu"]
  tres[12,c(9:11)]<-fit.bayesmeta.LMX_HN1adj$summary[c("median","95% lower","95% upper"),"tau"]
  
  
  # learning quantification
  
  # mu
  
  integrand_HN1_mu <- function(x) {sqrt(fit.bayesmeta.HN1$dposterior(mu=x)*dnorm(x, mean=mu_mean, sd=mu_sd))}
  integrand_EXP_HN1adj_mu <- function(x) {sqrt(fit.bayesmeta.EXP_HN1adj$dposterior(mu=x)*dnorm(x, mean=mu_mean, sd=mu_sd))}
  integrand_HC_HN1adj_mu <- function(x) {sqrt(fit.bayesmeta.HC_HN1adj$dposterior(mu=x)*dnorm(x, mean=mu_mean, sd=mu_sd))}
  integrand_LMX_HN1adj_mu <- function(x) {sqrt(fit.bayesmeta.LMX_HN1adj$dposterior(mu=x)*dnorm(x, mean=mu_mean, sd=mu_sd))}
  
  tres[9,13]<-sqrt(1-integrate(integrand_HN1_mu, lower = -Inf, upper = Inf)$value)
  tres[10,13]<-sqrt(1-integrate(integrand_EXP_HN1adj_mu, lower = -Inf, upper = Inf)$value)
  tres[11,13]<-sqrt(1-integrate(integrand_HC_HN1adj_mu, lower = -Inf, upper = Inf)$value) 
  tres[12,13]<-sqrt(1-integrate(integrand_LMX_HN1adj_mu, lower = -Inf, upper = Inf)$value) 
  
  # tau
  
  integrand_HN1_tau <- function(x) {sqrt(fit.bayesmeta.HN1$dposterior(tau=x)*dhalfnormal(x, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_HN))}
  integrand_EXP_HN1adj_tau <- function(x) {sqrt(fit.bayesmeta.EXP_HN1adj$dposterior(tau=x)*dexp(x, rate=1/pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_EXP))}
  integrand_HC_HN1adj_tau <- function(x) {sqrt(fit.bayesmeta.HC_HN1adj$dposterior(tau=x)*dhalfcauchy(x, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_HC))}
  integrand_LMX_HN1adj_tau <- function(x) {sqrt(fit.bayesmeta.LMX_HN1adj$dposterior(tau=x)*dlomax(x, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_LMX, shape=1))}
  
  tres[9,14]<-sqrt(1-integrate(integrand_HN1_tau, lower = 0, upper = Inf)$value)
  tres[10,14]<-sqrt(1-integrate(integrand_EXP_HN1adj_tau, lower = 0, upper = Inf)$value)
  tres[11,14]<-sqrt(1-integrate(integrand_HC_HN1adj_tau, lower = 0, upper = Inf)$value) 
  tres[12,14]<-sqrt(1-integrate(integrand_LMX_HN1adj_tau, lower = 0, upper = Inf)$value) 
  
  
  # epsilon-local grid for A*|X| scaled distributions for tau
  
  
  gr2p_HN1adj<-pri_par_epsilon_grid(AA0_HN=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_HN, 
                                    AA0_EXP=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_EXP,
                                    AA0_HC=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_HC,
                                    AA0_LMX=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_LMX,
                                    grid_epsilon=grid_epsilon)
  
  # sensitivity quantification
  
  # HN
  
  fit.bayesmeta.HN1 <- bayesmeta(y=df[,"y"], 
                                 sigma=df[,"sigma"],
                                 labels=df[,"labels"],
                                 mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                 tau.prior=function(t){dhalfnormal(t, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_HN)})
  
  fit.bayesmeta.HN1_mu_l <- bayesmeta(y=df[,"y"], 
                                      sigma=df[,"sigma"],
                                      labels=df[,"labels"],
                                      mu.prior.mean=mu_mean, mu.prior.sd=AAl_normal_mu,
                                      tau.prior=function(t){dhalfnormal(t, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_HN)})
  
  fit.bayesmeta.HN1_mu_u <- bayesmeta(y=df[,"y"], 
                                      sigma=df[,"sigma"],
                                      labels=df[,"labels"],
                                      mu.prior.mean=mu_mean, mu.prior.sd=AAu_normal_mu,
                                      tau.prior=function(t){dhalfnormal(t, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_HN)})
  
  fit.bayesmeta.HN1_tau_l <- bayesmeta(y=df[,"y"], 
                                       sigma=df[,"sigma"],
                                       labels=df[,"labels"],
                                       mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                       tau.prior=function(t){dhalfnormal(t, scale=gr2p_HN1adj$p_HN_l)})
  
  fit.bayesmeta.HN1_tau_u <- bayesmeta(y=df[,"y"], 
                                       sigma=df[,"sigma"],
                                       labels=df[,"labels"],
                                       mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                       tau.prior=function(t){dhalfnormal(t, scale=gr2p_HN1adj$p_HN_u)})
  
  
  integrand_HN1_l_base_mu <- function(x) {sqrt(fit.bayesmeta.HN1$dposterior(mu=x)*fit.bayesmeta.HN1_mu_l$dposterior(mu=x))}
  sens_HN1_l_base_mu<-sqrt(1-integrate(integrand_HN1_l_base_mu, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  integrand_HN1_u_base_mu <- function(x) {sqrt(fit.bayesmeta.HN1$dposterior(mu=x)*fit.bayesmeta.HN1_mu_u$dposterior(mu=x))}
  sens_HN1_u_base_mu<-sqrt(1-integrate(integrand_HN1_u_base_mu, lower = -Inf, upper = Inf)$value)/grid_epsilon  
  worst_sens_HN1_mu<-max(sens_HN1_l_base_mu, sens_HN1_u_base_mu)
  
  integrand_HN1_l_base_tau <- function(x) {sqrt(fit.bayesmeta.HN1$dposterior(tau=x)*fit.bayesmeta.HN1_tau_l$dposterior(tau=x))}
  sens_HN1_l_base_tau<-sqrt(1-integrate(integrand_HN1_l_base_tau, lower = 0, upper = Inf)$value)/grid_epsilon  
  integrand_HN1_u_base_tau <- function(x) {sqrt(fit.bayesmeta.HN1$dposterior(tau=x)*fit.bayesmeta.HN1_tau_u$dposterior(tau=x))}
  sens_HN1_u_base_tau<-sqrt(1-integrate(integrand_HN1_u_base_tau, lower = 0, upper = Inf)$value)/grid_epsilon  
  worst_sens_HN1_tau<-max(sens_HN1_l_base_tau, sens_HN1_u_base_tau)
  
  
  # EXP
  
  fit.bayesmeta.EXP_HN1adj <- bayesmeta(y=df[,"y"], 
                                        sigma=df[,"sigma"],
                                        labels=df[,"labels"],
                                        mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                        tau.prior=function(t){dexp(t, rate=1/pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_EXP)})
  
  fit.bayesmeta.EXP_HN1adj_mu_l <- bayesmeta(y=df[,"y"], 
                                             sigma=df[,"sigma"],
                                             labels=df[,"labels"],
                                             mu.prior.mean=mu_mean, mu.prior.sd=AAl_normal_mu,
                                             tau.prior=function(t){dexp(t, rate=1/pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_EXP)})
  
  fit.bayesmeta.EXP_HN1adj_mu_u <- bayesmeta(y=df[,"y"], 
                                             sigma=df[,"sigma"],
                                             labels=df[,"labels"],
                                             mu.prior.mean=mu_mean, mu.prior.sd=AAu_normal_mu,
                                             tau.prior=function(t){dexp(t, rate=1/pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_EXP)})
  
  fit.bayesmeta.EXP_HN1adj_tau_l <- bayesmeta(y=df[,"y"], 
                                              sigma=df[,"sigma"],
                                              labels=df[,"labels"],
                                              mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                              tau.prior=function(t){dexp(t, rate=1/gr2p_HN1adj$p_EXP_l)})
  
  fit.bayesmeta.EXP_HN1adj_tau_u <- bayesmeta(y=df[,"y"], 
                                              sigma=df[,"sigma"],
                                              labels=df[,"labels"],
                                              mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                              tau.prior=function(t){dexp(t, rate=1/gr2p_HN1adj$p_EXP_u)})
  
  
  integrand_EXP_HN1adj_l_base_mu <- function(x) {sqrt(fit.bayesmeta.EXP_HN1adj$dposterior(mu=x)*fit.bayesmeta.EXP_HN1adj_mu_l$dposterior(mu=x))}
  sens_EXP_HN1adj_l_base_mu<-sqrt(1-integrate(integrand_EXP_HN1adj_l_base_mu, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  integrand_EXP_HN1adj_u_base_mu <- function(x) {sqrt(fit.bayesmeta.EXP_HN1adj$dposterior(mu=x)*fit.bayesmeta.EXP_HN1adj_mu_u$dposterior(mu=x))}
  sens_EXP_HN1adj_u_base_mu<-sqrt(1-integrate(integrand_EXP_HN1adj_u_base_mu, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  worst_sens_EXP_HN1adj_mu<-max(sens_EXP_HN1adj_l_base_mu, sens_EXP_HN1adj_u_base_mu)
  
  integrand_EXP_HN1adj_l_base_tau <- function(x) {sqrt(fit.bayesmeta.EXP_HN1adj$dposterior(tau=x)*fit.bayesmeta.EXP_HN1adj_tau_l$dposterior(tau=x))}
  sens_EXP_HN1adj_l_base_tau<-sqrt(1-integrate(integrand_EXP_HN1adj_l_base_tau, lower = 0, upper = Inf)$value)/grid_epsilon 
  integrand_EXP_HN1adj_u_base_tau <- function(x) {sqrt(fit.bayesmeta.EXP_HN1adj$dposterior(tau=x)*fit.bayesmeta.EXP_HN1adj_tau_u$dposterior(tau=x))}
  sens_EXP_HN1adj_u_base_tau<-sqrt(1-integrate(integrand_EXP_HN1adj_u_base_tau, lower = 0, upper = Inf)$value)/grid_epsilon
  worst_sens_EXP_HN1adj_tau<-max(sens_EXP_HN1adj_l_base_tau, sens_EXP_HN1adj_u_base_tau)
  
  
  # HC
  
  fit.bayesmeta.HC_HN1adj <- bayesmeta(y=df[,"y"], 
                                       sigma=df[,"sigma"],
                                       labels=df[,"labels"],
                                       mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                       tau.prior=function(t){dhalfcauchy(t, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_HC)})
  
  fit.bayesmeta.HC_HN1adj_mu_l <- bayesmeta(y=df[,"y"], 
                                            sigma=df[,"sigma"],
                                            labels=df[,"labels"],
                                            mu.prior.mean=mu_mean, mu.prior.sd=AAl_normal_mu,
                                            tau.prior=function(t){dhalfcauchy(t, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_HC)})
  
  fit.bayesmeta.HC_HN1adj_mu_u <- bayesmeta(y=df[,"y"], 
                                            sigma=df[,"sigma"],
                                            labels=df[,"labels"],
                                            mu.prior.mean=mu_mean, mu.prior.sd=AAu_normal_mu,
                                            tau.prior=function(t){dhalfcauchy(t, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_HC)})
  
  fit.bayesmeta.HC_HN1adj_tau_l <- bayesmeta(y=df[,"y"], 
                                             sigma=df[,"sigma"],
                                             labels=df[,"labels"],
                                             mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                             tau.prior=function(t){dhalfcauchy(t, scale=gr2p_HN1adj$p_HC_l)})
  
  fit.bayesmeta.HC_HN1adj_tau_u <- bayesmeta(y=df[,"y"], 
                                             sigma=df[,"sigma"],
                                             labels=df[,"labels"],
                                             mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                             tau.prior=function(t){dhalfcauchy(t, scale=gr2p_HN1adj$p_HC_u)})
  
  
  integrand_HC_HN1adj_l_base_mu <- function(x) {sqrt(fit.bayesmeta.HC_HN1adj$dposterior(mu=x)*fit.bayesmeta.HC_HN1adj_mu_l$dposterior(mu=x))}
  sens_HC_HN1adj_l_base_mu<-sqrt(1-integrate(integrand_HC_HN1adj_l_base_mu, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  integrand_HC_HN1adj_u_base_mu <- function(x) {sqrt(fit.bayesmeta.HC_HN1adj$dposterior(mu=x)*fit.bayesmeta.HC_HN1adj_mu_u$dposterior(mu=x))}
  sens_HC_HN1adj_u_base_mu<-sqrt(1-integrate(integrand_HC_HN1adj_u_base_mu, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  worst_sens_HC_HN1adj_mu<-max(sens_HC_HN1adj_l_base_mu, sens_HC_HN1adj_u_base_mu)
  
  integrand_HC_HN1adj_l_base_tau <- function(x) {sqrt(fit.bayesmeta.HC_HN1adj$dposterior(tau=x)*fit.bayesmeta.HC_HN1adj_tau_l$dposterior(tau=x))}
  sens_HC_HN1adj_l_base_tau<-sqrt(1-integrate(integrand_HC_HN1adj_l_base_tau, lower = 0, upper = Inf)$value)/grid_epsilon 
  integrand_HC_HN1adj_u_base_tau <- function(x) {sqrt(fit.bayesmeta.HC_HN1adj$dposterior(tau=x)*fit.bayesmeta.HC_HN1adj_tau_u$dposterior(tau=x))}
  sens_HC_HN1adj_u_base_tau<-sqrt(1-integrate(integrand_HC_HN1adj_u_base_tau, lower = 0, upper = Inf)$value)/grid_epsilon 
  worst_sens_HC_HN1adj_tau<-max(sens_HC_HN1adj_l_base_tau, sens_HC_HN1adj_u_base_tau)
  
  
  # LMX
  
  fit.bayesmeta.LMX_HN1adj <- bayesmeta(y=df[,"y"], 
                                        sigma=df[,"sigma"],
                                        labels=df[,"labels"],
                                        mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                        tau.prior=function(t){dlomax(t, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_LMX, shape=1)})
  
  fit.bayesmeta.LMX_HN1adj_mu_l <- bayesmeta(y=df[,"y"], 
                                             sigma=df[,"sigma"],
                                             labels=df[,"labels"],
                                             mu.prior.mean=mu_mean, mu.prior.sd=AAl_normal_mu,
                                             tau.prior=function(t){dlomax(t, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_LMX, shape=1)})
  
  fit.bayesmeta.LMX_HN1adj_mu_u <- bayesmeta(y=df[,"y"], 
                                             sigma=df[,"sigma"],
                                             labels=df[,"labels"],
                                             mu.prior.mean=mu_mean, mu.prior.sd=AAu_normal_mu,
                                             tau.prior=function(t){dlomax(t, scale=pri_par_adjust_static(UU=U2, tail_prob=tail_alpha_static)$p_LMX, shape=1)})
  
  fit.bayesmeta.LMX_HN1adj_tau_l <- bayesmeta(y=df[,"y"], 
                                              sigma=df[,"sigma"],
                                              labels=df[,"labels"],
                                              mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                              tau.prior=function(t){dlomax(t, scale=gr2p_HN1adj$p_LMX_l, shape=1)})
  
  fit.bayesmeta.LMX_HN1adj_tau_u <- bayesmeta(y=df[,"y"], 
                                              sigma=df[,"sigma"],
                                              labels=df[,"labels"],
                                              mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                              tau.prior=function(t){dlomax(t, scale=gr2p_HN1adj$p_LMX_u, shape=1)})
  
  
  integrand_LMX_HN1adj_l_base_mu <- function(x) {sqrt(fit.bayesmeta.LMX_HN1adj$dposterior(mu=x)*fit.bayesmeta.LMX_HN1adj_mu_l$dposterior(mu=x))}
  sens_LMX_HN1adj_l_base_mu<-sqrt(1-integrate(integrand_LMX_HN1adj_l_base_mu, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  integrand_LMX_HN1adj_u_base_mu <- function(x) {sqrt(fit.bayesmeta.LMX_HN1adj$dposterior(mu=x)*fit.bayesmeta.LMX_HN1adj_mu_u$dposterior(mu=x))}
  sens_LMX_HN1adj_u_base_mu<-sqrt(1-integrate(integrand_LMX_HN1adj_u_base_mu, lower = -Inf, upper = Inf)$value)/grid_epsilon
  worst_sens_LMX_HN1adj_mu<-max(sens_LMX_HN1adj_l_base_mu, sens_LMX_HN1adj_u_base_mu)
  
  integrand_LMX_HN1adj_l_base_tau <- function(x) {sqrt(fit.bayesmeta.LMX_HN1adj$dposterior(tau=x)*fit.bayesmeta.LMX_HN1adj_tau_l$dposterior(tau=x))}
  sens_LMX_HN1adj_l_base_tau<-sqrt(1-integrate(integrand_LMX_HN1adj_l_base_tau, lower = 0, upper = Inf)$value)/grid_epsilon 
  integrand_LMX_HN1adj_u_base_tau <- function(x) {sqrt(fit.bayesmeta.LMX_HN1adj$dposterior(tau=x)*fit.bayesmeta.LMX_HN1adj_tau_u$dposterior(tau=x))}
  sens_LMX_HN1adj_u_base_tau<-sqrt(1-integrate(integrand_LMX_HN1adj_u_base_tau, lower = 0, upper = Inf)$value)/grid_epsilon 
  worst_sens_LMX_HN1adj_tau<-max(sens_LMX_HN1adj_l_base_tau, sens_LMX_HN1adj_u_base_tau)
  
  
  tres[9,15]<-worst_sens_HN1_mu
  tres[10,15]<-worst_sens_EXP_HN1adj_mu
  tres[11,15]<-worst_sens_HC_HN1adj_mu 
  tres[12,15]<-worst_sens_LMX_HN1adj_mu
  
  
  tres[9,16]<-worst_sens_HN1_tau
  tres[10,16]<-worst_sens_EXP_HN1adj_tau
  tres[11,16]<-worst_sens_HC_HN1adj_tau 
  tres[12,16]<-worst_sens_LMX_HN1adj_tau 
  
  
  
  ####----  dynamic 0.5-tail adjustment with rlmc=0.25 ----####
  
  # prior parameters 
  
  U_ref025<-sqrt(rlmc025/(1-rlmc025))*sigma_ref(df)
  
  tres[c(5:8),1] <- U_ref025
  tres[c(5:8),2] <- tail_alpha_dynamic
  tres[5,3]<-pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_HN
  tres[6,3]<-pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_EXP
  tres[7,3]<-pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_HC
  tres[8,3]<-pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_LMX
  
  # effective mrlmc
  
  tres[5,4]<- median(effective_rlmc(df=df, r.tau.prior=function(MM)rhalfnormal(n=MM, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_HN), 
                                     MM=1000000, output="sample", step=0.03))
  tres[6,4]<- median(effective_rlmc(df=df, r.tau.prior=function(MM)rexp(n=MM, rate=1/pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_EXP), 
                                     MM=1000000, output="sample", step=0.03))
  tres[7,4]<- median(effective_rlmc(df=df, r.tau.prior=function(MM)rhalfcauchy(n=MM, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_HC), 
                                     MM=1000000, output="sample", step=0.03))
  tres[8,4]<- median(effective_rlmc(df=df, r.tau.prior=function(MM)rlomax(n=MM, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_LMX, shape=1), 
                                     MM=1000000, output="sample", step=0.03))
  
  
  # posteriors for base HN, EXP, HC and LMX heterogeneity priors
  
  
  fit.bayesmeta.HN05_dyn <- bayesmeta(y=df[,"y"], 
                                      sigma=df[,"sigma"],
                                      labels=df[,"labels"],
                                      mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                      tau.prior=function(t){dhalfnormal(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_HN)})
  tres[5,c(5:7)]<-fit.bayesmeta.HN05_dyn$summary[c("median","95% lower","95% upper"),"mu"]
  tres[5,c(9:11)]<-fit.bayesmeta.HN05_dyn$summary[c("median","95% lower","95% upper"),"tau"]
  
  fit.bayesmeta.EXP_HN05adj_dyn <- bayesmeta(y=df[,"y"], 
                                             sigma=df[,"sigma"],
                                             labels=df[,"labels"],
                                             mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                             tau.prior=function(t){dexp(t, rate=1/pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_EXP)})
  tres[6,c(5:7)]<-fit.bayesmeta.EXP_HN05adj_dyn$summary[c("median","95% lower","95% upper"),"mu"]
  tres[6,c(9:11)]<-fit.bayesmeta.EXP_HN05adj_dyn$summary[c("median","95% lower","95% upper"),"tau"]
  
  fit.bayesmeta.HC_HN05adj_dyn <- bayesmeta(y=df[,"y"], 
                                            sigma=df[,"sigma"],
                                            labels=df[,"labels"],
                                            mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                            tau.prior=function(t){dhalfcauchy(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_HC)})
  tres[7,c(5:7)]<-fit.bayesmeta.HC_HN05adj_dyn$summary[c("median","95% lower","95% upper"),"mu"]
  tres[7,c(9:11)]<-fit.bayesmeta.HC_HN05adj_dyn$summary[c("median","95% lower","95% upper"),"tau"]
  
  fit.bayesmeta.LMX_HN05adj_dyn <- bayesmeta(y=df[,"y"], 
                                             sigma=df[,"sigma"],
                                             labels=df[,"labels"],
                                             mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                             tau.prior=function(t){dlomax(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_LMX, shape=1)})
  tres[8,c(5:7)]<-fit.bayesmeta.LMX_HN05adj_dyn$summary[c("median","95% lower","95% upper"),"mu"]
  tres[8,c(9:11)]<-fit.bayesmeta.LMX_HN05adj_dyn$summary[c("median","95% lower","95% upper"),"tau"]
  
  
  # learning quantification
  
  # mu
  
  integrand_HN05_mu_dyn <- function(x) {sqrt(fit.bayesmeta.HN05_dyn$dposterior(mu=x)*dnorm(x, mean=mu_mean, sd=mu_sd))}
  integrand_EXP_HN05adj_mu_dyn <- function(x) {sqrt(fit.bayesmeta.EXP_HN05adj_dyn$dposterior(mu=x)*dnorm(x, mean=mu_mean, sd=mu_sd))}
  integrand_HC_HN05adj_mu_dyn <- function(x) {sqrt(fit.bayesmeta.HC_HN05adj_dyn$dposterior(mu=x)*dnorm(x, mean=mu_mean, sd=mu_sd))}
  integrand_LMX_HN05adj_mu_dyn <- function(x) {sqrt(fit.bayesmeta.LMX_HN05adj_dyn$dposterior(mu=x)*dnorm(x, mean=mu_mean, sd=mu_sd))}
  
  
  tres[5,13]<-sqrt(1-integrate(integrand_HN05_mu_dyn, lower = -Inf, upper = Inf)$value)
  tres[6,13]<-sqrt(1-integrate(integrand_EXP_HN05adj_mu_dyn, lower = -Inf, upper = Inf)$value)
  tres[7,13]<-sqrt(1-integrate(integrand_HC_HN05adj_mu_dyn, lower = -Inf, upper = Inf)$value) 
  tres[8,13]<-sqrt(1-integrate(integrand_LMX_HN05adj_mu_dyn, lower = -Inf, upper = Inf)$value) 
  
  # tau
  
  integrand_HN05_tau_dyn <- function(x) {sqrt(fit.bayesmeta.HN05_dyn$dposterior(tau=x)*dhalfnormal(x, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_HN))}
  integrand_EXP_HN05adj_tau_dyn <- function(x) {sqrt(fit.bayesmeta.EXP_HN05adj_dyn$dposterior(tau=x)*dexp(x, rate=1/pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_EXP))}
  integrand_HC_HN05adj_tau_dyn <- function(x) {sqrt(fit.bayesmeta.HC_HN05adj_dyn$dposterior(tau=x)*dhalfcauchy(x, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_HC))}
  integrand_LMX_HN05adj_tau_dyn <- function(x) {sqrt(fit.bayesmeta.LMX_HN05adj_dyn$dposterior(tau=x)*dlomax(x, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_LMX, shape=1))}
  
  
  tres[5,14]<-sqrt(1-integrate(integrand_HN05_tau_dyn, lower = 0, upper = Inf)$value)
  tres[6,14]<-sqrt(1-integrate(integrand_EXP_HN05adj_tau_dyn, lower = 0, upper = Inf)$value)
  tres[7,14]<-sqrt(1-integrate(integrand_HC_HN05adj_tau_dyn, lower = 0, upper = Inf)$value) 
  tres[8,14]<-sqrt(1-integrate(integrand_LMX_HN05adj_tau_dyn, lower = 0, upper = Inf)$value) 
  
  # epsilon-local grid for A*|X| scaled distributions for tau
  
  gr2p_HN05adj_dyn<-pri_par_epsilon_grid(AA0_HN=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_HN, 
                                         AA0_EXP=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_EXP,
                                         AA0_HC=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_HC,
                                         AA0_LMX=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_LMX,
                                         grid_epsilon=grid_epsilon)
  
  
  # sensitivity quantification
  
  # HN
  
  fit.bayesmeta.HN05_dyn <- bayesmeta(y=df[,"y"], 
                                      sigma=df[,"sigma"],
                                      labels=df[,"labels"],
                                      mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                      tau.prior=function(t){dhalfnormal(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_HN)})
  
  fit.bayesmeta.HN05_mu_l_dyn <- bayesmeta(y=df[,"y"], 
                                           sigma=df[,"sigma"],
                                           labels=df[,"labels"],
                                           mu.prior.mean=mu_mean, mu.prior.sd=AAl_normal_mu,
                                           tau.prior=function(t){dhalfnormal(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_HN)})
  
  fit.bayesmeta.HN05_mu_u_dyn <- bayesmeta(y=df[,"y"], 
                                           sigma=df[,"sigma"],
                                           labels=df[,"labels"],
                                           mu.prior.mean=mu_mean, mu.prior.sd=AAu_normal_mu,
                                           tau.prior=function(t){dhalfnormal(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_HN)})
  
  fit.bayesmeta.HN05_tau_l_dyn <- bayesmeta(y=df[,"y"], 
                                            sigma=df[,"sigma"],
                                            labels=df[,"labels"],
                                            mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                            tau.prior=function(t){dhalfnormal(t, scale=gr2p_HN05adj_dyn$p_HN_l)})
  
  fit.bayesmeta.HN05_tau_u_dyn <- bayesmeta(y=df[,"y"], 
                                            sigma=df[,"sigma"],
                                            labels=df[,"labels"],
                                            mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                            tau.prior=function(t){dhalfnormal(t, scale=gr2p_HN05adj_dyn$p_HN_u)})
  
  
  integrand_HN05_l_base_mu_dyn <- function(x) {sqrt(fit.bayesmeta.HN05_dyn$dposterior(mu=x)*fit.bayesmeta.HN05_mu_l_dyn$dposterior(mu=x))}
  sens_HN05_l_base_mu_dyn<-sqrt(1-integrate(integrand_HN05_l_base_mu_dyn, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  integrand_HN05_u_base_mu_dyn <- function(x) {sqrt(fit.bayesmeta.HN05_dyn$dposterior(mu=x)*fit.bayesmeta.HN05_mu_u_dyn$dposterior(mu=x))}
  sens_HN05_u_base_mu_dyn<-sqrt(1-integrate(integrand_HN05_u_base_mu_dyn, lower = -Inf, upper = Inf)$value)/grid_epsilon  
  worst_sens_HN05_mu_dyn<-max(sens_HN05_l_base_mu_dyn, sens_HN05_u_base_mu_dyn)
  
  integrand_HN05_l_base_tau_dyn <- function(x) {sqrt(fit.bayesmeta.HN05_dyn$dposterior(tau=x)*fit.bayesmeta.HN05_tau_l_dyn$dposterior(tau=x))}
  sens_HN05_l_base_tau_dyn<-sqrt(1-integrate(integrand_HN05_l_base_tau_dyn, lower = 0, upper = Inf)$value)/grid_epsilon  
  integrand_HN05_u_base_tau_dyn <- function(x) {sqrt(fit.bayesmeta.HN05_dyn$dposterior(tau=x)*fit.bayesmeta.HN05_tau_u_dyn$dposterior(tau=x))}
  sens_HN05_u_base_tau_dyn<-sqrt(1-integrate(integrand_HN05_u_base_tau_dyn, lower = 0, upper = Inf)$value)/grid_epsilon  
  worst_sens_HN05_tau_dyn<-max(sens_HN05_l_base_tau_dyn, sens_HN05_u_base_tau_dyn)
  
  # EXP
  
  fit.bayesmeta.EXP_HN05adj_dyn <- bayesmeta(y=df[,"y"], 
                                             sigma=df[,"sigma"],
                                             labels=df[,"labels"],
                                             mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                             tau.prior=function(t){dexp(t, rate=1/pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_EXP)})
  
  fit.bayesmeta.EXP_HN05adj_mu_l_dyn <- bayesmeta(y=df[,"y"], 
                                                  sigma=df[,"sigma"],
                                                  labels=df[,"labels"],
                                                  mu.prior.mean=mu_mean, mu.prior.sd=AAl_normal_mu,
                                                  tau.prior=function(t){dexp(t, rate=1/pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_EXP)})
  
  fit.bayesmeta.EXP_HN05adj_mu_u_dyn <- bayesmeta(y=df[,"y"], 
                                                  sigma=df[,"sigma"],
                                                  labels=df[,"labels"],
                                                  mu.prior.mean=mu_mean, mu.prior.sd=AAu_normal_mu,
                                                  tau.prior=function(t){dexp(t, rate=1/pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_EXP)})
  
  fit.bayesmeta.EXP_HN05adj_tau_l_dyn <- bayesmeta(y=df[,"y"], 
                                                   sigma=df[,"sigma"],
                                                   labels=df[,"labels"],
                                                   mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                                   tau.prior=function(t){dexp(t, rate=1/gr2p_HN05adj_dyn$p_EXP_l)})
  
  fit.bayesmeta.EXP_HN05adj_tau_u_dyn <- bayesmeta(y=df[,"y"], 
                                                   sigma=df[,"sigma"],
                                                   labels=df[,"labels"],
                                                   mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                                   tau.prior=function(t){dexp(t, rate=1/gr2p_HN05adj_dyn$p_EXP_u)})
  
  
  integrand_EXP_HN05adj_l_base_mu_dyn <- function(x) {sqrt(fit.bayesmeta.EXP_HN05adj_dyn$dposterior(mu=x)*fit.bayesmeta.EXP_HN05adj_mu_l_dyn$dposterior(mu=x))}
  sens_EXP_HN05adj_l_base_mu_dyn<-sqrt(1-integrate(integrand_EXP_HN05adj_l_base_mu_dyn, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  integrand_EXP_HN05adj_u_base_mu_dyn <- function(x) {sqrt(fit.bayesmeta.EXP_HN05adj_dyn$dposterior(mu=x)*fit.bayesmeta.EXP_HN05adj_mu_u_dyn$dposterior(mu=x))}
  sens_EXP_HN05adj_u_base_mu_dyn<-sqrt(1-integrate(integrand_EXP_HN05adj_u_base_mu_dyn, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  worst_sens_EXP_HN05adj_mu_dyn<-max(sens_EXP_HN05adj_l_base_mu_dyn, sens_EXP_HN05adj_u_base_mu_dyn)
  
  integrand_EXP_HN05adj_l_base_tau_dyn <- function(x) {sqrt(fit.bayesmeta.EXP_HN05adj_dyn$dposterior(tau=x)*fit.bayesmeta.EXP_HN05adj_tau_l_dyn$dposterior(tau=x))}
  sens_EXP_HN05adj_l_base_tau_dyn<-sqrt(1-integrate(integrand_EXP_HN05adj_l_base_tau_dyn, lower = 0, upper = Inf)$value)/grid_epsilon 
  integrand_EXP_HN05adj_u_base_tau_dyn <- function(x) {sqrt(fit.bayesmeta.EXP_HN05adj_dyn$dposterior(tau=x)*fit.bayesmeta.EXP_HN05adj_tau_u_dyn$dposterior(tau=x))}
  sens_EXP_HN05adj_u_base_tau_dyn<-sqrt(1-integrate(integrand_EXP_HN05adj_u_base_tau_dyn, lower = 0, upper = Inf)$value)/grid_epsilon
  worst_sens_EXP_HN05adj_tau_dyn<-max(sens_EXP_HN05adj_l_base_tau_dyn, sens_EXP_HN05adj_u_base_tau_dyn)
  
  # HC
  
  fit.bayesmeta.HC_HN05adj_dyn <- bayesmeta(y=df[,"y"], 
                                            sigma=df[,"sigma"],
                                            labels=df[,"labels"],
                                            mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                            tau.prior=function(t){dhalfcauchy(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_HC)})
  
  fit.bayesmeta.HC_HN05adj_mu_l_dyn <- bayesmeta(y=df[,"y"], 
                                                 sigma=df[,"sigma"],
                                                 labels=df[,"labels"],
                                                 mu.prior.mean=mu_mean, mu.prior.sd=AAl_normal_mu,
                                                 tau.prior=function(t){dhalfcauchy(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_HC)})
  
  fit.bayesmeta.HC_HN05adj_mu_u_dyn <- bayesmeta(y=df[,"y"], 
                                                 sigma=df[,"sigma"],
                                                 labels=df[,"labels"],
                                                 mu.prior.mean=mu_mean, mu.prior.sd=AAu_normal_mu,
                                                 tau.prior=function(t){dhalfcauchy(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_HC)})
  
  fit.bayesmeta.HC_HN05adj_tau_l_dyn <- bayesmeta(y=df[,"y"], 
                                                  sigma=df[,"sigma"],
                                                  labels=df[,"labels"],
                                                  mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                                  tau.prior=function(t){dhalfcauchy(t, scale=gr2p_HN05adj_dyn$p_HC_l)})
  
  fit.bayesmeta.HC_HN05adj_tau_u_dyn <- bayesmeta(y=df[,"y"], 
                                                  sigma=df[,"sigma"],
                                                  labels=df[,"labels"],
                                                  mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                                  tau.prior=function(t){dhalfcauchy(t, scale=gr2p_HN05adj_dyn$p_HC_u)})
  
  
  integrand_HC_HN05adj_l_base_mu_dyn <- function(x) {sqrt(fit.bayesmeta.HC_HN05adj_dyn$dposterior(mu=x)*fit.bayesmeta.HC_HN05adj_mu_l_dyn$dposterior(mu=x))}
  sens_HC_HN05adj_l_base_mu_dyn<-sqrt(1-integrate(integrand_HC_HN05adj_l_base_mu_dyn, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  integrand_HC_HN05adj_u_base_mu_dyn <- function(x) {sqrt(fit.bayesmeta.HC_HN05adj_dyn$dposterior(mu=x)*fit.bayesmeta.HC_HN05adj_mu_u_dyn$dposterior(mu=x))}
  sens_HC_HN05adj_u_base_mu_dyn<-sqrt(1-integrate(integrand_HC_HN05adj_u_base_mu_dyn, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  worst_sens_HC_HN05adj_mu_dyn<-max(sens_HC_HN05adj_l_base_mu_dyn, sens_HC_HN05adj_u_base_mu_dyn)
  
  integrand_HC_HN05adj_l_base_tau_dyn <- function(x) {sqrt(fit.bayesmeta.HC_HN05adj_dyn$dposterior(tau=x)*fit.bayesmeta.HC_HN05adj_tau_l_dyn$dposterior(tau=x))}
  sens_HC_HN05adj_l_base_tau_dyn<-sqrt(1-integrate(integrand_HC_HN05adj_l_base_tau_dyn, lower = 0, upper = Inf)$value)/grid_epsilon 
  integrand_HC_HN05adj_u_base_tau_dyn <- function(x) {sqrt(fit.bayesmeta.HC_HN05adj_dyn$dposterior(tau=x)*fit.bayesmeta.HC_HN05adj_tau_u_dyn$dposterior(tau=x))}
  sens_HC_HN05adj_u_base_tau_dyn<-sqrt(1-integrate(integrand_HC_HN05adj_u_base_tau_dyn, lower = 0, upper = Inf)$value)/grid_epsilon 
  worst_sens_HC_HN05adj_tau_dyn<-max(sens_HC_HN05adj_l_base_tau_dyn, sens_HC_HN05adj_u_base_tau_dyn)
  
  # LMX
  
  fit.bayesmeta.LMX_HN05adj_dyn <- bayesmeta(y=df[,"y"], 
                                             sigma=df[,"sigma"],
                                             labels=df[,"labels"],
                                             mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                             tau.prior=function(t){dlomax(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_LMX, shape=1)})
  
  fit.bayesmeta.LMX_HN05adj_mu_l_dyn <- bayesmeta(y=df[,"y"], 
                                                  sigma=df[,"sigma"],
                                                  labels=df[,"labels"],
                                                  mu.prior.mean=mu_mean, mu.prior.sd=AAl_normal_mu,
                                                  tau.prior=function(t){dlomax(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_LMX, shape=1)})
  
  fit.bayesmeta.LMX_HN05adj_mu_u_dyn <- bayesmeta(y=df[,"y"], 
                                                  sigma=df[,"sigma"],
                                                  labels=df[,"labels"],
                                                  mu.prior.mean=mu_mean, mu.prior.sd=AAu_normal_mu,
                                                  tau.prior=function(t){dlomax(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc025, tail_prob=tail_alpha_dynamic)$p_LMX, shape=1)})
  
  fit.bayesmeta.LMX_HN05adj_tau_l_dyn <- bayesmeta(y=df[,"y"], 
                                                   sigma=df[,"sigma"],
                                                   labels=df[,"labels"],
                                                   mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                                   tau.prior=function(t){dlomax(t, scale=gr2p_HN05adj_dyn$p_LMX_l, shape=1)})
  
  fit.bayesmeta.LMX_HN05adj_tau_u_dyn <- bayesmeta(y=df[,"y"], 
                                                   sigma=df[,"sigma"],
                                                   labels=df[,"labels"],
                                                   mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                                   tau.prior=function(t){dlomax(t, scale=gr2p_HN05adj_dyn$p_LMX_u, shape=1)})
  
  
  integrand_LMX_HN05adj_l_base_mu_dyn <- function(x) {sqrt(fit.bayesmeta.LMX_HN05adj_dyn$dposterior(mu=x)*fit.bayesmeta.LMX_HN05adj_mu_l_dyn$dposterior(mu=x))}
  sens_LMX_HN05adj_l_base_mu_dyn<-sqrt(1-integrate(integrand_LMX_HN05adj_l_base_mu_dyn, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  integrand_LMX_HN05adj_u_base_mu_dyn <- function(x) {sqrt(fit.bayesmeta.LMX_HN05adj_dyn$dposterior(mu=x)*fit.bayesmeta.LMX_HN05adj_mu_u_dyn$dposterior(mu=x))}
  sens_LMX_HN05adj_u_base_mu_dyn<-sqrt(1-integrate(integrand_LMX_HN05adj_u_base_mu_dyn, lower = -Inf, upper = Inf)$value)/grid_epsilon
  worst_sens_LMX_HN05adj_mu_dyn<-max(sens_LMX_HN05adj_l_base_mu_dyn, sens_LMX_HN05adj_u_base_mu_dyn)
  
  integrand_LMX_HN05adj_l_base_tau_dyn <- function(x) {sqrt(fit.bayesmeta.LMX_HN05adj_dyn$dposterior(tau=x)*fit.bayesmeta.LMX_HN05adj_tau_l_dyn$dposterior(tau=x))}
  sens_LMX_HN05adj_l_base_tau_dyn<-sqrt(1-integrate(integrand_LMX_HN05adj_l_base_tau_dyn, lower = 0, upper = Inf)$value)/grid_epsilon 
  integrand_LMX_HN05adj_u_base_tau_dyn <- function(x) {sqrt(fit.bayesmeta.LMX_HN05adj_dyn$dposterior(tau=x)*fit.bayesmeta.LMX_HN05adj_tau_u_dyn$dposterior(tau=x))}
  sens_LMX_HN05adj_u_base_tau_dyn<-sqrt(1-integrate(integrand_LMX_HN05adj_u_base_tau_dyn, lower = 0, upper = Inf)$value)/grid_epsilon 
  worst_sens_LMX_HN05adj_tau_dyn<-max(sens_LMX_HN05adj_l_base_tau_dyn, sens_LMX_HN05adj_u_base_tau_dyn)
  
  
  tres[5,15]<-worst_sens_HN05_mu_dyn
  tres[6,15]<-worst_sens_EXP_HN05adj_mu_dyn
  tres[7,15]<-worst_sens_HC_HN05adj_mu_dyn 
  tres[8,15]<-worst_sens_LMX_HN05adj_mu_dyn
  
  tres[5,16]<-worst_sens_HN05_tau_dyn
  tres[6,16]<-worst_sens_EXP_HN05adj_tau_dyn
  tres[7,16]<-worst_sens_HC_HN05adj_tau_dyn  
  tres[8,16]<-worst_sens_LMX_HN05adj_tau_dyn
  
  
  
  
  
  ####----  dynamic 0.5-tail adjustment with rlmc=0.5 ----####
  
  # prior parameters 
  
  U_ref05<-sqrt(rlmc05/(1-rlmc05))*sigma_ref(df)
  
  tres[c(13:16),1]<-U_ref05
  tres[c(13:16),2]<-tail_alpha_dynamic
  tres[13,3]<-pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_HN
  tres[14,3]<-pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_EXP
  tres[15,3]<-pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_HC
  tres[16,3]<-pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_LMX
  
  # effective mrlmc
  
  tres[13,4]<- median(effective_rlmc(df=df, r.tau.prior=function(MM)rhalfnormal(n=MM, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_HN), 
                                      MM=1000000, output="sample", step=0.03))
  tres[14,4]<- median(effective_rlmc(df=df, r.tau.prior=function(MM)rexp(n=MM, rate=1/pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_EXP), 
                                      MM=1000000, output="sample", step=0.03))
  tres[15,4]<- median(effective_rlmc(df=df, r.tau.prior=function(MM)rhalfcauchy(n=MM, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_HC), 
                                      MM=1000000, output="sample", step=0.03))
  tres[16,4]<- median(effective_rlmc(df=df, r.tau.prior=function(MM)rlomax(n=MM, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_LMX, shape=1), 
                                      MM=1000000, output="sample", step=0.03))
  
  
  # posteriors for base HN, EXP, HC and LMX heterogeneity priors
  
  
  fit.bayesmeta.HN1_dyn <- bayesmeta(y=df[,"y"], 
                                     sigma=df[,"sigma"],
                                     labels=df[,"labels"],
                                     mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                     tau.prior=function(t){dhalfnormal(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_HN)})
  tres[13,c(5:7)]<-fit.bayesmeta.HN1_dyn$summary[c("median","95% lower","95% upper"),"mu"]
  tres[13,c(9:11)]<-fit.bayesmeta.HN1_dyn$summary[c("median","95% lower","95% upper"),"tau"]
  
  
  fit.bayesmeta.EXP_HN1adj_dyn <- bayesmeta(y=df[,"y"], 
                                            sigma=df[,"sigma"],
                                            labels=df[,"labels"],
                                            mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                            tau.prior=function(t){dexp(t, rate=1/pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_EXP)})
  tres[14,c(5:7)]<-fit.bayesmeta.EXP_HN1adj_dyn$summary[c("median","95% lower","95% upper"),"mu"]
  tres[14,c(9:11)]<-fit.bayesmeta.EXP_HN1adj_dyn$summary[c("median","95% lower","95% upper"),"tau"]
  
  fit.bayesmeta.HC_HN1adj_dyn <- bayesmeta(y=df[,"y"], 
                                           sigma=df[,"sigma"],
                                           labels=df[,"labels"],
                                           mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                           tau.prior=function(t){dhalfcauchy(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_HC)})
  tres[15,c(5:7)]<-fit.bayesmeta.HC_HN1adj_dyn$summary[c("median","95% lower","95% upper"),"mu"]
  tres[15,c(9:11)]<-fit.bayesmeta.HC_HN1adj_dyn$summary[c("median","95% lower","95% upper"),"tau"]
  
  fit.bayesmeta.LMX_HN1adj_dyn <- bayesmeta(y=df[,"y"], 
                                            sigma=df[,"sigma"],
                                            labels=df[,"labels"],
                                            mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                            tau.prior=function(t){dlomax(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_LMX, shape=1)})
  tres[16,c(5:7)]<-fit.bayesmeta.LMX_HN1adj_dyn$summary[c("median","95% lower","95% upper"),"mu"]
  tres[16,c(9:11)]<-fit.bayesmeta.LMX_HN1adj_dyn$summary[c("median","95% lower","95% upper"),"tau"]
  
  
  # learning quantification
  
  # mu
  
  integrand_HN1_mu_dyn <- function(x) {sqrt(fit.bayesmeta.HN1_dyn$dposterior(mu=x)*dnorm(x, mean=mu_mean, sd=mu_sd))}
  integrand_EXP_HN1adj_mu_dyn <- function(x) {sqrt(fit.bayesmeta.EXP_HN1adj_dyn$dposterior(mu=x)*dnorm(x, mean=mu_mean, sd=mu_sd))}
  integrand_HC_HN1adj_mu_dyn <- function(x) {sqrt(fit.bayesmeta.HC_HN1adj_dyn$dposterior(mu=x)*dnorm(x, mean=mu_mean, sd=mu_sd))}
  integrand_LMX_HN1adj_mu_dyn <- function(x) {sqrt(fit.bayesmeta.LMX_HN1adj_dyn$dposterior(mu=x)*dnorm(x, mean=mu_mean, sd=mu_sd))}
  
  
  tres[13,13]<-sqrt(1-integrate(integrand_HN1_mu_dyn, lower = -Inf, upper = Inf)$value)
  tres[14,13]<-sqrt(1-integrate(integrand_EXP_HN1adj_mu_dyn, lower = -Inf, upper = Inf)$value)
  tres[15,13]<-sqrt(1-integrate(integrand_HC_HN1adj_mu_dyn, lower = -Inf, upper = Inf)$value) 
  tres[16,13]<-sqrt(1-integrate(integrand_LMX_HN1adj_mu_dyn, lower = -Inf, upper = Inf)$value) 
  
  # tau
  
  integrand_HN1_tau_dyn <- function(x) {sqrt(fit.bayesmeta.HN1_dyn$dposterior(tau=x)*dhalfnormal(x, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_HN))}
  integrand_EXP_HN1adj_tau_dyn <- function(x) {sqrt(fit.bayesmeta.EXP_HN1adj_dyn$dposterior(tau=x)*dexp(x, rate=1/pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_EXP))}
  integrand_HC_HN1adj_tau_dyn <- function(x) {sqrt(fit.bayesmeta.HC_HN1adj_dyn$dposterior(tau=x)*dhalfcauchy(x, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_HC))}
  integrand_LMX_HN1adj_tau_dyn <- function(x) {sqrt(fit.bayesmeta.LMX_HN1adj_dyn$dposterior(tau=x)*dlomax(x, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_LMX, shape=1))}
  
  
  tres[13,14]<-sqrt(1-integrate(integrand_HN1_tau_dyn, lower = 0, upper = Inf)$value)
  tres[14,14]<-sqrt(1-integrate(integrand_EXP_HN1adj_tau_dyn, lower = 0, upper = Inf)$value)
  tres[15,14]<-sqrt(1-integrate(integrand_HC_HN1adj_tau_dyn, lower = 0, upper = Inf)$value) 
  tres[16,14]<-sqrt(1-integrate(integrand_LMX_HN1adj_tau_dyn, lower = 0, upper = Inf)$value) 
  
  
  # epsilon-local grid for A*|X| scaled distributions for tau
  
  
  gr2p_HN1adj_dyn<-pri_par_epsilon_grid(AA0_HN=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_HN, 
                                        AA0_EXP=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_EXP,
                                        AA0_HC=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_HC,
                                        AA0_LMX=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_LMX,
                                        grid_epsilon=grid_epsilon)
  
  
  # sensitivity quantification
  
  # HN
  
  fit.bayesmeta.HN1_dyn <- bayesmeta(y=df[,"y"], 
                                     sigma=df[,"sigma"],
                                     labels=df[,"labels"],
                                     mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                     tau.prior=function(t){dhalfnormal(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_HN)})
  
  fit.bayesmeta.HN1_mu_l_dyn <- bayesmeta(y=df[,"y"], 
                                          sigma=df[,"sigma"],
                                          labels=df[,"labels"],
                                          mu.prior.mean=mu_mean, mu.prior.sd=AAl_normal_mu,
                                          tau.prior=function(t){dhalfnormal(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_HN)})
  
  fit.bayesmeta.HN1_mu_u_dyn <- bayesmeta(y=df[,"y"], 
                                          sigma=df[,"sigma"],
                                          labels=df[,"labels"],
                                          mu.prior.mean=mu_mean, mu.prior.sd=AAu_normal_mu,
                                          tau.prior=function(t){dhalfnormal(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_HN)})
  
  fit.bayesmeta.HN1_tau_l_dyn <- bayesmeta(y=df[,"y"], 
                                           sigma=df[,"sigma"],
                                           labels=df[,"labels"],
                                           mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                           tau.prior=function(t){dhalfnormal(t, scale=gr2p_HN1adj_dyn$p_HN_l)})
  
  fit.bayesmeta.HN1_tau_u_dyn <- bayesmeta(y=df[,"y"], 
                                           sigma=df[,"sigma"],
                                           labels=df[,"labels"],
                                           mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                           tau.prior=function(t){dhalfnormal(t, scale=gr2p_HN1adj_dyn$p_HN_u)})
  
  
  integrand_HN1_l_base_mu_dyn <- function(x) {sqrt(fit.bayesmeta.HN1_dyn$dposterior(mu=x)*fit.bayesmeta.HN1_mu_l_dyn$dposterior(mu=x))}
  sens_HN1_l_base_mu_dyn<-sqrt(1-integrate(integrand_HN1_l_base_mu_dyn, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  integrand_HN1_u_base_mu_dyn <- function(x) {sqrt(fit.bayesmeta.HN1_dyn$dposterior(mu=x)*fit.bayesmeta.HN1_mu_u_dyn$dposterior(mu=x))}
  sens_HN1_u_base_mu_dyn<-sqrt(1-integrate(integrand_HN1_u_base_mu_dyn, lower = -Inf, upper = Inf)$value)/grid_epsilon  
  worst_sens_HN1_mu_dyn<-max(sens_HN1_l_base_mu_dyn, sens_HN1_u_base_mu_dyn)
  
  integrand_HN1_l_base_tau_dyn <- function(x) {sqrt(fit.bayesmeta.HN1_dyn$dposterior(tau=x)*fit.bayesmeta.HN1_tau_l_dyn$dposterior(tau=x))}
  sens_HN1_l_base_tau_dyn<-sqrt(1-integrate(integrand_HN1_l_base_tau_dyn, lower = 0, upper = Inf)$value)/grid_epsilon  
  integrand_HN1_u_base_tau_dyn <- function(x) {sqrt(fit.bayesmeta.HN1_dyn$dposterior(tau=x)*fit.bayesmeta.HN1_tau_u_dyn$dposterior(tau=x))}
  sens_HN1_u_base_tau_dyn<-sqrt(1-integrate(integrand_HN1_u_base_tau_dyn, lower = 0, upper = Inf)$value)/grid_epsilon  
  worst_sens_HN1_tau_dyn<-max(sens_HN1_l_base_tau_dyn, sens_HN1_u_base_tau_dyn)
  
  # EXP
  
  fit.bayesmeta.EXP_HN1adj_dyn <- bayesmeta(y=df[,"y"], 
                                            sigma=df[,"sigma"],
                                            labels=df[,"labels"],
                                            mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                            tau.prior=function(t){dexp(t, rate=1/pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_EXP)})
  
  fit.bayesmeta.EXP_HN1adj_mu_l_dyn <- bayesmeta(y=df[,"y"], 
                                                 sigma=df[,"sigma"],
                                                 labels=df[,"labels"],
                                                 mu.prior.mean=mu_mean, mu.prior.sd=AAl_normal_mu,
                                                 tau.prior=function(t){dexp(t, rate=1/pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_EXP)})
  
  fit.bayesmeta.EXP_HN1adj_mu_u_dyn <- bayesmeta(y=df[,"y"], 
                                                 sigma=df[,"sigma"],
                                                 labels=df[,"labels"],
                                                 mu.prior.mean=mu_mean, mu.prior.sd=AAu_normal_mu,
                                                 tau.prior=function(t){dexp(t, rate=1/pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_EXP)})
  
  fit.bayesmeta.EXP_HN1adj_tau_l_dyn <- bayesmeta(y=df[,"y"], 
                                                  sigma=df[,"sigma"],
                                                  labels=df[,"labels"],
                                                  mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                                  tau.prior=function(t){dexp(t, rate=1/gr2p_HN1adj_dyn$p_EXP_l)})
  
  fit.bayesmeta.EXP_HN1adj_tau_u_dyn <- bayesmeta(y=df[,"y"], 
                                                  sigma=df[,"sigma"],
                                                  labels=df[,"labels"],
                                                  mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                                  tau.prior=function(t){dexp(t, rate=1/gr2p_HN1adj_dyn$p_EXP_u)})
  
  
  integrand_EXP_HN1adj_l_base_mu_dyn <- function(x) {sqrt(fit.bayesmeta.EXP_HN1adj_dyn$dposterior(mu=x)*fit.bayesmeta.EXP_HN1adj_mu_l_dyn$dposterior(mu=x))}
  sens_EXP_HN1adj_l_base_mu_dyn<-sqrt(1-integrate(integrand_EXP_HN1adj_l_base_mu_dyn, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  integrand_EXP_HN1adj_u_base_mu_dyn <- function(x) {sqrt(fit.bayesmeta.EXP_HN1adj_dyn$dposterior(mu=x)*fit.bayesmeta.EXP_HN1adj_mu_u_dyn$dposterior(mu=x))}
  sens_EXP_HN1adj_u_base_mu_dyn<-sqrt(1-integrate(integrand_EXP_HN1adj_u_base_mu_dyn, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  worst_sens_EXP_HN1adj_mu_dyn<-max(sens_EXP_HN1adj_l_base_mu_dyn, sens_EXP_HN1adj_u_base_mu_dyn)
  
  integrand_EXP_HN1adj_l_base_tau_dyn <- function(x) {sqrt(fit.bayesmeta.EXP_HN1adj_dyn$dposterior(tau=x)*fit.bayesmeta.EXP_HN1adj_tau_l_dyn$dposterior(tau=x))}
  sens_EXP_HN1adj_l_base_tau_dyn<-sqrt(1-integrate(integrand_EXP_HN1adj_l_base_tau_dyn, lower = 0, upper = Inf)$value)/grid_epsilon 
  integrand_EXP_HN1adj_u_base_tau_dyn <- function(x) {sqrt(fit.bayesmeta.EXP_HN1adj_dyn$dposterior(tau=x)*fit.bayesmeta.EXP_HN1adj_tau_u_dyn$dposterior(tau=x))}
  sens_EXP_HN1adj_u_base_tau_dyn<-sqrt(1-integrate(integrand_EXP_HN1adj_u_base_tau_dyn, lower = 0, upper = Inf)$value)/grid_epsilon
  worst_sens_EXP_HN1adj_tau_dyn<-max(sens_EXP_HN1adj_l_base_tau_dyn, sens_EXP_HN1adj_u_base_tau_dyn)
  
  
  # HC
  
  fit.bayesmeta.HC_HN1adj_dyn <- bayesmeta(y=df[,"y"], 
                                           sigma=df[,"sigma"],
                                           labels=df[,"labels"],
                                           mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                           tau.prior=function(t){dhalfcauchy(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_HC)})
  
  fit.bayesmeta.HC_HN1adj_mu_l_dyn <- bayesmeta(y=df[,"y"], 
                                                sigma=df[,"sigma"],
                                                labels=df[,"labels"],
                                                mu.prior.mean=mu_mean, mu.prior.sd=AAl_normal_mu,
                                                tau.prior=function(t){dhalfcauchy(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_HC)})
  
  fit.bayesmeta.HC_HN1adj_mu_u_dyn <- bayesmeta(y=df[,"y"], 
                                                sigma=df[,"sigma"],
                                                labels=df[,"labels"],
                                                mu.prior.mean=mu_mean, mu.prior.sd=AAu_normal_mu,
                                                tau.prior=function(t){dhalfcauchy(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_HC)})
  
  fit.bayesmeta.HC_HN1adj_tau_l_dyn <- bayesmeta(y=df[,"y"], 
                                                 sigma=df[,"sigma"],
                                                 labels=df[,"labels"],
                                                 mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                                 tau.prior=function(t){dhalfcauchy(t, scale=gr2p_HN1adj_dyn$p_HC_l)})
  
  fit.bayesmeta.HC_HN1adj_tau_u_dyn <- bayesmeta(y=df[,"y"], 
                                                 sigma=df[,"sigma"],
                                                 labels=df[,"labels"],
                                                 mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                                 tau.prior=function(t){dhalfcauchy(t, scale=gr2p_HN1adj_dyn$p_HC_u)})
  
  
  integrand_HC_HN1adj_l_base_mu_dyn <- function(x) {sqrt(fit.bayesmeta.HC_HN1adj_dyn$dposterior(mu=x)*fit.bayesmeta.HC_HN1adj_mu_l_dyn$dposterior(mu=x))}
  sens_HC_HN1adj_l_base_mu_dyn<-sqrt(1-integrate(integrand_HC_HN1adj_l_base_mu_dyn, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  integrand_HC_HN1adj_u_base_mu_dyn <- function(x) {sqrt(fit.bayesmeta.HC_HN1adj_dyn$dposterior(mu=x)*fit.bayesmeta.HC_HN1adj_mu_u_dyn$dposterior(mu=x))}
  sens_HC_HN1adj_u_base_mu_dyn<-sqrt(1-integrate(integrand_HC_HN1adj_u_base_mu_dyn, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  worst_sens_HC_HN1adj_mu_dyn<-max(sens_HC_HN1adj_l_base_mu_dyn, sens_HC_HN1adj_u_base_mu_dyn)
  
  integrand_HC_HN1adj_l_base_tau_dyn <- function(x) {sqrt(fit.bayesmeta.HC_HN1adj_dyn$dposterior(tau=x)*fit.bayesmeta.HC_HN1adj_tau_l_dyn$dposterior(tau=x))}
  sens_HC_HN1adj_l_base_tau_dyn<-sqrt(1-integrate(integrand_HC_HN1adj_l_base_tau_dyn, lower = 0, upper = Inf)$value)/grid_epsilon 
  integrand_HC_HN1adj_u_base_tau_dyn <- function(x) {sqrt(fit.bayesmeta.HC_HN1adj_dyn$dposterior(tau=x)*fit.bayesmeta.HC_HN1adj_tau_u_dyn$dposterior(tau=x))}
  sens_HC_HN1adj_u_base_tau_dyn<-sqrt(1-integrate(integrand_HC_HN1adj_u_base_tau_dyn, lower = 0, upper = Inf)$value)/grid_epsilon 
  worst_sens_HC_HN1adj_tau_dyn<-max(sens_HC_HN1adj_l_base_tau_dyn, sens_HC_HN1adj_u_base_tau_dyn)
  
  
  # LMX
  
  fit.bayesmeta.LMX_HN1adj_dyn <- bayesmeta(y=df[,"y"], 
                                            sigma=df[,"sigma"],
                                            labels=df[,"labels"],
                                            mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                            tau.prior=function(t){dlomax(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_LMX, shape=1)})
  
  fit.bayesmeta.LMX_HN1adj_mu_l_dyn <- bayesmeta(y=df[,"y"], 
                                                 sigma=df[,"sigma"],
                                                 labels=df[,"labels"],
                                                 mu.prior.mean=mu_mean, mu.prior.sd=AAl_normal_mu,
                                                 tau.prior=function(t){dlomax(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_LMX, shape=1)})
  
  fit.bayesmeta.LMX_HN1adj_mu_u_dyn <- bayesmeta(y=df[,"y"], 
                                                 sigma=df[,"sigma"],
                                                 labels=df[,"labels"],
                                                 mu.prior.mean=mu_mean, mu.prior.sd=AAu_normal_mu,
                                                 tau.prior=function(t){dlomax(t, scale=pri_par_adjust_dynamic(df=df, rlmc=rlmc05, tail_prob=tail_alpha_dynamic)$p_LMX, shape=1)})
  
  fit.bayesmeta.LMX_HN1adj_tau_l_dyn <- bayesmeta(y=df[,"y"], 
                                                  sigma=df[,"sigma"],
                                                  labels=df[,"labels"],
                                                  mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                                  tau.prior=function(t){dlomax(t, scale=gr2p_HN1adj_dyn$p_LMX_l, shape=1)})
  
  fit.bayesmeta.LMX_HN1adj_tau_u_dyn <- bayesmeta(y=df[,"y"], 
                                                  sigma=df[,"sigma"],
                                                  labels=df[,"labels"],
                                                  mu.prior.mean=mu_mean, mu.prior.sd=mu_sd,
                                                  tau.prior=function(t){dlomax(t, scale=gr2p_HN1adj_dyn$p_LMX_u, shape=1)})
  
  
  integrand_LMX_HN1adj_l_base_mu_dyn <- function(x) {sqrt(fit.bayesmeta.LMX_HN1adj_dyn$dposterior(mu=x)*fit.bayesmeta.LMX_HN1adj_mu_l_dyn$dposterior(mu=x))}
  sens_LMX_HN1adj_l_base_mu_dyn<-sqrt(1-integrate(integrand_LMX_HN1adj_l_base_mu_dyn, lower = -Inf, upper = Inf)$value)/grid_epsilon 
  integrand_LMX_HN1adj_u_base_mu_dyn <- function(x) {sqrt(fit.bayesmeta.LMX_HN1adj_dyn$dposterior(mu=x)*fit.bayesmeta.LMX_HN1adj_mu_u_dyn$dposterior(mu=x))}
  sens_LMX_HN1adj_u_base_mu_dyn<-sqrt(1-integrate(integrand_LMX_HN1adj_u_base_mu_dyn, lower = -Inf, upper = Inf)$value)/grid_epsilon
  worst_sens_LMX_HN1adj_mu_dyn<-max(sens_LMX_HN1adj_l_base_mu_dyn, sens_LMX_HN1adj_u_base_mu_dyn)
  
  integrand_LMX_HN1adj_l_base_tau_dyn <- function(x) {sqrt(fit.bayesmeta.LMX_HN1adj_dyn$dposterior(tau=x)*fit.bayesmeta.LMX_HN1adj_tau_l_dyn$dposterior(tau=x))}
  sens_LMX_HN1adj_l_base_tau_dyn<-sqrt(1-integrate(integrand_LMX_HN1adj_l_base_tau_dyn, lower = 0, upper = Inf)$value)/grid_epsilon 
  integrand_LMX_HN1adj_u_base_tau_dyn <- function(x) {sqrt(fit.bayesmeta.LMX_HN1adj_dyn$dposterior(tau=x)*fit.bayesmeta.LMX_HN1adj_tau_u_dyn$dposterior(tau=x))}
  sens_LMX_HN1adj_u_base_tau_dyn<-sqrt(1-integrate(integrand_LMX_HN1adj_u_base_tau_dyn, lower = 0, upper = Inf)$value)/grid_epsilon 
  worst_sens_LMX_HN1adj_tau_dyn<-max(sens_LMX_HN1adj_l_base_tau_dyn, sens_LMX_HN1adj_u_base_tau_dyn)
  
  
  tres[13,15]<-worst_sens_HN1_mu_dyn
  tres[14,15]<-worst_sens_EXP_HN1adj_mu_dyn
  tres[15,15]<-worst_sens_HC_HN1adj_mu_dyn 
  tres[16,15]<-worst_sens_LMX_HN1adj_mu_dyn
  
  tres[13,16]<-worst_sens_HN1_tau_dyn
  tres[14,16]<-worst_sens_EXP_HN1adj_tau_dyn
  tres[15,16]<-worst_sens_HC_HN1adj_tau_dyn 
  tres[16,16]<-worst_sens_LMX_HN1adj_tau_dyn 
  
  
  #### Computation of the length of 95% CrI
  
  tres[,8]<-tres[,7]-tres[,6] #length_95CrI_post_mu
  tres[,12]<-tres[,11]-tres[,10] #length_95CrI_post_tau
  
  return(tres)
}

Try the sl4bayesmeta package in your browser

Any scripts or data that you put into this service are public.

sl4bayesmeta documentation built on Feb. 18, 2020, 3:02 p.m.