## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) library(RMediation) ## ----method-comparison-------------------------------------------------------- # Same example parameters mu.x <- 0.5 # Effect of X on M mu.y <- 0.6 # Effect of M on Y (controlling for X) se.x <- 0.08 # Standard error of a path se.y <- 0.04 # Standard error of b path rho <- 0 # Correlation between a and b # Compare all methods results <- medci( mu.x = mu.x, mu.y = mu.y, se.x = se.x, se.y = se.y, rho = rho, type = "all", # This gives results for all methods plot = FALSE ) # Print results for(method_name in names(results)) { cat("\n", method_name, ":\n") # Display the structure of each result str(results[[method_name]]) } ## ----performance-comparison--------------------------------------------------- # Example of comparing results across different parameter values # Define parameter values to test param_sets <- list( list(mu.x = 0.5, mu.y = 0.6, se.x = 0.08, se.y = 0.04), list(mu.x = 0.3, mu.y = 0.4, se.x = 0.10, se.y = 0.05), list(mu.x = 0.1, mu.y = 0.2, se.x = 0.05, se.y = 0.03) ) for(i in seq_along(param_sets)) { params <- param_sets[[i]] cat("\nParameter set", i, ":\n") cat("Effect sizes: a =", params$mu.x, ", b =", params$mu.y, "\n") results_subset <- medci( mu.x = params$mu.x, mu.y = params$mu.y, se.x = params$se.x, se.y = params$se.y, rho = 0, type = "all", plot = FALSE ) # Print confidence intervals from each method for(method_name in names(results_subset)) { ci_values <- results_subset[[method_name]][[1]] # Extract CI values cat(sprintf("%-25s: [%.3f, %.3f]\n", method_name, ci_values[1], ci_values[2])) } } ## ----dop-example-------------------------------------------------------------- # Example using DOP method result_dop <- medci( mu.x = 0.5, mu.y = 0.6, se.x = 0.08, se.y = 0.04, rho = 0, type = "dop" ) cat("DOP Method Results:\n") str(result_dop) ## ----mc-example--------------------------------------------------------------- # Example using MC method result_mc <- medci( mu.x = 0.5, mu.y = 0.6, se.x = 0.08, se.y = 0.04, rho = 0, type = "mc", n.mc = 1e5 # Specify Monte Carlo sample size ) cat("Monte Carlo Method Results:\n") str(result_mc) ## ----asymptotic-example------------------------------------------------------- # Example using asymptotic method result_asymp <- medci( mu.x = 0.5, mu.y = 0.6, se.x = 0.08, se.y = 0.04, rho = 0, type = "asymp" ) cat("Asymptotic Method Results:\n") str(result_asymp) ## ----s7-example, eval = FALSE------------------------------------------------- # # Create a ProductNormal object (represents distribution of product) # pn <- ProductNormal( # mu = c(0.5, 0.6), # Means of the two variables # Sigma = matrix(c(0.0064, 0, 0, 0.0016), 2, 2) # Covariance matrix (se.x^2, 0, 0, se.y^2) # ) # # # Compute cumulative distribution function # cat("CDF at 0.1:", cdf(pn, q = 0.1), "\n") # cat("CDF at 0.3:", cdf(pn, q = 0.3), "\n") # # # Compute quantiles # cat("2.5% quantile:", quantile(pn, p = 0.025), "\n") # cat("97.5% quantile:", quantile(pn, p = 0.975), "\n") # # # Compute confidence interval # ci_result <- ci(pn, level = 0.95) # cat("95% Confidence Interval:", ci_result, "\n") # # # Print and summary methods # show(pn) # Use show instead of print # summary(pn) # This should work as it's a different S7 method