Excess and Predicted Cases
Source:vignettes/Excess_and_Predicted_Cases.Rmd
Excess_and_Predicted_Cases.Rmd
Sys.setenv("OMP_THREAD_LIMIT" = 1) # Reducing core use, to avoid accidental use of too many cores
library(Colossus)
library(data.table)General Theory
In the field of radiation epidemiology, a common question is “How
many additional cancer cases occurred due to radiation exposures?”. This
is often generalized to the question of how many cases are background
cases and how many cases are excess cases. These are calculated by
splitting a poisson model into a background term and excess terms. In
Colossus, the background term is assumed to be the first term, and every
other term is assumed to be causing excess cases. Colossus has a
function, EventAssignment(), which calculates the number of
background/excess cases for both average predicted counts and true
counts. Let us assume we have the following model for event rate:
a_n <- c(0.1, 0.1)
model <- Pois(pyr, event) ~ loglinear(x, 0) + plinear(D, 1) + Multiplicative()
poisres <- PoisRun(model, df, a_n = a_n)Our total rate () is composed of a background rate () and excess rate (). The cases each row have a total () and background/excess count (). Additionally, every row has a measure of person-time (). Colossus also computes the predicted number of total, background, and excess cases (). For every model we assume the average number of background cases is the background rate multiplied by time, the remaining cases are excess, and the true number of background/excess cases is proportional to the predicted cases.
Colossus returns two matrices, one for the true cases and one for the predicted cases. Each matrix has three columns for the events assigned to background, excess, and total. This provides information on both the relative amount of background and excess cases, as well as differences between the expected and true number of cases.
e <- EventAssignment(poisres, df)
e0 <- e$predict
e1 <- e$caused
BK <- e0[, 1]
EX <- e0[, 2]
Total <- e0[, 3]EventAssignment() can also be used to calculate the
number of cases over the confidence interval of a model parameter. The
excess and background cases are evaluated at the midpoint, as well as
the risk model optimized with the model parameter held constant at the
boundary values. This produces three lists of matrices, for the lower
limit, midpoint, and upper limit. At each point the standard matrices
for observed and predicted events are produced. This method can also be
applied to the results of a likelihood-based boundary regression to
evaluate the distribution of cases at the likelihood-based confidence
interval. In this case the parameter number and significance level are
taken from the likelihood boundary result, and do not need to be
provided.
e <- EventAssignment(poisres, df, check_num = 2, z = 1.96)
e_lower <- e$lower_limit$caused
e_mid <- e$midpoint$caused
e_high <- e$upper_limit$caused
EX_low <- e_lower[, 2]
EX_mid <- e_mid[, 2]
EX_high <- e_high[, 2]
p_bound <- LikelihoodBound(poisres, df, para_number = 2, alpha = 0.05)
e <- EventAssignment(p_bound, df)