Assay Based Incidence Estimation
rita_incidence.Rd
Assay Based Incidence Estimation
Usage
rita_incidence(
recent,
undiagnosed,
low_viral,
hiv,
tslt,
ever_hiv_test,
weights = rep(1, length(recent)),
tau = 2,
frr = lag_avidity_frr()[1],
test_history_population = c("undiagnosed", "negative"),
assay_surv = lag_avidity_survival(tau * 365),
diag_surv = NULL,
treated = NULL,
treat_surv = NULL
)
Arguments
- recent
Logical. Tests recent on assay.
- undiagnosed
Logical. No previous diagnosis.
- low_viral
Logical. Has low viral load (< 1000).
- hiv
Logical. Is HIV positive.
- tslt
Time since last HIV test (days).
- ever_hiv_test
Subject has been tested for HIV in the past.
- weights
Survey weights.
- tau
long term cut-off (years).
- frr
Reference false recency rate among treatment naive non-elite controller non-AIDS individuals.
- test_history_population
If undiagnosed, the testing histories of undiagnosed HIV+ people are used. If negative, the HIV- population is used.
- assay_surv
Survival function vector for assay among treatment naive non-elite controller non-AIDS individuals.
- diag_surv
time to diagnosis survival function vector. If specified, overrides the internal calculation.
- treated
A logical vector indicating a subject is on treatment. Only needed in the case of the use of RITA2 screening.
- treat_surv
Probability an individual diagnosed i days ago is not on treatment.
Value
A data.frame with the following values: 1. `incidence`: The incidence. 2. `residual_frr`: The false recency rate accounting for the screening process. 3. `omega_rs`: The mean duration of recency up to tau accounting for the screening process. 4. `P(R|S)` : The proportion of screened in individual who test recent. 5. `P(S|H)` : The proportion of HIV+ individuals that are screened in. 6. `P(H)` : HIV prevalence.
Details
This function estimates HIV incidence for cross-sectional survey designs using a recency assay combined with a Recent Infection Testing Algorithm (RITA) screening step, which is used to remove long-term individuals with elevated false recency rates on the assay. Two RITA algorithms are supported. RITA3 treats all individuals with either a previous diagnosis (as determined by self report or ARV biomarkers) or a viral load <1,000 c/ml as non-recent regardless of the result of the recency assay. RITA2 treats all individuals who are either on treatment or have a viral load <1,000 c/ml as non-recent. The default RITA is RITA3. If 'treated' is non-null, RITA2 will be used. RITA2 also requires a vector 'treat_surv' whose ith element represents the probability that an individual diagnosed i days ago is not on treatment.
Examples
data("assay_data")
rita_incidence(
recent=assay_data$recent,
undiagnosed=assay_data$undiagnosed,
low_viral=assay_data$elite_cntr,
hiv=assay_data$hiv,
weights=assay_data$weights,
tslt=assay_data$tslt,
ever_hiv_test=assay_data$ever_hiv_test
)
#> incidence residual_frr omega_rs omega_s P(R|S) P(S|H) P(H)
#> 1 0.01515732 0.0008826826 0.2921342 1.093136 0.07283305 0.195313 0.2480427
# RITA2 Screening
## Posit an average time from diagnosis to treatment of 150 days
treat_surv <- 1 - pexp(1:(365*2), 1/150)
## Create a dummy variable for treatment
assay_data$treated <- !assay_data$undiagnosed
assay_data$treated[assay_data$undiagnosed][c(40L, 47L, 59L, 63L,
83L, 157L, 164L, 166L, 194L, 209L)] <- FALSE
# Calculate incidence using RITA2 screening (i.e. screen as non-recent if either treated or low viral load)
rita_incidence(
recent=assay_data$recent,
undiagnosed=assay_data$undiagnosed,
low_viral=assay_data$elite_cntr,
hiv=assay_data$hiv,
weights=assay_data$weights,
tslt=assay_data$tslt,
ever_hiv_test=assay_data$ever_hiv_test,
treated = assay_data$treated,
treat_surv = treat_surv
)
#> incidence residual_frr omega_rs omega_s P(R|S) P(S|H) P(H)
#> 1 0.01319826 0.0008520468 0.335939 1.335463 0.07283305 0.195313 0.2480427