Description Usage Arguments Details Value References See Also Examples
Model fitting using normalized power priors for generalized linear models with random a_0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  glm.random.a0(
data.type,
data.link,
y,
n = 1,
x,
historical,
prior.a0.shape1 = 1,
prior.a0.shape2 = 1,
a0.coefficients,
lower.limits = rep(100, 50),
upper.limits = rep(100, 50),
slice.widths = rep(0.1, 50),
nMC = 10000,
nBI = 250
)

data.type 
Character string specifying the type of response. The options are "Normal", "Bernoulli", "Binomial", "Poisson" and "Exponential". 
data.link 
Character string specifying the link function. The options are "Logistic", "Probit", "Log", "IdentityPositive", "IdentityProbability" and "Complementary LogLog". Does not apply if 
y 
Vector of responses. 
n 
(For binomial data only) vector of integers specifying the number of subjects who have a particular value of the covariate vector. If the data is binary and all covariates are discrete, collapsing Bernoulli data into a binomial structure can make the slice sampler much faster. 
x 
Matrix of covariates. The first column should be the treatment indicator with 1 indicating treatment group. The number of rows should equal the length of the response vector 
historical 
List of historical dataset(s). East historical dataset is stored in a list which contains two named elements:
For binomial data, an additional element

prior.a0.shape1 
First shape parameter of the beta prior for a_0. The default is 1. 
prior.a0.shape2 
Second shape parameter of the beta prior for a_0. The default is 1. 
a0.coefficients 
Vector of coefficients for a_0 returned by the function 
lower.limits 
Vector of lower limits for parameters to be used by the slice sampler. If 
upper.limits 
Vector of upper limits for parameters to be used by the slice sampler. If 
slice.widths 
Vector of initial slice widths used by the slice sampler. If 
nMC 
Number of iterations (excluding burnin samples) for the slice sampler or Gibbs sampler. The default is 10,000. 
nBI 
Number of burnin samples for the slice sampler or Gibbs sampler. The default is 250. 
The user should use the function normalizing.constant
to obtain a0.coefficients
(does not apply if data.type
is "Normal").
If data.type
is "Normal", the response y_i is assumed to follow N(x_i'β, τ^{1}) where x_i is the vector of covariates for subject i.
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, τ^{1}.
The initial prior for β is the uniform improper prior. Posterior samples for β and τ are obtained through Gibbs sampling.
Posterior samples for a_0 are obtained through slice sampling.
For all other data types, posterior samples are obtained through slice sampling. The initial prior for β is the uniform improper prior. The default lower limits for the parameters are 100. The default upper limits for the parameters are 100. 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.
If data.type
is "Normal", posterior samples of β, τ and a_0 are returned.
For all other data types, posterior samples of β and a_0 are returned.
Neal, Radford M. Slice sampling. Ann. Statist. 31 (2003), no. 3, 705–767.
normalizing.constant
and power.glm.random.a0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37  data.type < "Bernoulli"
data.link < "Logistic"
# Simulate current data
set.seed(1)
p < 3
n_total < 100
y < rbinom(n_total,size=1,prob=0.6)
# The first column of x is the treatment indicator.
x < cbind(rbinom(n_total,size=1,prob=0.5),
matrix(rnorm(p*n_total),ncol=p,nrow=n_total))
# Simulate two historical datasets
# Note that x0 does not have the treatment indicator
historical < list(list(y0=rbinom(n_total,size=1,prob=0.2),
x0=matrix(rnorm(p*n_total),ncol=p,nrow=n_total)),
list(y0=rbinom(n_total, size=1, prob=0.5),
x0=matrix(rnorm(p*n_total),ncol=p,nrow=n_total)))
# Please see function "normalizing.constant" for how to obtain a0.coefficients
# Here, suppose onedegree polynomial regression is chosen by the "normalizing.constant"
# function. The coefficients are obtained for the intercept, a0_1 and a0_2.
a0.coefficients < c(1, 0.5, 1)
# Set parameters of the slice sampler
# The dimension is the number of columns of x plus 1 (intercept)
# plus the number of historical datasets
lower.limits < rep(100, 7)
upper.limits < rep(100, 7)
slice.widths < rep(0.1, 7)
nMC < 500 # nMC should be larger in practice
nBI < 100
result < glm.random.a0(data.type=data.type, data.link=data.link, y=y, x=x,
historical=historical, a0.coefficients=a0.coefficients,
lower.limits=lower.limits, upper.limits=upper.limits,
slice.widths=slice.widths, nMC=nMC, nBI=nBI)

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.