multibridge (version 1.2.0)

mult_tsampling: Samples From Truncated Dirichlet Density

Description

Based on specified inequality constraints, samples from truncated prior or posterior Dirichlet density.

Usage

mult_tsampling(
  inequalities,
  index = 1,
  niter = 10000,
  prior = FALSE,
  nburnin = niter * 0.05,
  seed = NULL
)

Value

matrix of dimension niter * nsamples containing prior or posterior samples from truncated Dirichlet distribution.

Arguments

inequalities

list that contains inequality constraints for each independent inequality constrained hypotheses. The list is created in the generate_restriction_list function

index

numeric. If multiple independent inequality constraints are specified, this index determines for which inequality constraint samples should be drawn. Must be a single value. Default is 1

niter

numeric. A single value specifying the number of samples. Default is set to \(10,000\)

prior

logical. If TRUE ignores the data that are encoded in inequalities and thus samples from the prior distribution. Default is FALSE.

nburnin

numeric. A single value specifying the number of burn-in samples when drawing from the truncated distribution. Minimum number of burn-in samples is 10. Default is 5% of the number of samples. Burn-in samples are removed automatically after the sampling.

seed

numeric. Sets the seed for reproducible pseudo-random number generation

Details

The model assumes that data follow a multinomial distribution and assigns a Dirichlet distribution as prior for the model parameters (i.e., underlying category proportions). That is: $$x ~ Multinomial(N, \theta)$$ $$\theta ~ Dirichlet(\alpha)$$

References

damien2001samplingmultibridge

sarafoglou2020evaluatingPreprintmultibridge

See Also

generate_restriction_list

Examples

Run this code
x <- c(200, 130, 40, 10)
a <- c(1, 1, 1, 1)
factor_levels <- c('mult1', 'mult2', 'mult3', 'mult4')
Hr <- c('mult1 > mult2 > mult3 > mult4')

# generate restriction list
inequalities <- generate_restriction_list(x=x, Hr=Hr, a=a, 
factor_levels=factor_levels)$inequality_constraints

# sample from prior distribution
prior_samples <- mult_tsampling(inequalities, niter = 500, prior=TRUE)
# sample from posterior distribution
post_samples <- mult_tsampling(inequalities, niter = 500)

Run the code above in your browser using DataLab