beta-utils: Utilities for parameter vector beta of the input distribution

beta-utilsR Documentation

Utilities for parameter vector beta of the input distribution

Description

The parameter \boldsymbol \beta specifies the input distribution X \sim F_X(x \mid \boldsymbol \beta).

beta2tau converts \boldsymbol \beta to the transformation vector \tau = (\mu_x, \sigma_x, \gamma = 0, \alpha = 1, \delta = 0), which defines the Lambert W\times F random variable mapping from X to Y (see tau-utils). Parameters \mu_x and \sigma_x of X in general depend on \boldsymbol \beta (and may not even exist for use.mean.variance = TRUE; in this case beta2tau will throw an error).

check_beta checks if \boldsymbol \beta defines a valid distribution, e.g., for normal distribution 'sigma' must be positive.

estimate_beta estimates \boldsymbol \beta for a given F_X using MLE or methods of moments. Closed form solutions are used if they exist; otherwise the MLE is obtained numerically using fitdistr.

get_beta_names returns (typical) names for each component of \boldsymbol \beta.

Depending on the distribution \boldsymbol \beta has different length and names: e.g., for a "normal" distribution beta is of length 2 ("mu", "sigma"); for an "exp"onential distribution beta is a scalar (rate "lambda").

Usage

beta2tau(beta, distname, use.mean.variance = TRUE)

check_beta(beta, distname)

estimate_beta(x, distname)

get_beta_names(distname)

Arguments

beta

numeric; vector \boldsymbol \beta of the input distribution; specifications as they are for the R implementation of this distribution. For example, if distname = "exp", then beta = 2 means that the rate of the exponential distribution equals 2; if distname = "normal" then beta = c(1,2) means that the mean and standard deviation are 1 and 2, respectively.

distname

character; name of input distribution; see get_distnames.

use.mean.variance

logical; if TRUE it uses mean and variance implied by \boldsymbol \beta to do the transformation (Goerg 2011). If FALSE, it uses the alternative definition from Goerg (2016) with location and scale parameter.

x

a numeric vector of real values (the input data).

Details

estimate_beta does not do any data transformation as part of the Lambert W\times F input/output framework. For an initial estimate of \theta for Lambert W\times F distributions see get_initial_theta and get_initial_tau.

A quick initial estimate of \theta is obtained by first finding the (approximate) input \widehat{\boldsymbol x}_{\widehat{\theta}} by IGMM, and then getting the MLE of \boldsymbol \beta for this input data \widehat{\boldsymbol x}_{\widehat{\theta}} \sim F_X(x \mid \boldsymbol \beta) (usually using fitdistr).

Value

beta2tau returns a numeric vector, which is \tau = \tau(\boldsymbol \beta) implied by beta and distname.

check_beta throws an error if \boldsymbol \beta is not appropriate for the given distribution; e.g., if it has too many values or if they are not within proper bounds (e.g., beta['sigma'] of a "normal" distribution must be positive).

estimate_beta returns a named vector with estimates for \boldsymbol \beta given x.

get_beta_names returns a vector of characters.

See Also

tau-utils, theta-utils

Examples

# By default: delta = gamma = 0 and alpha = 1
beta2tau(c(1, 1), distname = "normal") 
## Not run: 
  beta2tau(c(1, 4, 1), distname = "t")

## End(Not run)
beta2tau(c(1, 4, 1), distname = "t", use.mean.variance = FALSE)
beta2tau(c(1, 4, 3), distname = "t") # no problem


## Not run: 
check_beta(beta = c(1, 1, -1), distname = "normal")

## End(Not run)


set.seed(124)
xx <- rnorm(100)^2
estimate_beta(xx, "exp")
estimate_beta(xx, "chisq")


LambertW documentation built on May 29, 2024, 4:30 a.m.