R: Utilities for parameter vector beta of the input distribution

beta-utils {LambertW} | R Documentation

## Utilities for parameter vector beta of the input distribution

### Description

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

`beta2tau` converts \boldsymbol β to the transformation vector τ = (μ_x, σ_x, γ = 0, α = 1, δ = 0), which defines the Lambert W\times F random variable mapping from X to Y (see `tau-utils`). Parameters μ_x and σ_x of X in general depend on \boldsymbol β (and may not even exist for `use.mean.variance = TRUE`; in this case `beta2tau` will throw an error).

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

`estimate_beta` estimates \boldsymbol β 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 β.

Depending on the distribution \boldsymbol β 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 β 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 β 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 θ for Lambert W\times F distributions see `get_initial_theta` and `get_initial_tau`.

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

### Value

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

`check_beta` throws an error if \boldsymbol β 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 β 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")

[Package LambertW version 0.6.7 Index]