
Observation model for continuous assays with detection limits and added noise
Source:R/observation_models.R
observation_model_continuous_bounded_noise.Rd
This observation model observes the latent biomarker quantities given a continuous assay with user-specified lower and upper limits and added noise. The added noise represents assay variability and is done by sampling from a distribution with the latent biomarker quantity as the mean and the measurement error as the standard deviation. The observation standard deviation and distribution are defined within model_pars
as the obs_sd
parameter. The user can also use the optional sensitivity and specificity arguments to account for assay sensitivity and specificity. False negatives are simulated by setting an observed quantity to the assay's lower bound with probability sensitivity
. False positives are simulated by drawing a random quantity from the bounded range for a true 0 biomarker quantity with probability 1-specificity
.
Usage
observation_model_continuous_bounded_noise(
biomarker_states,
model_pars,
bounds,
sensitivity = 1,
specificity = 1,
...
)
Arguments
- biomarker_states
tibble containing true biomarker quantities for all individuals across all time steps and biomarkers. Variables should include: 1) i: the individual ID; 2) t: the time period; 3) b: the biomarker ID; 4) value: the latent biomarker quantity for the given i, t and b
- model_pars
a tibble containing information for all parameters needed to simulate the observation process. This should usually contain: 1) exposure_id: numeric exposure ID; 2) biomarker_id: numeric biomarker ID; 3) name: the character name of the parameter; 4) mean: numeric mean of this parameter distribution; 5) sd: the numeric standard deviation of the parameter distribution
- bounds
a tibble containing the assay lower bound and upper bound for all biomarkers; column namesare 1) biomarker_id; 2) name; 3) value, where name is either
lower_bound
orupper_bound
- sensitivity
number between 0 and 1 to describe the assay's sensitivity; defaults to 1
- specificity
number between 0 and 1 to describe the assay's specificity; defaults to 1
- ...
Additional arguments
See also
Other observation_model:
observation_model_continuous_bounded()
,
observation_model_continuous_noise()
,
observation_model_continuous()
,
observation_model_discrete_noise()
,
observation_model_discrete()
Examples
bounds <- dplyr::tibble(biomarker_id=1,name=c("lower_bound","upper_bound"),value=c(2,8))
observation_model_continuous_bounded_noise(example_biomarker_states,
example_model_pars_numeric, bounds,0.95,0.99)
#> i t b value observed
#> 1: 1 1 1 0.00000 2.000000
#> 2: 1 2 1 0.00000 2.000000
#> 3: 1 3 1 0.00000 2.000000
#> 4: 1 4 1 0.00000 2.000000
#> 5: 1 5 1 0.00000 7.620559
#> ---
#> 11996: 100 116 1 16.26414 8.000000
#> 11997: 100 117 1 16.20296 8.000000
#> 11998: 100 118 1 16.14178 8.000000
#> 11999: 100 119 1 16.08060 8.000000
#> 12000: 100 120 1 16.01942 8.000000