Pith. sign in

REVIEW 2 major objections 6 minor 60 references

Simulating Complex Crossectional and Longitudinal Data using the simDAG R Package

T0 review · 2 major / 6 minor · reviewed 2026-08-07 · deepseek-v4-flash

Pith's one-line read simDAG generates cross-sectional, longitudinal, and time-to-event data from a single DAG specification of structural equations, and reproduces the data-generating processes of real Monte-Carlo simulation studies.

desk verdict A genuinely novel simulation package with a real discrete-time engine; the core claim holds up, but the hazard-ratio approximation is unquantified and the paper needs reproducibility fixes before acceptance. read the letter →

arxiv 2506.01498 v1 pith:DG3AKALY submitted 2025-06-02 stat.ME stat.CO

classification stat.MEstat.CO MSC 62-0462N0165C05
keywords simulationMonteCarlotime-to-eventstructuralequationdirectedacyclicgraphlongitudinaldatadiscrete-timeRpackage
verification ladder T0 review T1 audit T2 compute T3 formal

The pith

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The reading

Monte-Carlo simulation studies need flexible data-generating processes, but writing code for complex longitudinal or time-to-event data is laborious and error-prone. This paper presents simDAG, an R package that lets the user describe the entire data-generating process as a directed acyclic graph of structural equations, with a node type, formula, and parent list for each variable, and then generates data automatically by topologically sorting the graph and sampling each node from its parents. The paper claims this single framework covers cross-sectional data, longitudinal data with few or many time points, time-to-event data with recurrent or competing events, and multiple time-varying covariates of binary, categorical, count, or continuous type. It demonstrates the claim by reproducing the data-generating processes of three published Monte-Carlo studies, and checks the key time-to-event example by showing that a simulated dataset recovers a specified relative risk of 3.24 as an estimated hazard ratio of 3.187. On a sympathetic reading, the paper's contribution is that almost any Monte-Carlo data-generating process can now be specified, documented, and regenerated from one standardized DAG object.

What carries the argument

The central object is the DAG object, built by adding node() and node_td() definitions to an empty_dag(); each node definition names a type, a set of parents, and a formula or additional arguments that fully specify the structural equation. The engine that carries the argument is the topological sort: the simulation samples root nodes first, then generates each child conditioned on already-simulated parents, which is what lets arbitrary regression models and user-defined functions act as structural equations. For the longitudinal case, the load-bearing mechanism is the per-tick trial loop inside sim_discrete_time(): a time_to_event node draws a Bernoulli trial at each discrete time point, and a competing_events node draws a multinomial trial, using probabilities returned by the prob_fun argument, optionally modulated by event_duration, immunity_duration, and time_since_last. This single loop is what converts a hazard-style specification into recurrent or competing event times and synchronizes multiple time-varying covariates on the same time grid.

What would settle it

Run the package's discrete-time simulator with a known hazard ratio of, say, 3.24, but with per-tick event probabilities of 0.1 or higher or with coarse ticks, and fit a Cox model to the output: if the estimated hazard ratio moves systematically away from the specified value as the tick probability or grid spacing grows, the discrete-time approximation is demonstrably distorted. An even simpler check with fixed fine-grained parameters is to repeat the paper's Covid-19 example across many seeds and look at the spread of the estimated hazard ratio around 3.24, which the single reported run at 3.187 does not show.

Watch

Extended reading notes

Core claim

The central claim is that a single DAG-based specification language is sufficient to describe essentially any data-generating process used in Monte-Carlo simulation studies, and that the simDAG package implements it with built-in node types for Gaussian, binomial, multinomial, Poisson, negative binomial, zero-inflated, and survival outcomes, plus an enhanced formula interface for interactions and non-linear terms. The distinct technical claim is that longitudinal data with many time points can be generated by discrete-time simulation: each time-dependent node (node_td) performs Bernoulli or multinomial trials at every tick, with per-tick probabilities computed by user-supplied functions that may depend on the current state of other nodes, elapsed time, or the time since the last event. This turns hazard-style specifications into simulated event times, supports recurrent events, competing events, time-varying covariates of arbitrary type, and ordered or mutually exclusive events, and approximates continuous time when ticks are small. The paper validates the approach by replicating the data-generating processes of three published Monte-Carlo studies, in particular a Covid-19 vaccine-safety study in which a daily relative risk of 3.24 is recovered as a fitted hazard ratio of 3.187 in a single run of 10,000 simulated individuals.

Load-bearing premise

The time-to-event machinery rests on the assumption that repeatedly flipping a coin on a daily grid faithfully reproduces the intended hazard structure of a continuous-time process, an assumption the paper checks only once, in one large simulated dataset, without stating the random seed.

Editorial extensions

If this is right

  • A Monte-Carlo study can now ship with the DAG object itself as the executable, printable definition of its data-generating process, improving transparency and reproducibility.
  • The same syntax covers cross-sectional, longitudinal, and time-to-event data, so a research group no longer needs separate simulation tools for each data type.
  • Time-to-event settings with recurrent events, competing events, and multiple time-varying covariates of arbitrary type become available to applied researchers without custom programming.
  • Start-stop format output from sim2data() plugs directly into standard survival analysis software, so the simulated data can be analyzed without further reshaping.
  • Because the DGP is stated as a causal DAG, the same specification can be reused across scenarios by editing individual node definitions rather than rewriting the simulation code.

Reading between the lines

Editorial extensions of the paper, not claims the author makes directly.

  • The paper never quantifies how much the discrete-time approximation distorts hazard ratios as the per-tick event probability grows or the grid coarsens; a natural extension would be an error bound or a recommended tick-size rule so users know when the approximation is safe.
  • The same trial-loop machinery could serve as a testbed for discrete-time survival analysis methods, since the generated data are literally discrete-time event histories rather than approximations of them.
  • Because the package stores only event times rather than every state, the memory-light design suggests the approach could scale to agent-based or microsimulation models with millions of individuals, a direction the paper mentions only in passing.
  • The paper's own caveat that naive DAG-simulated data inflate marginal variances along the topological order indicates the package is better suited for evaluating estimation methods than for benchmarking causal discovery algorithms; testing the suggested onion-method alternative would settle which use cases are safe.
Share X Bluesky LinkedIn Reddit HN

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, and a circularity audit.

Referee Report

2 major / 6 minor

Summary. The paper presents simDAG, an R package for simulating data from DAG-based structural equations with a unified formula syntax. It covers cross-sectional data, longitudinal data with a small number of time points (one node per time point), and a discrete-time simulation engine for long longitudinal data with time-to-event outcomes, recurrent or competing events, and time-varying covariates. The authors demonstrate the package by replicating the DGPs of three published Monte-Carlo simulation studies: a cross-sectional study with a Weibull/Cox time-to-event outcome (Section 3), a longitudinal study with two time points (Section 4), and a discrete-time simulation of vaccine-related adverse events with time-varying vaccination status and myocarditis (Section 5.3). The paper concludes with a discussion of the package's limitations and an appendix with further examples.

Significance. If the central claims hold, simDAG is a valuable contribution to the simulation-software landscape: it offers a single, consistent syntax for a wide range of DGP types, supports user-defined functions and non-linear terms, and its discrete-time engine with event_duration and immunity_duration parameters is a distinctive feature not present in closely related packages such as simcausal. The manuscript includes reproducible R code and the examples appear to run as described; the Section 3 replication faithfully reproduces the published structural equations, and the Section 5.3 example demonstrates the package's intended workflow. However, the time-to-event capability rests on a discrete-time approximation whose error properties are not quantified, and the single validation run is not sufficient to establish the reliability of the package for user-specified hazard structures outside a small-probability regime. Addressing this concern would substantially increase the paper's usefulness.

major comments (2)
  1. [Section 5.1, Eq. (7)] The relative risk RR_A is implemented as a direct multiplier of a per-tick Bernoulli probability P_Y0, but the manuscript does not quantify how this multiplier relates to a continuous-time hazard ratio estimated by a Cox model. The only quantitative check (Section 5.3) uses P_Y0=0.005 and recovers an estimated hazard ratio of 3.187 for a specified RR_A=3.24, which is a favorable small-probability regime. For larger per-step probabilities the mapping diverges: for P_0=0.1 and RR_A=2, the implied continuous-time hazard ratio is -log(1-0.2)/-log(1-0.1) ≈ 2.12 (about 6% error), and for P_0=0.3 it is ≈ 2.57 (about 28% error). The paper should either explicitly restrict the claim to discrete-time hazard structures, provide a conversion rule between per-tick probabilities and continuous-time hazard ratios (e.g., using -log(1-p)), and/or give guidance on choosing the time step to control the approximation error. Without this, a user who specifies a hazard ratio in the manner of Section 5.3 will not generate data with the intended hazard structure unless the per-step probabilities are very small.
  2. [Section 5.3] The validation of the discrete-time time-to-event engine rests on a single unseeded run with n=10,000, and the Cox estimate exp(coef)=3.187 is a self-consistency check that recovers the input parameter RR_A=3.24; it is not an independent confirmation that the DGP matches a specified continuous-time hazard structure. To support the headline claim that simDAG replicates real Monte-Carlo time-to-event DGPs, the manuscript should report results across multiple random seeds, over a grid of P_0, RR_A, and max_t values, and ideally quantify the bias of the estimated hazard ratio as a function of the per-tick probability. The current evidence is insufficient to establish the reliability of the discrete-time approximation away from the single demonstrated parameter combination.
minor comments (6)
  1. [Title and throughout] The paper uses 'Crossectional' consistently; the standard spelling is 'cross-sectional'.
  2. [Section 5.3] The simulation in Section 5.3 does not set a random seed; the reported Cox estimate (3.187) is therefore not reproducible from the code as printed. Please include a set.seed() call.
  3. [Section 5.5] The runtime benchmark calls microbenchmark with times=1, so the statement that a dataset takes '1.11 seconds on average' is not an average; please use multiple repetitions or rephrase to 'took 1.11 seconds in a single run'.
  4. [Section 4] The phrase 'theses authors' should be 'these authors'.
  5. [Appendix A.6] In the prob_vacc example, the three category probabilities (0.99, 0.0005, 0.0005) sum to 0.991, not 1. The text should explain whether the package normalizes such vectors or whether the user must supply probabilities summing to one.
  6. [Appendix A.7 and A.8] Minor typos: 'choosen' should be 'chosen', and 'calender' should be 'calendar'.

Circularity Check

0 steps flagged · score 0.0 of 10

No significant circularity: simDAG's demonstrations are self-contained DGP replications, not predictions derived from their own inputs.

full rationale

The paper is a software description, not a derivation of a scientific result. All coefficients used in the replicated DGPs (Sections 3, 4, 5.3) are taken from external published studies (Denz et al. 2023a; Gruber et al. 2015; Denz et al. 2023b) or set directly by the user, and no parameters are fitted to a target outcome. The Section 5.3 Cox-model check is explicitly a self-consistency sanity check: RR_A = 3.24 is an input to the DAG specification, and the estimated hazard ratio of 3.187 is reported as being 'close to the relative risk ... specified in the DAG object', not as an out-of-sample prediction. This is a validation that the software implements the specified DGP, which is not circular. The two replications based on the first author's own prior work (Denz et al. 2023a, 2023b) are citations of externally published parameter values and study designs, not unverified premises that do the argumentative work. The discrete-time versus continuous-time hazard ratio approximation concern raised by the reader is a substantive correctness/approximation limitation, but it is not a form of circularity: the paper's claim is that simDAG simulates the discrete per-tick process the user specifies. No equation is defined in terms of the result it is said to produce, and no fitted input is renamed as a prediction. The analysis therefore finds no significant circularity.

Assumptions & free parameters 0 free parameters · 4 assumptions · 0 invented entities

The paper adds no fitted parameters and no invented entities. Its claims rest on standard graph-theoretic facts and on the domain assumption that discrete-time Bernoulli trials well approximate the intended hazard processes, an assumption that is only validated in a single example. Two replicated DGPs come from the first author's earlier studies, but the parameters there are inputs, not outputs, of the package.

assumptions (4)
  • standard math Every DAG admits a topological ordering, enabling node-by-node generation.
    Invoked in Section 1.2 ('every DAG can be topologically sorted' per Kahn 1962).
  • domain assumption Discrete-time Bernoulli/multinomial trials on a fine time grid adequately approximate the intended continuous-time hazard structure.
    The time_to_event node type in Section 5.3 samples daily Bernoulli trials; the Cox model check recovers RR_A=3.24 only approximately (estimate 3.187). Approximation quality depends on small per-day event probabilities.
  • domain assumption The Bender et al. (2005) inverse-CDF method correctly generates survival times for a specified Cox model with Weibull baseline.
    Used in node_cox() in Section 3; correctness is inherited from the cited method, not re-derived.
  • domain assumption Nodes defined with arbitrary user functions are conditionally independent across time given parent values at each time step.
    The discrete-time algorithm in Section 5.1 assumes the user-specified prob_fun fully characterizes each time step's conditional distribution.

how reviews work

0 comments
Cite this review

Pith. "Pith review of Simulating Complex Crossectional and Longitudinal Data using the simDAG R Package." pith.science (2026). https://pith.science/paper/DG3AKALY

@misc{pith2026250601498,
  author       = {Pith},
  title        = {Pith review of: Simulating Complex Crossectional and Longitudinal Data using the simDAG R Package},
  year         = {2026},
  howpublished = {\url{https://pith.science/paper/DG3AKALY}},
  note         = {Machine review of arXiv:2506.01498}
}
read the original abstract

Generating artificial data is a crucial step when performing Monte-Carlo simulation studies. Depending on the planned study, complex data generation processes (DGP) containing multiple, possibly time-varying, variables with various forms of dependencies and data types may be required. Simulating data from such DGP may therefore become a difficult and time-consuming endeavor. The simDAG R package offers a standardized approach to generate data from simple and complex DGP based on the definition of structural equations in directed acyclic graphs using arbitrary functions or regression models. The package offers a clear syntax with an enhanced formula interface and directly supports generating binary, categorical, count and time-to-event data with arbitrary dependencies, possibly non-linear relationships and interactions. It additionally includes a framework to conduct discrete-time based simulations which allows the generation of longitudinal data on a semi-continuous time-scale. This approach may be used to generate time-to-event data with both recurrent or competing events and possibly multiple time-varying covariates, which may themselves have arbitrary data types. In this article we demonstrate the vast amount of features included in simDAG by replicating the DGP of multiple real Monte-Carlo simulation studies.

Figures

Figures reproduced from arXiv: 2506.01498 by the authors.

Figure 1
Figure 1. An example DAG with three nodes. Such DAGs are the cornerstone of the structural approach to causal inference developed by Pearl (2009) and Spirtes, Glymour, and Scheines (2000). They are used extensively in social research (Wouk, Bauer, and Gottfredson 2019), econonomics (Imbens 2020) and epidemi￾ology (Byeon and Lee 2023) to encode causal assumptions about the real underlying DGP of empirical data. For empirical r… view at source ↗
Figure 2
Figure 2. A simple DAG containing only one time-dependent node with three distinct points [PITH_FULL_IMAGE:figures/full_fig_p018_2.png] view at source ↗
Figure 3
Figure 3. A simple graph showing PA(t) and PY (t) for a fictional individual who got vaccinated once at t = 100, with PA0 = 0.01, PY 0 = 0.005, drisk = 20 and RRA = 3.24. the person is currently in the risk period of 20 days following the vaccination. We can achieve this by setting the event_duration parameter in the node definition of the vaccination node to 20, meaning that the vaccination node will equal 1 for 20 days afte… view at source ↗

Discussion (0). Sign in to comment.

Reference graph

Works this paper leans on

60 extracted references · 42 canonical work pages

  1. [1]

    An Object-Oriented Framework for Statistical Simulation: The R Package simFrame

    Alfons A, Templ M, Filzmoser P (2010). An Object-Oriented Framework for Statistical Simulation: The R Package simFrame . Journal of Statistical Software, 37(3), 1--36. doi:10.18637/jss.v037.i03

  2. [2]

    Better Simulations for Validating Causal Discovery with the DAG-Adaptation of the Onion Method

    Andrews B, Kummerfeld E (2024). Better Simulations for Validating Causal Discovery with the DAG-Adaptation of the Onion Method. arXiv:2405.13100v1

  3. [3]

    Simulation Methods to Estimate Design Power: An Overview for Applied Research

    Arnold BF, Hogan DR, Colford Jr JM, Hubbard AE (2011). Simulation Methods to Estimate Design Power: An Overview for Applied Research. BMC Medical Research Methodology, 11(94), 1--10. doi:10.1186/1471-2288-11-94

  4. [4]

    Comparison of Models for the Analysis of Intensive Longitudinal Data

    Asparouhov T, Muthén B (2020). Comparison of Models for the Analysis of Intensive Longitudinal Data. Structural Equation Modeling: A Multidisciplinary Journal, 27(2), 275--297. doi:10.1080/10705511.2019.1626733

  5. [5]

    Generating Survival Times to Simulate Cox Proportional Hazards Models with Time-Varying Covariates

    Austin PC (2012). Generating Survival Times to Simulate Cox Proportional Hazards Models with Time-Varying Covariates. Statistics in Medicine, 31(29), 3946--3958. doi:10.1002/sim.5452

  6. [6]

    Discrete-Event System Simulation, volume 5

    Banks J, Carson II JS, Nelson BL, Nicol DM (2014). Discrete-Event System Simulation, volume 5. Pearson Education Limited, Edinburgh Gate

  7. [7]

    data.table : Extension of `data.frame`

    Barrett T, Dowle M, Srinivasan A, Gorecki J, Chirico M, Hocking T (2024). data.table : Extension of `data.frame` . R package version 1.15.2, ://CRAN.R-project.org/package=data.table

  8. [8]

    Generating Survival Times to Simulate Cox Proportional Hazards Models

    Bender R, Augustin T, Blettner M (2005). Generating Survival Times to Simulate Cox Proportional Hazards Models. Statistics in Medicine, 24(11), 1713--1723. doi:10.1002/sim.2059

Show all 60 references
  1. [9]

    Simulating Survival Data Using the simsurv R Package

    Brilleman SL, Wolfe R, Moreno-Betancur M, Crowther MJ (2021). Simulating Survival Data Using the simsurv R Package. Journal of Statistical Software, 97(3). doi:10.18637/jss.v097.i03

  2. [10]

    Directed Acyclic Graphs for Clinical Research: A Tutorial

    Byeon S, Lee W (2023). Directed Acyclic Graphs for Clinical Research: A Tutorial. Journal of Minimally Invasive Surgery, 26(3), 97--107. doi:10.7602/jmis.2023.26.3.97

  3. [11]

    Monte Carlo Simulation and Resampling Methods for Social Science

    Carsey TM, Harden JJ (2014). Monte Carlo Simulation and Resampling Methods for Social Science. SAGE Publications, Thousand Oaks

  4. [12]

    Reporting Guidelines for Health Care Simulation Research: Extensions to the CONSORT and STROBE Statements

    Cheng A, Kessler D, Mackinnon R, Chang TP, Nadkarni VM, Hunt EA, Duval-Arnould J, Lin Y, Cook DA, Pusic M, Hui J, Moher D, Egger M, Auerbach M (2016). Reporting Guidelines for Health Care Simulation Research: Extensions to the CONSORT and STROBE Statements. Advances in Simulat...

  5. [13]

    Regression Modeling for Recurrent Events Possibly with an Informative Terminal Event Using R Package reReg

    Chiou SH, Xu G, Huang JYCY (2023). Regression Modeling for Recurrent Events Possibly with an Informative Terminal Event Using R Package reReg . Journal of Statistical Software, 105(5), 1--34. doi:10.18637/jss.v105.i05

  6. [14]

    igraph : Network Analysis and Visualization in R

    Csárdi G, Nepusz T, Traag V, Horvát S, Zanini F, Noom D, Müller K (2024). igraph : Network Analysis and Visualization in R . doi:10.5281/zenodo.7682609. R package version 2.0.3, ://CRAN.R-project.org/package=igraph

  7. [15]

    Survival Data Simulation with the R Package rsurv

    Demarqui FN (2024). Survival Data Simulation with the R Package rsurv . arXiv:2406.01750v1

  8. [16]

    A Comparison of Different Methods to Adjust Survival Curves for Confounders

    Denz R, Klaaßen-Mielke R, Timmesfeld N (2023 a ). A Comparison of Different Methods to Adjust Survival Curves for Confounders. Statistics in Medicine, 42(10), 1461--1479. doi:10.1002/sim.9681

  9. [17]

    Impact of Record-Linkage Errors in Covid-19 Vaccine-Safety Analyses using German Health-Care Data: A Simulation Study

    Denz R, Meiszl K, Ihle P, Oberle D, Drechsel-Bäuerle U, Scholz K, Meyer I, Timmesfeld N (2023 b ). Impact of Record-Linkage Errors in Covid-19 Vaccine-Safety Analyses using German Health-Care Data: A Simulation Study. arXiv:2310.15016v1

  10. [18]

    Illustrating How to Simulate Data from Directed Acyclic Graphs to Understand Epidemiologic Concepts

    Fox MP, Nianogo R, Rudolph JE, Howe CJ (2022). Illustrating How to Simulate Data from Directed Acyclic Graphs to Understand Epidemiologic Concepts. American Journal of Epidemiology, 191(7), 1300--1306. doi:10.1093/aje/kwac041

  11. [19]

    simstudy : Illuminating Research Methods through Data Generation

    Goldfeld K, Wujciak-Jens J (2020). simstudy : Illuminating Research Methods through Data Generation. The Journal of Open Source Software, 5(54), 1--4. doi:10.21105/joss.02763

  12. [20]

    simr : An R Package for Power Analysis of Generalized Linear Mixed Models by Simulation

    Green P, MacLeod CJ (2016). simr : An R Package for Power Analysis of Generalized Linear Mixed Models by Simulation. Methods in Ecology and Evolution, 7(4), 493--498. doi:10.1111/2041-210X.12504

  13. [21]

    Ensemble Learning of Inverse Probability Weights for Marginal Structural Modeling in Large Observational Datasets

    Gruber S, Logan RW, Jarrín I, Monge S, Hernán MA (2015). Ensemble Learning of Inverse Probability Weights for Marginal Structural Modeling in Large Observational Datasets. Statistics in Medicine, 34(1), 106--117. doi:10.1002/sim.6322

  14. [22]

    DagSim : Combining DAG-Based Model Structure with Unconstrained Data Types and Relations for Flexible, Transparent, and Modularized Data Simulation

    Hajj GSA, Pensar J, Sandve GK (2023). DagSim : Combining DAG-Based Model Structure with Unconstrained Data Types and Relations for Flexible, Transparent, and Modularized Data Simulation. PLoS One, 18(4). doi:10.1371/journal.pone.0284443

  15. [23]

    Flexible Simulation of Competing Risks Data Following Prespecified Subdistribution Hazards

    Haller B, Ulm K (2014). Flexible Simulation of Competing Risks Data Following Prespecified Subdistribution Hazards. Journal of Statistical Computation and Simulation, 84(12), 2557--2576

  16. [24]

    Data Generation for the Cox Proportional Hazards Model with Time-Dependent Covariates: A Method for Medical Researchers

    Hendry DJ (2013). Data Generation for the Cox Proportional Hazards Model with Time-Dependent Covariates: A Method for Medical Researchers. Statistics in Medicine, 33(3), 436--454. doi:10.1002/sim.5945

  17. [25]

    Causal Inference: What If

    Hernán MA, Robins JM (2020). Causal Inference: What If. CRC Press

  18. [26]

    Generating Survival Times Using Cox Proportional Hazards Models with Cyclic and Piecewise Time-Varying Covariates

    Huang Y, Zhang Y, Zhang Z, Gilbert PB (2020). Generating Survival Times Using Cox Proportional Hazards Models with Cyclic and Piecewise Time-Varying Covariates. Statistics in Biosciences, 12, 324--339. doi:10.1007/s12561-020-09266-3

  19. [27]

    Potential Outcome and Directed Acyclic Graph Approaches to Causality: Relevance for Empirical Practice in Economics

    Imbens GW (2020). Potential Outcome and Directed Acyclic Graph Approaches to Causality: Relevance for Empirical Practice in Economics. Journal of Economic Literature, 58(4), 1129--1179. doi:10.1257/jel.20191597

  20. [28]

    semTools : U seful tools for structural equation modeling

    Jorgensen TD, Pornprasertmanit S, Schoemann AM, Rosseel Y (2022). semTools : U seful tools for structural equation modeling . R package version 0.5-6, ://CRAN.R-project.org/package=semTools

  21. [29]

    Topological Sorting of Large Networks

    Kahn AB (1962). Topological Sorting of Large Networks. Communications of the ACM, 5(11), 558--562. doi:10.1145/368996.369025

  22. [30]

    Simulation for Designing Clinical Trials: A Pharmacokinetic-Pharmacodynamic Modeling Perspective

    Kimko HC, Duffull SB (eds.) (2002). Simulation for Designing Clinical Trials: A Pharmacokinetic-Pharmacodynamic Modeling Perspective. Marcel Dekker Inc., New York

  23. [31]

    Principles and Practice of Structural Equation Modeling

    Kline RB (2023). Principles and Practice of Structural Equation Modeling. 5. The Guilford Press, New York

  24. [32]

    microbenchmark : Accurate Timing Functions

    Mersmann O (2023). microbenchmark : Accurate Timing Functions . R package version 1.4.10, ://CRAN.R-project.org/package=microbenchmark

  25. [33]

    Competing Risks Simulation with the survsim R Package

    Mori \ n a D, Navarro A (2017). Competing Risks Simulation with the survsim R Package. Communications in Statistics: Simulation and Computation, 46(7), 5712--5722. doi:10.18637/jss.v059.i02

  26. [34]

    Using Simulation Studies to Evaluate Statistical Methods

    Morris TP, White IR, Crowther MJ (2019). Using Simulation Studies to Evaluate Statistical Methods. Statistics in Medicine, 38(11), 2074--2102. doi:10.1002/sim.8086

  27. [35]

    The Causal Roadmap and Simulations to Improve the Rigor and Reproducibility of Real-Data Applications

    Nance N, Petersen ML, van der Laan MJ, Balzer LB (2024). The Causal Roadmap and Simulations to Improve the Rigor and Reproducibility of Real-Data Applications. Epidemiology, 35(6), 791--800. doi:10.1097/EDE.0000000000001773

  28. [36]

    Generating Survival Times with Time-Varying Covariates Using the Lambert W Function

    Ngwa JS, Cabral HJ, Cheng DM, Gagnon DR, LaValley MP, Cupples LA (2022). Generating Survival Times with Time-Varying Covariates Using the Lambert W Function. Communications in Statistics: Simulation and Computation, 51(1), 135--153. doi:10.1080/03610918.2019.1648822

  29. [37]

    Causal Diagrams for Empirical Research

    Pearl J (1995). Causal Diagrams for Empirical Research. Biometrika, 82(4), 669--688. doi:10.2307/2337329

  30. [38]

    Causality: Models, Reasoning and Inference

    Pearl J (2009). Causality: Models, Reasoning and Inference. 2 edition. Cambridge University Press, Cambridge

  31. [39]

    ggforce : Accelerating ggplot2

    Pedersen TL (2022). ggforce : Accelerating ggplot2 . R package version 0.4.1, ://CRAN.R-project.org/package=ggforce

  32. [40]

    Comparison of Open-Source Software for Producing Directed Acyclic Graphs

    Pitts AJ, Fowler CR (2024). Comparison of Open-Source Software for Producing Directed Acyclic Graphs. Journal of Causal Inference, 12(1), 1--10. doi:10.1515/jci-2023-0031

  33. [41]

    simsem : SIMulated Structural Equation Modeling

    Pornprasertmanit S, Miller P, Schoemann A, Jorgensen TD (2021). simsem : SIMulated Structural Equation Modeling . R package version 0.5-16, ://CRAN.R-project.org/package=simsem

  34. [42]

    R : A Language and Environment for Statistical Computing

    R Core Team (2024). R : A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna, Austria. ://www.r-project.org/

  35. [43]

    Beware of the Simulated DAG! Causal Discovery Benchmarks May Be Easy To Game

    Reisach AG, Seiler C, Weichwald S (2021). Beware of the Simulated DAG! Causal Discovery Benchmarks May Be Easy To Game. In M Ranzato, A Beygelzimer, YN Dauphin, P Liang, JW Vaughan (eds.), Advances in Neural Information Processing Systems 34 (NeurIPS 2021)

  36. [44]

    lavaan : An R Package for Structural Equation Modeling

    Rosseel Y (2012). lavaan : An R Package for Structural Equation Modeling. Journal of Statistical Software, 48(2), 1--36. doi:10.18637/jss.v048.i02

  37. [45]

    Play it Again: Teaching Statistics with Monte Carlo Simulation

    Sigal MJ, Chalmers RP (2016). Play it Again: Teaching Statistics with Monte Carlo Simulation. Journal of Statistics Education, 24(3), 136--156. doi:10.1080/10691898.2016.1246953

  38. [46]

    simcausal R Package: Conducting Transparent and Reproducible Simulation Studies of Causal Effect Estimation with Complex Longitudinal Data

    Sofrygin O, van der Laan MJ, Neugebauer R (2017). simcausal R Package: Conducting Transparent and Reproducible Simulation Studies of Causal Effect Estimation with Complex Longitudinal Data. Journal of Statistical Software, 81(2), 1--47. doi:10.18637/jss.v081.i02

  39. [47]

    Causation, Prediction, and Search

    Spirtes P, Glymour C, Scheines R (2000). Causation, Prediction, and Search. 2. MIT Press, Cambridge

  40. [48]

    A Dynamic Microsimulation Model for Epidemics

    Spooner F, Abrams JF, Morrissey K, Shaddick G, Batty M, Milton R, Dennett A, Lomax N, Malleson N, Nelissen N, Coleman A, Nur J, Jin Y, Greig R, Shenton C, Birkin M (2021). A Dynamic Microsimulation Model for Epidemics. Social Science & Medicine, 291(114461). doi:10.1016/j.socs...

  41. [49]

    Simulation and Computational Red Teaming for Problem Solving

    Tang J, Leu G, Abbass HA (2020). Simulation and Computational Red Teaming for Problem Solving. John Wiley & Sons, Hoboke

  42. [50]

    Simulation of Synthetic Complex Data: The R Package simPop

    Templ M, Meindl B, Kowarik A, Dupriez O (2017). Simulation of Synthetic Complex Data: The R Package simPop . Journal of Statistical Software, 79(10), 1--38. doi:10.18637/jss.v079.i10

  43. [51]

    Robust Causal Inference using Directed Acyclic Graphs: The R Package daggity

    Textor J, van der Zander B, Gilthorpe MS, Liśkiewicz M, Ellison GTH (2016). Robust Causal Inference using Directed Acyclic Graphs: The R Package daggity . International Journal of Epidemiology, 45(6), 1887--1894. doi:10.1093/ije/dyw341

  44. [52]

    A Package for Survival Analysis in R

    Therneau TM (2024). A Package for Survival Analysis in R . R package version 3.5-8, ://CRAN.R-project.org/package=survival

  45. [53]

    Modeling Discrete Time-to-Event Data

    Tutz G, Schmid M (2016). Modeling Discrete Time-to-Event Data. Springer International Publishing Switzerland, Cham

  46. [54]

    reda : Recurrent Event Data Analysis

    Wang W, Fu H, Han S, Yan J (2022). reda : Recurrent Event Data Analysis . R package version 0.5.4

  47. [55]

    ggplot2 : Elegant Graphics for Data Analysis

    Wickham H (2016). ggplot2 : Elegant Graphics for Data Analysis . Springer-Verlag New York. ISBN 978-3-319-24277-4. ://ggplot2.tidyverse.org

  48. [56]

    How to Implement Directed Acyclic Graphs to Reduce Bias in Addiction Research

    Wouk K, Bauer AE, Gottfredson NC (2019). How to Implement Directed Acyclic Graphs to Reduce Bias in Addiction Research. Addictive Behaviors, 94, 109--116. doi:10.1016/j.addbeh.2018.09.032

  49. [57]

    Application of Discrete Event Simulation in Health Care: A Systematic Review

    Zhang X (2018). Application of Discrete Event Simulation in Health Care: A Systematic Review. BMC Health Services Research, 18(687). doi:10.1186/s12913-018-3456-4

  50. [58]

    Time-Varying Covariates and Coefficients in Cox Regression Models

    Zhang Z, Reinikainen J, Adeleke KA, Pieterse ME, Groothuis-Oudshoorn CGM (2018). Time-Varying Covariates and Coefficients in Cox Regression Models. Annals of Translational Medicine, 6(7), 1--10. doi:10.21037/atm.2018.02.12

  51. [59]

    , " * write output.state after.block = add.period write newline

    ENTRY address archive author booktitle chapter collaboration doi edition editor eid eprint howpublished institution isbn issn journal key month note number numpages organization pages publisher school series title type url volume year label extra.label sort.label short.list IN...

  52. [60]

    write newline

    " write newline "" before.all 'output.state := FUNCTION n.dashify 't := "" t empty not t #1 #1 substring "-" = t #1 #2 substring "--" = not "--" * t #2 global.max substring 't := t #1 #1 substring "-" = "-" * t #2 global.max substring 't := while if t #1 #1 substring * t #2 gl...

Pith tools

Reviewed August 7, 2026 · model on record in the stance chip above.