two.grp.random.a0 {BayesPPD} | R Documentation |
Model fitting for two groups (treatment and control group, no covariates) with random a0
Description
Model fitting using normalized power priors for two groups (treatment and control group, no covariates) with random
Usage
two.grp.random.a0(
data.type,
y.c,
n.c,
v.c,
historical,
prior.mu.c.shape1 = 1,
prior.mu.c.shape2 = 1,
prior.a0.shape1 = rep(1, 10),
prior.a0.shape2 = rep(1, 10),
lower.limits = rep(0, 10),
upper.limits = rep(1, 10),
slice.widths = rep(0.1, 10),
nMC = 10000,
nBI = 250
)
Arguments
data.type |
Character string specifying the type of response. The options are "Normal", "Bernoulli", "Poisson" and "Exponential". |
y.c |
Sum of responses for the control group. |
n.c |
Sample size of the control group. |
v.c |
(For normal data only) sample variance of responses for the control group. |
historical |
Matrix of historical dataset(s). If
For all other data types,
Each row represents a historical dataset. |
prior.mu.c.shape1 |
First hyperparameter of the initial prior for |
prior.mu.c.shape2 |
Second hyperparameter of the initial prior for |
prior.a0.shape1 |
Vector of the first shape parameters of the independent beta priors for |
prior.a0.shape2 |
Vector of the second shape parameters of the independent beta priors for |
lower.limits |
Vector of lower limits for parameters to be used by the slice sampler. The length of the vector should be equal to the number of historical datasets. The default is 0 for all parameters (may not be appropriate for all situations). |
upper.limits |
Vector of upper limits for parameters to be used by the slice sampler. The length of the vector should be equal to the number of historical datasets. The default is 1 for all parameters (may not be appropriate for all situations). |
slice.widths |
Vector of initial slice widths used by the slice sampler. The length of the vector should be equal to the number of historical datasets. The default is 0.1 for all parameter (may not be appropriate for all situations). |
nMC |
Number of iterations (excluding burn-in samples) for the slice sampler or Gibbs sampler. The default is 10,000. |
nBI |
Number of burn-in samples for the slice sampler or Gibbs sampler. The default is 250. |
Details
If data.type
is "Bernoulli", "Poisson" or "Exponential", a single response from the treatment group is assumed to follow Bern(), Pois(
) or Exp(rate=
), respectively,
where
is the mean of responses for the treatment group. If
data.type
is "Normal", a single response from the treatment group is assumed to follow
where
is the precision parameter.
The distributional assumptions for the control group data are analogous.
If data.type
is "Bernoulli", the initial prior for is beta(
prior.mu.t.shape1
, prior.mu.t.shape2
).
If data.type
is "Poisson", the initial prior for is Gamma(
prior.mu.t.shape1
, rate=prior.mu.t.shape2
).
If data.type
is "Exponential", the initial prior for is Gamma(
prior.mu.t.shape1
, rate=prior.mu.t.shape2
).
The initial priors used for the control group data are analogous.
If data.type
is "Normal", historical datasets are assumed to have the same precision parameter as the current dataset for computational simplicity.
The initial prior for
is the Jeffery's prior,
. The initial prior for the
is the uniform improper prior.
Posterior samples of
and
are obtained through Gibbs sampling.
Independent beta(prior.a0.shape1
,prior.a0.shape1
) priors are used for . Posterior samples of
are obtained through slice sampling. The default lower limits for the parameters are 0. The default upper limits
for the parameters are 1. The default slice widths for the parameters are 0.1.
The defaults may not be appropriate for all situations, and the user can specify the appropriate limits
and slice width for each parameter.
Value
The function returns a S3 object with a summary
method. If data.type
is "Normal", posterior samples of ,
and
are returned.
For all other data types, posterior samples of
and
are returned. If there are
historical datasets,
then
.
References
Neal, Radford M. Slice sampling. Ann. Statist. 31 (2003), no. 3, 705–767.
See Also
Examples
data.type <- "Bernoulli"
y.c <- 70
n.c <- 100
# Simulate three historical datasets
historical <- matrix(0, ncol=2, nrow=3)
historical[1,] <- c(70, 100)
historical[2,] <- c(60, 100)
historical[3,] <- c(50, 100)
# Set parameters of the slice sampler
lower.limits <- rep(0, 3) # The dimension is the number of historical datasets
upper.limits <- rep(1, 3)
slice.widths <- rep(0.1, 3)
set.seed(1)
result <- two.grp.random.a0(data.type=data.type, y.c=y.c, n.c=n.c, historical=historical,
lower.limits=lower.limits, upper.limits=upper.limits,
slice.widths=slice.widths, nMC=10000, nBI=250)
summary(result)