Bayesian nonparametric estimation based on normalized measures driven mixtures for locations and scales.
MixNRMI2cens(
xleft,
xright,
probs = c(0.025, 0.5, 0.975),
Alpha = 1,
Kappa = 0,
Gama = 0.4,
distr.k = "normal",
distr.py0 = "normal",
distr.pz0 = "gamma",
mu.pz0 = 3,
sigma.pz0 = sqrt(10),
delta_S = 4,
kappa = 2,
delta_U = 2,
Meps = 0.01,
Nx = 150,
Nit = 1500,
Pbi = 0.1,
epsilon = NULL,
printtime = TRUE,
extras = TRUE
)
Numeric vector. Lower limit of interval censoring. For exact data the same as xright
Numeric vector. Upper limit of interval censoring. For exact data the same as xleft.
Numeric vector. Desired quantiles of the density estimates.
Numeric constant. Total mass of the centering measure. See details.
Numeric positive constant. See details.
Numeric constant. \(0 \leq Gama \leq 1\). See details.
The distribution name for the kernel. Allowed names are "normal", "gamma", "beta", "double exponential", "lognormal" or their common abbreviations "norm", "exp", or an integer number identifying the mixture kernel: 1 = Normal; 2 = Gamma; 3 = Beta; 4 = Double Exponential; 5 = Lognormal.
The distribution name for the centering measure for locations. Allowed names are "normal", "gamma", "beta", or their common abbreviations "norm", "exp", or an integer number identifying the centering measure for locations: 1 = Normal; 2 = Gamma; 3 = Beta.
The distribution name for the centering measure for scales. Allowed names are "gamma", "lognormal", "half-Cauchy", "half-normal", "half-student", "uniform" and "truncated normal", or their common abbreviations "norm", "exp", "lnorm", "halfcauchy", "halfnorm", "halft" and "unif", or an integer number identifying the centering measure for scales: 2 = Gamma, 5 = Lognormal, 6 = Half Cauchy, 7 = Half Normal, 8 = Half Student-t, 9 = Uniform, 10 = Truncated Normal.
Numeric constant. Prior mean of the centering measure for scales.
Numeric constant. Prior standard deviation of the centering measure for scales.
Numeric positive constant. Metropolis-Hastings proposal variation coefficient for sampling the scales.
Numeric positive constant. Metropolis-Hastings proposal variation coefficient for sampling the location parameters.
Numeric positive constant. Metropolis-Hastings proposal variation coefficient for sampling the latent U.
Numeric constant. Relative error of the jump sizes in the continuous component of the process. Smaller values imply larger number of jumps.
Integer constant. Number of grid points for the evaluation of the density estimate.
Integer constant. Number of MCMC iterations.
Numeric constant. Burn-in period proportion of Nit
.
Numeric constant. Extension to the evaluation grid range. See details.
Logical. If TRUE, prints out the execution time.
Logical. If TRUE, gives additional objects: means, sigmas, weights and Js.
The function returns a list with the following components:
Numeric vector. Evaluation grid.
Numeric array. Matrix
of dimension \(\texttt{Nx} \times (\texttt{length(probs)} + 1)\) with the posterior mean and the desired quantiles input
in probs
.
Numeric vector of length(x)
with
conditional predictive ordinates.
Numeric vector of
length(Nit*(1-Pbi))
with the number of mixtures components
(clusters).
Numeric vector of length(Nit*(1-Pbi))
with the
values of the latent variable U.
List of
length(Nit*(1-Pbi))
with the clustering allocations.
List of length(Nit*(1-Pbi))
with the cluster means
(locations). Only if extras = TRUE.
Numeric vector of
length(Nit*(1-Pbi))
with the cluster standard deviations. Only if
extras = TRUE.
List of length(Nit*(1-Pbi))
with the
mixture weights. Only if extras = TRUE.
List of
length(Nit*(1-Pbi))
with the unnormalized weights (jump sizes). Only
if extras = TRUE.
Integer constant. Number of jumps of the continuous component of the unnormalized process.
Integer constant. Number of grid points for the evaluation of the density estimate.
Integer constant. Number of MCMC iterations.
Numeric
constant. Burn-in period proportion of Nit
.
Numeric
vector with execution time provided by proc.time
function.
Integer corresponding to the kernel chosen for the mixture
Data used for the fit
A named list with the parameters of the NRMI process
The function is computing intensive. Be patient.
This generic function fits a normalized random measure (NRMI) mixture model for density estimation (James et al. 2009). Specifically, the model assumes a normalized generalized gamma (NGG) prior for both, locations (means) and standard deviations, of the mixture kernel, leading to a fully nonparametric mixture model.
The details of the model are: $$X_i|Y_i,Z_i \sim
k(\cdot|Y_i,Z_i)$$ $$(Y_i,Z_i)|P \sim P,
i=1,\dots,n$$ $$P \sim
\textrm{NGG}(\texttt{Alpha, Kappa, Gama; P\_0})$$ where, \(X_i\)'s are the observed data, \((Y_i,Z_i)\)'s are
bivariate latent (location and scale) vectors, k
is a parametric
kernel parameterized in terms of mean and standard deviation, (Alpha,
Kappa, Gama; P_0)
are the parameters of the NGG prior with a bivariate
P_0
being the centering measure with independent components, that is,
\(P_0(Y,Z) = P_0(Y)*P_0(Z)\). The parameters of P_0(Y)
are assigned
vague hyper prior distributions and (mu.pz0,sigma.pz0)
are the
hyper-parameters of P_0(Z)
. In particular, NGG(Alpha, 1, 0;
P_0)
defines a Dirichlet process; NGG(1, Kappa, 1/2;P_0)
defines a
Normalized inverse Gaussian process; and NGG(1, 0, Gama; P_0)
defines
a normalized stable process. The evaluation grid ranges from min(x) -
epsilon
to max(x) + epsilon
. By default epsilon=sd(x)/4
.
1.- Barrios, E., Lijoi, A., Nieto-Barajas, L. E. and Pr<U+00FC>enster, I. (2013). Modeling with Normalized Random Measure Mixture Models. Statistical Science. Vol. 28, No. 3, 313-334.
2.- James, L.F., Lijoi, A. and Pr<U+00FC>enster, I. (2009). Posterior analysis for normalized random measure with independent increments. Scand. J. Statist 36, 76-97.
3.- Kon Kam King, G., Arbel, J. and Pr<U+00FC>enster, I. (2016). Species Sensitivity Distribution revisited: a Bayesian nonparametric approach. In preparation.
# NOT RUN {
# }
# NOT RUN {
### Example 1
# Data
data(acidity)
x <- acidity
# Fitting the model under default specifications
out <- MixNRMI2cens(x, x)
# Plotting density estimate + 95% credible interval
plot(out)
# }
# NOT RUN {
# }
# NOT RUN {
### Example 2
# Data
data(salinity)
# Fitting the model under special specifications
out <- MixNRMI2cens(
xleft = salinity$left, xright = salinity$right, Nit = 5000, distr.pz0 = 10,
mu.pz0 = 1, sigma.pz0 = 2
)
# Plotting density estimate + 95% credible interval
attach(out)
plot(out)
# Plotting number of clusters
par(mfrow = c(2, 1))
plot(R, type = "l", main = "Trace of R")
hist(R, breaks = min(R - 0.5):max(R + 0.5), probability = TRUE)
detach()
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab