crtDataSimulation {epts}R Documentation

Simulate Clustered Randomized Trial (CRT) Data

Description

This function simulates a multiple intervention arms CRT data. The model includes intervention and pre-test scores as covariates.

Usage

crtDataSimulation(
  ni,
  nstreated,
  np,
  ns,
  sigma,
  ICC,
  B0,
  es,
  seed,
  attritionrates,
  covariates
)

Arguments

ni

The number of intervention groups excluding the control group.

nstreated

The number of schools in each group, including the control group. It should be specified as an integer vector of length ni + 1.

np

The number of pupils per school.

ns

The total number of schools.

sigma

The standard deviation of the individual-level error.

ICC

The intra-class correlation coefficient.

B0

The intercept of the model.

es

The standardized effect sizes for each intervention group. It should be specified as a numeric vector.

seed

The random seed for reproducibility.

attritionrates

The proportion of attrition for each group, including the control group. It should be specified as a numeric vector of length ni + 1.

covariates

List of covariate specifications. Each element should be a list with the following fields:

name

Character. Name of the covariate.

type

Character. Either "continuous" or "categorical".

sd

Numeric. Standard deviation (only for continuous covariates).

coefficient

Numeric. Coefficient (only for continuous covariates).

levels

Character vector. Category levels (only for categorical covariates).

probs

Numeric vector. Sampling probabilities (must sum to 1) (categorical only).

reference

Character. Reference category (categorical only).

coefficients

Named list of numeric values. Coefficients for each non-reference level.

Value

A data.frame containing:

pupils

Unique pupil ID

schools

School ID

interventions

Intervention group (0 = control, 1 to ni for interventions)

covariates

Simulated covariates

posttest

Simulated posttest scores (NA if attrited)

Examples

covariates <- list(
 list(name = "pretest", type = "continuous", sd = 1, coefficient = 1.7),
 list(name = "gender", type = "categorical", levels = c("Male", "Female"),
 probs = c(0.3, 0.7), reference = "Male", coefficients = list(B = -0.5)),
 list(name = "ethnicity", type = "categorical", levels = c("White", "Black", "Asian"),
 probs = c(0.3, 0.3, 0.4), reference = "White", coefficients = list(B = 1.02, C = 1.3))
)

crtdata <- crtDataSimulation(ni = 3, ns = 10, np = 100, nstreated = c(2, 3, 2, 3), 
sigma = 1, ICC = 0.1, B0 = 1.45, es = c(0.1, 0.2, 0.5), 
seed = 1234, attritionrates = c(0, 0.1, 0.2, 0.1), covariates = covariates)
head(crtdata)


[Package epts version 1.2.2 Index]