npmp: DP mixtures of Poissons

View source: R/npmp.R

npmpR Documentation

DP mixtures of Poissons

Description

Performs probability mass function estimation under nonparametric mixture of Poisson kernels.

Usage

npmp(y, k, nrep, nb, alpha=1, theta=alpha, sigma=0, 
mixing_hyperprior= FALSE, basemeasure_hyperprior = FALSE, mixing_type="DP", 
algo="slice",  prior="gamma", a, b, a_a=1, b_a=1, lb=NULL, ub=NULL, 
print = 1, ndisplay = nrep/4, plot.it = FALSE, pdfwrite = FALSE, ... )

dpmpoiss(y, k, nrep, nb, alpha = 1, a, b, lb = NULL, ub = NULL, print = 1,
ndisplay = nrep/4, plot.it = FALSE, pdfwrite = FALSE, ...)

Arguments

y

Vector of count data

k

Truncation level for the number of cluster in the mixture. Default is length(ydis).

nrep

Number of MCMC iterations

nb

Number of burn-in iteration in the MCMC to discard

alpha

Value of the precision parameter of the Dirichlet process prior

theta

Value of the strength parameter of the Two-parameters-Poisson-Dirichlet process prior

sigma

Value of the discount parameter of the Two-parameters-Poisson-Dirichlet process prior

mixing_hyperprior

Logical. If TRUE alpha is random with gamma hyperprior

basemeasure_hyperprior

Logical. If TRUE also the parameters of the base measure are random, see details below.

mixing_type

Type of mixing distribution. Default is "DP" for Dirichlet process but also "2PD" for Two-parameters-Poisson-Dirichlet process is allowed.

algo

Type of algorithm. Current choices are: slice sampler (algo="slice") or polya-urn-type sampler (algo="polya-urn").

prior

String for the base measure prior. Default is "gamma" for lambda ~ Gamma(a,b). The other choice is "normal" for exp(lambda) ~ N(a,b)

a

Shape (mean) hyperparameter for the gamma (normal) base measure

b

Scale (sd) hyperparameter for the gamma (normal) prior

a_a

Shape hyperparameter for alpha

b_a

Scale hyperparameter for alpha

lb

Scalar integer. Lower bound for the argument of the pmf. Default is max(0,min(ydis)-10).

ub

Scalar integer. Upper bound for the argument of the pmf. Default is max(ydis)+10.

print

Vector of integers (from 1 to 5) indicating whether to print each step of the Gibbs sampler. Specifically, 1 for current iteration, 2 for the DP cluster allocation, 3 for the posterior parameters of the mixture components, 4 for the precision of the DP, 5 for the posterior pmf.

ndisplay

Scalar integer. It gives the number of iterations to be displayed on screen (the function reports on the screen when every ndisplay iterations have been carried out)

plot.it

Logical, default FALSE. If TRUE a plot with empirical and estimated posterior probability mass functions is plotted.

pdfwrite

Logical, default FALSE. If TRUE a pdf file is written in the current working directory. Traceplots and other posterior quantities are drown.

...

Additional arguments (for future implemetantions).

Details

The function npmp performs probability mass function estimation under nonparametric mixture of Poisson kernels, i.e.

y_i \mid \lambda_i \sim \mbox{Poi}(\lambda_i), i=1, \dots, n

\lambda_i \mid G \sim G

G \sim \Pi(P_0),

where \Pi is a nonparametric prior (Dirichlet process or Two-parameters-Poisson-Dirichlet process) with base measure P_0. The function dppoiss is a wrapper to npmp with mixing_type="DP" for back portability with version 1.0 of the package. The main part of the code is written in C language to gain computational speed. Plots and posterior summaries are in plain R code. From version 2.0 on, the blocked Gibbs sampler has been removed in place of slice samper (Kalli et al., 2011) and polya-urn sampler. Two different base measures P_0 are implemented: prior="gamma" and prior="normal" for

\lambda_h \sim \mbox{Gamma}(a,b), \log(\lambda_h) \sim N(a,b), h=1,\dots

respectively.

Value

name

Name of the model

mixing_type

Name of the mixing prior

mcmc

Quantities about MCMC sampling

mcmc.chains

MCMC chains of the parameters

pmf

A list containing several quantities related to the probability mass function (emprical pmf, posterior mean pmf and pointwise 95% credible intervals) computed for the values from lb to ub

parameters

A list containing the posterior mean of the cluster specific parameters (be careful of label-switching problems)

clustering

A list containing posterior quantities related to the clustering structure of the data

Author(s)

R code and porting by A. Canale, C code by A. Canale with minor contributions by N. Lunardon.

References

Canale, A. and Dunson, D. B. (2011), "Bayesian Kernel Mixtures for Counts", Journal of American Statistical Association, 106, 1528-1539.

Kalli, M., Griffin, J., and Walker, S. (2011), "Slice sampling mixture models," Statistics and Computing, 21, 93-105.

See Also

rmg

Examples


data(ethylene)
y <- tapply(ethylene$impl,FUN=mean,INDEX=ethylene$id)
z <- tapply(ethylene$dose,FUN=mean,INDEX=ethylene$id)

# Estimate the pmf of the number of implants in the control group
y0  <- y[z==0]
pmf.control = dpmpoiss(y0, k=20, nrep=11000, nb=1000, alpha=1, a=1, b=1,
lb=5, ub=24, plot.it=TRUE)


rmp documentation built on Aug. 25, 2023, 9:06 a.m.

Related to npmp in rmp...