survival::summmary.survfit
which had improved slightly
in 3.6-4.popEpi::aggre
bugfix: aggre
now correctly infers which
stratifying variables use Lexis time scales when output is cartesian
and argument by
is of type character.survtab()
bug fix: standard errors were mis-specified for
adjusted curves, e.g. age-adjusted Ederer II estimates. This
resulted in too wide confidence intervals! SEE HERE FOR EXAMPLE:
#135.
The standard errors and confidence intervals of non-adjusted curves
have always been correct.survtab()
bug fix: confidence level was always 95 % regardless of
conf.level
#134lexpand()
bug fixed (#120): observations were dropped if their
entry by age was smaller than the smallest age value, though entry
at exit is correct and used now.sir()
rewrite (#118, #122). New more consistent output, updates on
plotting and minor News for version arguments. Introduce very simple
coef()
and confint()
methods for sir class.sir_ag()
, sir_lex()
and sir_exp()
for extracting SMRs from aggre
and Lexis
objects.aggre()
; there were issues with Epi pkg dev version
which are definitely avoided (#119)rate_ratio()
, sir_ratio()
This is a hotfix. survtab() was causing warnings in certain situations, which this update fixes. Also fixed plotting survtab objects so that multiple strata are plotted correctly when one or more curves end before the longest one as well other small fixes: See Github issues #89, #90, #91, and #92.
Direct adjusting (computing weighted averages of estimates) has been
generalized. Functions such as survtab
and survmean
allow for using
adjust()
mini function within formulas, or a separate adjust
argument. Weights are passed separately. See the examples in the next
chapter. See also ?direct_adjusting
.
The survtab
function computes observed, net/relative and
cause-specific survivals as well as cumulative incidence functions for
Lexis
data. Any of the supported survival time functions can be easily
adjusted by any number of categorical variables if needed.
One can also use survtab_ag
for aggregated data. This means the data
does not have to be on the subject-level to compute survival time
function estimates.
## prep data
data(sibr)
sire$cancer <- "rectal"
sibr$cancer <- "breast"
sr <- rbind(sire, sibr)
sr$cancer <- factor(sr$cancer)
sr <- sr[sr$dg_date < sr$ex_date, ]
sr$status <- factor(sr$status, levels = 0:2,
labels = c("alive", "canD", "othD"))
## create Lexis object
library(Epi)
x <- Lexis(entry = list(FUT = 0, AGE = dg_age, CAL = get.yrs(dg_date)),
exit = list(CAL = get.yrs(ex_date)),
data = sr,
exit.status = status)
#> NOTE: entry.status has been set to "alive" for all.
## population hazards file - see ?pophaz for general instructions
data(popmort)
pm <- data.frame(popmort)
names(pm) <- c("sex", "CAL", "AGE", "haz")
## simple usage - uses lex.Xst as status variable
st <- survtab(FUT ~ cancer, data = x,
breaks = list(FUT = seq(0, 5, 1/12)),
surv.type = "surv.rel", pophaz = pm)
## more explicit usage
st <- survtab(Surv(FUT, event = lex.Xst) ~ cancer, data = x,
breaks = list(FUT = seq(0, 5, 1/12)),
surv.type = "surv.rel", pophaz = pm)
## adjusting
x$agegr <- cut(x$dg_age, c(0,55,65,75,Inf))
w <- as.numeric(table(x$agegr))
st <- survtab(Surv(FUT, event = lex.Xst) ~ cancer + adjust(agegr),
data = x,
breaks = list(FUT = seq(0, 5, 1/12)),
surv.type = "surv.rel",
pophaz = pm, weights = w)
The new rate
function enables easy calculation of e.g. standardized
incidence rates:
## dummy data
a <- merge(0:1, 1:18)
names(a) <- c("sex", "agegroup")
set.seed(1)
a$obs <- rbinom(nrow(a), 100, 0.5)
set.seed(1)
a$pyrs <- rbinom(nrow(a), 1e4, 0.75)
## so called "world" standard rates (weighted to hypothetical world pop in 2000)
r <- rate(data = a, obs = obs, pyrs = pyrs, print = sex,
adjust = agegroup, weights = 'world_2000_18of5')
#> Warning in pyrJjCscXlsrH * pyrJjCscXlsrH: NAs produced by integer overflow
#> Warning in pyrJjCscXlsrH * pyrJjCscXlsrH: NAs produced by integer overflow
| sex | obs | pyrs | rate.adj | SE.rate.adj | rate.adj.lo | rate.adj.hi | rate | SE.rate | rate.lo | rate.hi | |---:|---:|-----:|-------:|--------:|--------:|--------:|-------:|-----:|-------:|-------:| | 0 | 933 | 134986 | 0.0069947 | 0.0002541 | 0.0065140 | 0.0075108 | 0.0069118 | NA | 0.0064822 | 0.0073699 | | 1 | 875 | 134849 | 0.0064453 | 0.0002429 | 0.0059865 | 0.0069394 | 0.0064887 | NA | 0.0060727 | 0.0069332 |