| simulate_smoothbp | R Documentation |
Generates synthetic data from the model used by smoothbp,
including optional between-subject random intercepts. Supports any number
of breakpoints K \geq 1. True parameter values are stored as the
"true_params" attribute so they can be compared against posterior
estimates.
simulate_smoothbp(
n_subj = 20L,
n_obs = 8L,
b0 = 5,
b1 = -0.3,
delta = 1.2,
omega = 3,
rho = 4,
sigma = 0.4,
sigma_u = 0.5,
tau_range = c(0, 6),
seed = NULL
)
n_subj |
Number of subjects (groups). Set to |
n_obs |
Observations per subject. May be a scalar (same for all
subjects) or a length- |
b0 |
Overall intercept (conditional mean at |
b1 |
Pre-change-point slope (evaluated relative to |
delta |
Change in slope at each change-point. A numeric vector of
length |
omega |
Change-point location(s). A numeric vector of length
|
rho |
Sharpness of each transition. A numeric vector of length
|
sigma |
Residual standard deviation. |
sigma_u |
Between-subject SD for random intercepts. Set to |
tau_range |
Numeric vector of length 2 giving the range of the time
variable. Observations are evenly spaced within this range for each
subject. Default |
seed |
Integer seed for reproducibility. Sampled randomly if
|
The data-generating model for K breakpoints is:
y_{ij} = (b_0 + u_j) + b_1 (\tau_{ij} - \omega_1)
+ \sum_{k=1}^{K} \delta_k \, d_{ijk} \, \text{logistic}(d_{ijk} \, \rho_k)
+ \varepsilon_{ij}
where d_{ijk} = \tau_{ij} - \omega_k and \text{logistic}(\cdot) is the
logistic function \text{logistic}(x) = (1 + e^{-x})^{-1}. The pre-break slope b_1 is centred at the first
change-point \omega_1, so b_0 represents the conditional mean
at \tau = \omega_1 (consistent with the fitted model).
For a single breakpoint (K = 1), scalar values of omega,
rho, and delta are accepted for backward compatibility.
A data.frame with columns:
subjectSubject identifier (factor).
tauTime variable.
muNoise-free conditional mean \mu_{ij}.
yObserved response.
The attribute "true_params" is a named list containing the
data-generating values of b0, b1, delta, omega,
rho, sigma, sigma_u, the vector of subject-level
deviations u, and the seed used.
# Single breakpoint (K = 1)
dat1 <- simulate_smoothbp(
n_subj = 20, n_obs = 8,
b0 = 5, b1 = -0.3, delta = 1.2,
omega = 3, rho = 4, sigma = 0.4, sigma_u = 0.5,
seed = 42
)
head(dat1)
attr(dat1, "true_params")
# Two breakpoints (K = 2)
dat2 <- simulate_smoothbp(
n_subj = 20, n_obs = 12,
b0 = 5, b1 = -0.3,
delta = c(1.2, -0.8),
omega = c(2, 4),
rho = c(4, 4),
sigma = 0.4, sigma_u = 0.5,
seed = 42
)
head(dat2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.