Last chance! 50% off unlimited learning
Sale ends in
This is the function to actually run the MCMC machinery to produce posterior samples from all model parameters and required derived values. It is a generic function, so that customized versions may be conveniently defined for specific subclasses of GeneralData, GeneralModel, and McmcOptions input.
mcmc(data, model, options, ...)# S4 method for GeneralData,GeneralModel,McmcOptions
mcmc(
data,
model,
options,
program = c("JAGS"),
verbose = FALSE,
fromPrior = data@nObs == 0L,
...
)
# S4 method for DataMixture,GeneralModel,McmcOptions
mcmc(
data,
model,
options,
fromPrior = data@nObs == 0L & data@nObsshare == 0L,
...
)
# S4 method for Data,LogisticIndepBeta,McmcOptions
mcmc(data, model, options, ...)
# S4 method for DataDual,Effloglog,McmcOptions
mcmc(data, model, options, ...)
# S4 method for DataDual,EffFlexi,McmcOptions
mcmc(data, model, options, ...)
The posterior samples, an object of class
Samples
.
The data input, an object of class GeneralData
The model input, an object of class GeneralModel
MCMC options, an object of class
McmcOptions
unused
the program which shall be used: currently only “JAGS” is supported
shall progress bar and messages be printed? (not default)
sample from the prior only? Defaults to checking if nObs is 0. For some models it might be necessary to specify it manually here though.
mcmc(data = GeneralData, model = GeneralModel, options = McmcOptions)
: Standard method which uses JAGS
mcmc(data = DataMixture, model = GeneralModel, options = McmcOptions)
: Method for DataMixture with different fromPrior default
mcmc(data = Data, model = LogisticIndepBeta, options = McmcOptions)
: Obtain posterior samples for the model parameters based on the pseudo 'LogisticsIndepBeta'
DLE model. The joint prior and posterior probability density function of
the intercept
mcmc(data = DataDual, model = Effloglog, options = McmcOptions)
: Obtain the posterior samples for the model parameters in the
Efficacy log log model. Given the value of
mcmc(data = DataDual, model = EffFlexi, options = McmcOptions)
: Obtain the posterior samples for the estimates in the Efficacy Flexible form.
This is the mcmc procedure based on what is described in Lang and Brezger (2004) such that
samples of the mean efficacy responses at all dose levels, samples of sigma2
Reproducible samples can be obtained by setting the seed via
set.seed
before in the user code as usual. However, note that
because the RNG sampler used is external to R, running this MCMC function
will not change the seed position -- that is, the repeated call to this
function will then result in exactly the same output.
# create some data from the class 'Data'
myData <- Data(x=c(0.1,0.5,1.5,3,6,10,10,10),
y=c(0,0,0,0,0,0,1,0),
doseGrid=c(0.1,0.5,1.5,3,6,
seq(from=10,to=80,by=2)))
# Initialize the CRM model
model <- LogisticLogNormal(mean=c(-0.85, 1),
cov=
matrix(c(1, -0.5, -0.5, 1),
nrow=2),
refDose=56)
# Sample from the posterior distribution
options <- McmcOptions(burnin=100,
step=2,
samples=1000)
samples <- mcmc(data = myData, model = model, options=options)
##obtain mcmc DLE samples given the data, LogisticIndepBeta (DLE model) and mcmc simulations options
## data must be of 'Data' class
data<-Data(x=c(25,50,50,75,100,100,225,300),y=c(0,0,0,0,1,1,1,1),
doseGrid=seq(25,300,25))
## model must be of 'LogisticIndepBeta' class
model<-LogisticIndepBeta(binDLE=c(1.05,1.8),DLEweights=c(3,3),DLEdose=c(25,300),data=data)
## options must be ''McmcOptions' class
options<-McmcOptions(burnin=100,step=2,samples=200)
set.seed(94)
samples<-mcmc(data=data,model=model,options=options)
##obtain mcmc efficacy samples given the data, 'Effloglog' model (efficacy model) and
## mcmc simulations options data must be of 'DataDual' class
data<-DataDual(x=c(25,50,25,50,75,300,250,150),
y=c(0,0,0,0,0,1,1,0),
w=c(0.31,0.42,0.59,0.45,0.6,0.7,0.6,0.52),
doseGrid=seq(25,300,25),placebo=FALSE)
## model must be of 'Effloglog' class
Effmodel<-Effloglog(Eff=c(1.223,2.513),Effdose=c(25,300),nu=c(a=1,b=0.025),data=data,c=0)
## options must be ''McmcOptions' class
options<-McmcOptions(burnin=100,step=2,samples=200)
set.seed(94)
samples<-mcmc(data=data,model=Effmodel,options=options)
##obtain mcmc efficacy samples given the data, 'EffFlexi' model (efficacy model) and
## mcmc simulations options
## data must be of 'DataDual' class
data<-DataDual(x=c(25,50,25,50,75,300,250,150),
y=c(0,0,0,0,0,1,1,0),
w=c(0.31,0.42,0.59,0.45,0.6,0.7,0.6,0.52),
doseGrid=seq(25,300,25))
## model must be of 'EffFlexi' class
Effmodel<- EffFlexi(Eff=c(1.223, 2.513),Effdose=c(25,300),
sigma2=c(a=0.1,b=0.1),sigma2betaW=c(a=20,b=50),smooth="RW2",data=data)
## options must be ''McmcOptions' class
options<-McmcOptions(burnin=100,step=2,samples=200)
set.seed(94)
samples<-mcmc(data=data,model=Effmodel,options=options)
Run the code above in your browser using DataLab