R/reSummarise.R
reSummarise.Rd
When runSimulation()
uses the option save_results = TRUE
the R replication results from the Generate-Analyse functions are
stored to the hard drive. As such, additional summarise components
may be required at a later time, whereby the respective .rds
files
must be read back into R to be summarised. This function performs
the reading of these files, application of a provided summarise function,
and final collection of the respective results.
reSummarise(
summarise,
dir = NULL,
files = NULL,
results = NULL,
Design = NULL,
fixed_objects = NULL,
boot_method = "none",
boot_draws = 1000L,
CI = 0.95,
prefix = "results-row"
)
a summarise function to apply to the read-in files.
See runSimulation
for details.
Note that if the simulation contained
only one row then the new summarise function can be defined as either
summarise <- function(results, fixed_objects)
, if
fixed_objects
is required, or
summarise <- function(results)
,
directory pointing to the .rds files to be
read-in that were saved from runSimulation(..., save_results=TRUE)
.
If NULL
, it is assumed the current working directory contains
the .rds files
(optional) names of files to read-in. If NULL
all files
located within dir
will be used
(optional) the results of runSimulation
when no
summarise
function was provided. Can be either a tibble
or
matrix
(indicating that exactly one design condition was evaluated),
or a list
of matrix
/tibble
objects indicating that multiple conditions were performed with no summarise evaluation.
Alternatively, if store_results = TRUE
in the runSimulation()
execution then
the final SimDesign object may be passed, where the generate-analyse information will be
extracted from the object instead
(optional) if results
input used, and design condition information
important in the summarise step, then the original design
object from
runSimulation
should be included
(optional) see runSimulation
for details
method for performing non-parametric bootstrap confidence intervals
for the respective meta-statistics computed by the Summarise
function.
See runSimulation
for details
number of non-parametric bootstrap draws to sample for the summarise
function after the generate-analyse replications are collected. Default is 1000
bootstrap confidence interval level (default is 95%)
character indicating prefix used for stored files
Chalmers, R. P., & Adkins, M. C. (2020). Writing Effective and Reliable Monte Carlo Simulations
with the SimDesign Package. The Quantitative Methods for Psychology, 16
(4), 248-280.
doi:10.20982/tqmp.16.4.p248
Sigal, M. J., & Chalmers, R. P. (2016). Play it again: Teaching statistics with Monte
Carlo simulation. Journal of Statistics Education, 24
(3), 136-156.
doi:10.1080/10691898.2016.1246953
Design <- createDesign(N = c(10, 20, 30))
Generate <- function(condition, fixed_objects) {
dat <- with(condition, rnorm(N, 10, 5)) # distributed N(10, 5)
dat
}
Analyse <- function(condition, dat, fixed_objects) {
ret <- c(mean=mean(dat), median=median(dat)) # mean/median of sample data
ret
}
Summarise <- function(condition, results, fixed_objects){
colMeans(results)
}
if (FALSE) { # \dontrun{
# run the simulation
runSimulation(design=Design, replications=50,
generate=Generate, analyse=Analyse,
summarise=Summarise, save_results=TRUE,
save_details = list(save_results_dirname='simresults'))
res <- reSummarise(Summarise, dir = 'simresults/')
res
Summarise2 <- function(condition, results, fixed_objects){
ret <- c(mean_ests=colMeans(results), SE=colSDs(results))
ret
}
res2 <- reSummarise(Summarise2, dir = 'simresults/')
res2
SimClean(dir='simresults/')
} # }
###
# Similar, but with results stored within the final object
res <- runSimulation(design=Design, replications=50, store_results = TRUE,
generate=Generate, analyse=Analyse, summarise=Summarise)
#>
#>
Design: 1/3; Replications: 50; RAM Used: 160.8 Mb; Total Time: 0.00s
#> Conditions: N=10
#>
#>
Design: 2/3; Replications: 50; RAM Used: 160.8 Mb; Total Time: 0.01s
#> Conditions: N=20
#>
#>
Design: 3/3; Replications: 50; RAM Used: 160.9 Mb; Total Time: 0.02s
#> Conditions: N=30
#>
#>
#> Simulation complete. Total execution time: 0.03s
res
#> # A tibble: 3 × 8
#> N mean median REPLICATIONS SIM_TIME RAM_USED SEED COMPLETED
#> <dbl> <dbl> <dbl> <dbl> <chr> <chr> <int> <chr>
#> 1 10 10.511 10.533 50 0.01s 160.8 Mb 273992574 Fri Jun 20 18…
#> 2 20 9.9258 9.9572 50 0.01s 160.9 Mb 1935411040 Fri Jun 20 18…
#> 3 30 10.121 10.126 50 0.01s 160.9 Mb 1053697725 Fri Jun 20 18…
# same summarise but with bootstrapping
res2 <- reSummarise(Summarise, results = res, boot_method = 'basic')
res2
#> # A tibble: 3 × 7
#> N mean median BOOT_mean_2.5 BOOT_mean_97.5 BOOT_median_2.5
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 10 10.5 10.5 10.1 11.0 10.1
#> 2 20 9.93 9.96 9.64 10.2 9.61
#> 3 30 10.1 10.1 9.85 10.4 9.75
#> # ℹ 1 more variable: BOOT_median_97.5 <dbl>