population_setting: Simulate incidence under simple dissemination of screening in...

Description Usage Arguments Value See Also Examples

Description

Generate a data frame representing a population of pop.size individuals and record relevant disease diagnosed with and without screening and overdiagnoses under simple dissemination of screening.

Usage

1
2
3
population_setting(pop.size = 1e+05, onset.rate = 0.001, sojourn.min = 0,
  sojourn.max = 6, sensitivity = 0.5, overdiag.rate = 0.25,
  screen.start.year = 4, screen.stop.year = 30, followup.years = 30)

Arguments

pop.size

Number of individuals in the simulated population.

onset.rate

Annual incidence rate of relevant preclinical disease.

sojourn.min

Shortest relevant preclinical duration.

sojourn.max

Longest relevant preclinical duration.

sensitivity

Screen test episode sensitivity.

overdiag.rate

Proportion of screen detections that are overdiagnosed.

screen.start.year

Year of follow-up at which screening starts.

screen.stop.year

Year of follow-up at which screening stops.

followup.years

Number of years of follow-up.

Value

A data frame of simulated disease incidence organized by year of preclinical onset, sojourn time, and year of diagnosis.

See Also

trial_setting

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
library(plyr)
library(reshape)
population_incidence_3ways <- function(pop.size=1e5,
                                       screen.start.year=3){
    dset <- data.frame(sojourn.min=c(0, 0),
                       sojourn.max=c(12, 6),
                       sensitivity=0.5,
                       overdiag.rate=0.25)
    pset <- ddply(dset,
                  .(sojourn.min,
                    sojourn.max,
                    sensitivity,
                    overdiag.rate),
                  function(x)
                  with(x, population_setting(pop.size=pop.size,
                                             sojourn.min=sojourn.min,
                                             sojourn.max=sojourn.max,
                                             sensitivity=sensitivity,
                                             overdiag.rate=overdiag.rate,
                                             screen.start.year=screen.start.year))
                  )
    return(pset)
}

multipopulation_incidence_3ways <- function(pop.size=1e5,
                                            dissemination.pattern='default'){
    if(dissemination.pattern == 'default'){
        proportion <- c(0.05, 0.1, 0.15, 0.15, 0.05, 0.5)
        start.year <- c(2, 3, 4, 5, 6, 28)
        dissemination.name <- 'Cumulative uptake (years 2-6): 5%,15%,30%,45%,50%'
    } else {
        proportion <- c(0.1, 0.3, 0.1, 0.5)
        start.year <- c(2, 3, 4, 28)
        dissemination.name <- 'Cumulative uptake (years 2-4): 10%,40%,50%'
    }
    dissemination <- data.frame(pop.size=pop.size,
                                proportion=proportion,
                                start.year=start.year)
    stopifnot(with(dissemination, sum(proportion)) == 1)
    mpset <- ddply(dissemination,
                   .(proportion, start.year),
                   function(x){
                       with(x,
        population_incidence_3ways(pop.size=proportion*pop.size,
                                   screen.start.year=start.year))
                         })
    mpset <- ddply(mpset,
                   .(sojourn.min,
                     sojourn.max,
                     sensitivity,
                     overdiag.rate,
                     year),
                   summarize,
                   count_screen=sum(count_screen),
                   count_clinical=sum(count_clinical),
                   count_overdiag=sum(count_overdiag))
    mpset <- transform(mpset, dissemination=dissemination.name)
    return(mpset)
}
mpset_default <- multipopulation_incidence_3ways(dissemination.pattern='default')
mpset_variant <- multipopulation_incidence_3ways(dissemination.pattern='variant')
mpset_3ways <- rbind(mpset_default, mpset_variant)

roman-gulati/overdiag documentation built on May 27, 2019, 1:49 p.m.