nll_two_inf_subpops_obs {anovir} | R Documentation |
Negative log-likelihood function: two observed subpopulations of infected hosts
Description
Function returning negative log-likelihood (nll) for patterns of mortality in infected and uninfected treatments when an infected population harbours two identified, or 'observed', subpopulations of hosts experiencing different patterns of virulence, e.g. with/without visible signs of infection.
Usage
nll_two_inf_subpops_obs(
a1 = a1,
b1 = b1,
a2 = a2,
b2 = b2,
a3 = a3,
b3 = b3,
data = data,
time = time,
censor = censor,
infected_treatment = infected_treatment,
d1 = "Weibull",
d2 = "Weibull",
d3 = "Weibull",
infsubpop = infsubpop
)
Arguments
a1 , b1 |
location and scale parameters describing background mortality |
a2 , b2 |
location and scale parameters describing mortality due to infection in one subpopulation |
a3 , b3 |
location and scale parameters describing mortality due to infection in the other subpopulation |
data |
name of data frame containing survival data |
time |
name of data frame column identifying time of event; time > 0 |
censor |
name of data frame column idenifying if event was death (0) or right-censoring (1) |
infected_treatment |
name of data frame column identifying if data are from an infected (1) or uninfected (0) treatment |
d1 , d2 , d3 |
names of probability distributions chosen to describe background mortality and mortality due to infection, respectively; each defaults to the Weibull distribution |
infsubpop |
name of data frame column identifying the two subpopulations of infected hosts; '1' or '2' |
Details
The nll is based on six parameters, the location and scale parameters for background mortality, plus separate location and scale parameters for each of the two infected subpopulations.
It is assumed the patterns of mortality within each subpopulation act independently of one another.
See Also
nll_exposed_infected
nll_two_inf_subpops_unobs
Examples
# example using data from Parker et al
data01 <- data_parker
# create column 'infsubpop' in data01, fill with '0'
data01$infsubpop <- 0
# infsubpop = '1' for individuals in infected treatments (g == 1)
# with visible signs of sporulation (Sporulation = 1)
# infsubpop = '2' for individuals in infected treatments (g == 1)
# with no visible signs of sporulation (Sporulation = 0)
data01$infsubpop[data01$g == 1 & data01$Sporulation == 1] <- 1
data01$infsubpop[data01$g == 1 & data01$Sporulation == 0] <- 2
head(data01)
# step #1: parameterise nll function to be passed to 'mle2'
m01_prep_function <- function(
a1 = a1, b1 = b1, a2 = a2, b2 = b2, a3 = a3, b3 = b3){
nll_two_inf_subpops_obs(
a1 = a1, b1 = b1, a2 = a2, b2 = b2, a3 = a3, b3 = b3,
data = data01,
time = t,
censor = censored,
infected_treatment = g,
d1 = "Frechet",
d2 = "Weibull",
d3 = "Weibull",
infsubpop = infsubpop
)}
# step #2: send 'prep_function' to 'mle2' for maximum likelihood estimation
m01 <- mle2(
m01_prep_function,
start = list(a1 = 3, b1 = 1, a2 = 2, b2 = 0.5, a3 = 2, b3 = 0.5)
)
summary(m01)