Designing Monte Carlo simulations can be a fun and rewarding experience. Whether you are interested in evaluating the performance of a new optimizer, re-evaluating previous research claims (like the ANOVA is ‘robust’ to violations of normality), determine power rates for an upcoming research proposal, or simply to appease a strange thought in your head about a new statistical idea you heard about, designing Monte Carlo simulations can be incredibly rewarding and are extremely important to those who are statistically oriented. However, organizing simulations can be a challenge, and all too often coders resort to the dreaded “for-loop” strategy, for-ever resulting in confusing, error prone, and simulation specific code. The package
SimDesign is one attempt to fix these and other issues that often arise when designing Monte Carlo simulation experiments.
Generally speaking, Monte Carlo simulations can be broken into three major components:
Each operation above represents the essential components of the
SimDesign package. The design component is represented by a
data.frame object containing the simulation conditions to be investigated, while generate, analyse, and summarise represent user-defined functions which comprise the three steps in the simulation. Each of these components are constructed and passed to the
runSimulation() function where the simulation steps are evaluated, ultimately returning a
data.frame object containing the simulation results.
After loading the