bFitMod {DoseFinding}  R Documentation 
Fit a doseresponse model using Bayesian or bootstrap methods.
Description
For ‘type = "Bayes"’, MCMC sampling from the posterior distribution of
the doseresponse model is done. The function assumes a multivariate
normal distribution for resp
with covariance matrix S
,
and this is taken as likelihood function and combined with the prior
distributions specified in prior to form the posterior distribution.
For ‘type = "bootstrap"’, a multivariate normal distribution for
resp
with covariance matrix S
is assumed, and a large
number of samples is drawn from this distribution. For each draw the
fitMod function with ‘type = "general"’ is used to fit the draws
from the multivariate normal distribution.
Usage
bFitMod(dose, resp, model, S, placAdj = FALSE,
type = c("Bayes", "bootstrap"),
start = NULL, prior = NULL, nSim = 1000,
MCMCcontrol = list(), control = NULL, bnds,
addArgs = NULL)
## S3 method for class 'bFitMod'
coef(object, ...)
## S3 method for class 'bFitMod'
predict(object, predType = c("fullmodel", "effectcurve"),
summaryFct = function(x) quantile(x, probs = c(0.025, 0.25, 0.5, 0.75, 0.975)),
doseSeq = NULL, lenSeq = 101, ...)
## S3 method for class 'bFitMod'
plot(x, plotType = c("drcurve", "effectcurve"),
quant = c(0.025, 0.5, 0.975),
plotData = c("means", "meansCI", "none"),
level = 0.95, lenDose = 201, ...)
Arguments
dose 
Numeric specifying the dose variable. 
resp 
Numeric specifying the response estimate
corresponding to the doses in 
S 
Covariance matrix associated with the doseresponse
estimate specified via 
model 
Doseresponse model to fit, possible models are
"linlog", "linear", "quadratic", "emax", "exponential",
"sigEmax", "betaMod" and "logistic", see 
placAdj 
Whether or not estimates in "placAdj" are placeboadjusted (note that the linear in log and the logistic model cannot be fitted for placeboadjusted data) 
type 
Character with allowed values "Bayes" and "bootstrap", Determining whether samples are drawn from the posterior, or the bootstrap distribution. 
start 
Optional starting values for the doseresponse parameters in the MCMC algorithm. 
prior 
List containing the information regarding the prior distributions
for ‘type = "Bayes"’.
The list needs to have as many entries as there are model
parameters. The ordering of the list entries should be the same as
in the arguments list of the model see (see For each list entry the user has the choice to choose from 4 possible distributions:

nSim 
Desired number of samples to produce with the algorithm 
MCMCcontrol 
List of control parameters for the MCMC algorithm

control 
Same as the control argument in 
bnds 
Bounds for nonlinear parameters, in case ‘type =
"bootstrap"’. If missing the the default bounds from

addArgs 
List containing two entries named "scal" and "off" for the "betaMod" and "linlog" model. When addArgs is NULL the following defaults are used ‘list(scal = 1.2*max(doses), off = 0.01*max(doses))’ 
x , object 
A bFitMod object 
predType , summaryFct , doseSeq , lenSeq 
Arguments for the predict method. ‘predType’: predType determines whether predictions are returned for the doseresponse curve or the effect curve (difference to placebo). ‘summaryFct’: If equal to NULL predictions are calculated for each sampled parameter value. Otherwise a summary function is applied to the doseresponse predictions for each parameter value. The default is to calculate 0.025, 0.25, 0.5, 0.75, 0.975 quantiles of the predictions for each dose. ‘doseSeq’: Where to calculate predictions. If not specified predictions are calculated on a grid of length ‘lenSeq’ between minimum and maximum dose. ‘lenSeq’: Length of the default grid where to calculate predictions. 
plotType , quant , plotData , level , lenDose 
Arguments for plot method. ‘plotType’: Determining whether the doseresponse curve or the effect curve should be plotted. ‘quant’: Vector of quantiles to display in plot ‘plotData’: Determines how the original data are plotted: Either as means or as means with CI or not. The level of the CI is determined by the argument ‘level’. ‘level’: Level for CI, when plotData is equal to ‘meansCI’. ‘lenDose’: Number of grid values to use for display. 
... 
Additional arguments are ignored. 
Details
Componentwise univariate slice samplers are implemented (see Neal, 2003) to sample from the posterior distribution.
Value
An object of class bFitMod, which is a list containing the matrix of posterior simulations plus some additional information on the fitted model.
Author(s)
Bjoern Bornkamp
References
Neal, R. M. (2003), Slice sampling, Annals of Statistics, 31, 705767
See Also
Examples
data(biom)
## produce first stage fit (using dose as factor)
anMod < lm(resp~factor(dose)1, data=biom)
drFit < coef(anMod)
S < vcov(anMod)
dose < sort(unique(biom$dose))
## define prior list
## normal prior for E0 (mean=0 and sdev=10)
## normal prior for Emax (mean=0 and sdev=100)
## beta prior for ED50: bounds: [0,1.5] parameters shape1=0.45, shape2=1.7
prior < list(norm = c(0, 10), norm = c(0,100), beta=c(0,1.5,0.45,1.7))
## now fit an emax model
gsample < bFitMod(dose, drFit, S, model = "emax",
start = c(0, 1, 0.1), nSim = 1000, prior = prior)
## summary information
gsample
## samples are stored in
head(gsample$samples)
## predict 0.025, 0.25, 0.5, 0.75, 0.975 Quantile at 0, 0.5 and 1
predict(gsample, doseSeq = c(0, 0.5, 1))
## simple plot function
plot(gsample)
## now look at bootstrap distribution
gsample < bFitMod(dose, drFit, S, model = "emax", type = "bootstrap",
nSim = 100, bnds = defBnds(1)$emax)
plot(gsample)
## now fit linear interpolation
prior < list(norm = c(0,1000), norm = c(0,1000),
norm = c(0,1000), norm = c(0,1000), norm = c(0,100))
gsample < bFitMod(dose, drFit, S, model = "linInt",
start = rep(1,5), nSim = 1000, prior = prior)
gsample < bFitMod(dose, drFit, S, model = "linInt", type = "bootstrap",
nSim = 100)
## data fitted on placebo adjusted scale
data(IBScovars)
anovaMod < lm(resp~factor(dose)+gender, data=IBScovars)
drFit < coef(anovaMod)[2:5] # placebo adjusted estimates at doses
vCov < vcov(anovaMod)[2:5,2:5]
dose < sort(unique(IBScovars$dose))[1]
prior < list(norm = c(0,100), beta=c(0,6,0.45,1.7))
## Bayes fit
gsample < bFitMod(dose, drFit, vCov, model = "emax", placAdj=TRUE,
start = c(1, 0.1), nSim = 1000, prior = prior)
## bootstrap fit
gsample < bFitMod(dose, drFit, vCov, model = "emax", placAdj=TRUE,
type = "bootstrap", start = c(1, 0.1),
nSim = 100, prior = prior, bnds = c(0.01,6))
## calculate target dose estimate
TD(gsample, Delta = 0.2)
## now fit linear interpolation
prior < list(norm = c(0,1000), norm = c(0,1000), norm = c(0,1000), norm = c(0,100))
gsample < bFitMod(dose, drFit, vCov, model = "linInt", placAdj=TRUE,
start = rep(1,4), nSim = 1000, prior = prior)
gsample < bFitMod(dose, drFit, vCov, model = "linInt", type = "bootstrap",
placAdj = TRUE, nSim = 100)