XBetaX | R Documentation |
Class and methods for extended-support beta distributions using the workflow from the distributions3 package.
XBetaX(mu, phi, nu = 0)
mu |
numeric. The mean of the underlying beta distribution on [-nu, 1 + nu]. |
phi |
numeric. The precision parameter of the underlying beta distribution on [-nu, 1 + nu]. |
nu |
numeric. Mean of the exponentially-distributed exceedence parameter for the underlying beta distribution on [-nu, 1 + nu] that is censored to [0, 1]. |
The extended-support beta mixture distribution is a continuous mixture of
extended-support beta distributions on [0, 1] where the underlying exceedence
parameter is exponentially distributed with mean nu
. Thus, if nu > 0
,
the resulting distribution has point masses on the boundaries 0 and 1 with larger
values of nu
leading to higher boundary probabilities. For nu = 0
(the default), the distribution reduces to the classic beta distribution (in
regression parameterization) without boundary observations.
A XBetaX
distribution object.
dxbetax
, XBeta
## package and random seed
library("distributions3")
set.seed(6020)
## three beta distributions
X <- XBetaX(
mu = c(0.25, 0.50, 0.75),
phi = c(1, 1, 2),
nu = c(0, 0.1, 0.2)
)
X
## compute moments of the distribution
mean(X)
variance(X)
## support interval (minimum and maximum)
support(X)
## it is only continuous when there are no point masses on the boundary
is_continuous(X)
cdf(X, 0)
cdf(X, 1, lower.tail = FALSE)
## simulate random variables
random(X, 5)
## histograms of 1,000 simulated observations
x <- random(X, 1000)
hist(x[1, ])
hist(x[2, ])
hist(x[3, ])
## probability density function (PDF) and log-density (or log-likelihood)
x <- c(0.25, 0.5, 0.75)
pdf(X, x)
pdf(X, x, log = TRUE)
log_pdf(X, x)
## cumulative distribution function (CDF)
cdf(X, x)
## quantiles
quantile(X, 0.5)
## cdf() and quantile() are inverses (except at censoring points)
cdf(X, quantile(X, 0.5))
quantile(X, cdf(X, 1))
## all methods above can either be applied elementwise or for
## all combinations of X and x, if length(X) = length(x),
## also the result can be assured to be a matrix via drop = FALSE
p <- c(0.05, 0.5, 0.95)
quantile(X, p, elementwise = FALSE)
quantile(X, p, elementwise = TRUE)
quantile(X, p, elementwise = TRUE, drop = FALSE)
## compare theoretical and empirical mean from 1,000 simulated observations
cbind(
"theoretical" = mean(X),
"empirical" = rowMeans(random(X, 1000))
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.