Learn R Programming

distributions3 (version 0.3.0)

pdf.SinhArcsinh: Evaluate the probability mass function of a Sinh-Arcsinh distribution

Description

Please see the documentation of SinhArcsinh() for some properties of the Sinh-Arcsinh distribution, as well as extensive examples showing to how calculate p-values and confidence intervals.

Usage

# S3 method for SinhArcsinh
pdf(d, x, drop = TRUE, elementwise = NULL, cores = NULL, ...)

# S3 method for SinhArcsinh log_pdf(d, x, drop = TRUE, elementwise = NULL, cores = NULL, ...)

Value

In case of a single distribution object, either a numeric vector of length probs (if drop = TRUE, default) or a matrix with length(x) columns (if drop = FALSE). In case of a vectorized distribution object, a matrix with length(x) columns containing all possible combinations.

Arguments

d

A SinhArcsinh object created by a call to SinhArcsinh().

x

A vector of elements whose probabilities you would like to determine given the distribution d.

drop

logical. Should the result be simplified to a vector if possible?

elementwise

logical. Should each distribution in d be evaluated at all elements of x (elementwise = FALSE, yielding a matrix)? Or, if d and x have the same length, should the evaluation be done element by element (elementwise = TRUE, yielding a vector)? The default of NULL means that elementwise = TRUE is used if the lengths match and otherwise elementwise = FALSE is used.

cores

NULL or positive integer. TODO(R): Just a development option. If not NULL we use the C code with cores threads.

...

Arguments to be passed to dnorm. Unevaluated arguments will generate a warning to catch mispellings or other possible errors.

See Also

Other SinhArcsinh distribution: cdf.SinhArcsinh(), quantile.SinhArcsinh()

Examples

Run this code

## SinhArcsinh() by default uses nu = 1, tau = 1 which
## results in the standard normal distribution
set.seed(6020)
X <- SinhArcsinh() # Uses mu = 1, sigma = 0, nu = 1, tau = 1)
x <- random(X, 300)
qqnorm(x); qqline(x, col = 2, lwd = 2)
curve(pdf(X, x), xlim = c(-5, 5), main = paste(X, "density"))

## Calculation of central moments is based on numeric integration,
## thus not being identical to the standard normal distribution
c(mean = mean(x), sd = sd(x))

## Skewed Sinh-Arcsinh distribution
X <- SinhArcsinh(mu = 7, sigma = 2, nu = c(0.7, 1, 0.7), tau = c(1, 0.7, 0.7))
as.matrix(X)

## Visualization of density functions using different parameters for nu/tau
curve(pdf(X[1], x), xlim = c(0, 20), ylim = c(0, 0.2), main = "Density function")
curve(pdf(X[2], x), xlim = c(0, 20), col = 2, add = TRUE)
curve(pdf(X[3], x), xlim = c(0, 20), col = 4, add = TRUE)

## Visualization of distribution function using different parameters for nu/tau
curve(cdf(X[1], x), xlim = c(0, 20), ylim = 0:1, main = "Distribution function")
curve(cdf(X[2], x), xlim = c(0, 20), col = 2, add = TRUE)
curve(cdf(X[3], x), xlim = c(0, 20), col = 4, add = TRUE)

## Central moments
mean(X)
variance(X)
skewness(X)
kurtosis(X)

## Drawing random values
random(X, 10)

pdf(X, 2)
log_pdf(X, 2)

cdf(X, 4)
quantile(X, 0.7)

# note that the cdf() and quantile() functions are inverses
X <- SinhArcsinh(mu = 3, sigma = 2, nu = 0.9, tau = 1.2)
cdf(X, quantile(X, 0.7))
quantile(X, cdf(X, 7))

Run the code above in your browser using DataLab