| GeneralizedInverseGaussian {boodist} | R Documentation |
Generalized inverse Gaussian distribution
Description
A R6 class to represent a generalized inverse Gaussian distribution.
Details
See Wikipedia.
Active bindings
thetaGet or set the value of
theta.etaGet or set the value of
eta.lambdaGet or set the value of
lambda.
Methods
Public methods
Method new()
New generalized inverse Gaussian distribution.
Usage
GeneralizedInverseGaussian$new(theta, eta, lambda)
Arguments
thetaconcentration parameter,
>0etascale parameter,
>0lambdaparameter (denoted by
pon Wikipedia)
Returns
A GeneralizedInverseGaussian object.
Method d()
Density function of the generalized inverse Gaussian distribution.
Usage
GeneralizedInverseGaussian$d(x, log = FALSE)
Arguments
xvector of positive numbers
logBoolean, whether to return the log-density
Returns
The density or the log-density evaluated at x.
Method p()
Cumulative distribution function of the generalized inverse Gaussian distribution.
Usage
GeneralizedInverseGaussian$p(q)
Arguments
qnumeric vector of quantiles (
>= 0)
Returns
The cumulative probabilities corresponding to q, with two
attributes (see the Note).
Method q()
Quantile function of the generalized inverse Gaussian distribution.
Usage
GeneralizedInverseGaussian$q(p, bounds = NULL)
Arguments
pnumeric vector of probabilities
boundsbounds enclosing the quantiles to be found (see the Note), or
NULLfor automatic bounds
Returns
The quantiles corresponding to p.
Method r()
Sampling from the generalized inverse Gaussian distribution.
Usage
GeneralizedInverseGaussian$r(n)
Arguments
nnumber of simulations
Returns
A numeric vector of length n.
Method mean()
Mean of the generalized inverse Gaussian distribution.
Usage
GeneralizedInverseGaussian$mean()
Returns
The mean of the generalized inverse Gaussian distribution.
Method mode()
Mode of the generalized inverse Gaussian distribution.
Usage
GeneralizedInverseGaussian$mode()
Returns
The mode of the generalized inverse Gaussian distribution.
Method sd()
Standard deviation of the generalized inverse Gaussian distribution.
Usage
GeneralizedInverseGaussian$sd()
Returns
The standard deviation of the generalized inverse Gaussian distribution.
Method variance()
Variance of the generalized inverse Gaussian distribution.
Usage
GeneralizedInverseGaussian$variance()
Returns
The variance of the generalized inverse Gaussian distribution.
Method clone()
The objects of this class are cloneable with this method.
Usage
GeneralizedInverseGaussian$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
Note
The cumulative distribution function is evaluated by integrating the
density function (in C++). Its returned value has two attributes: a
numeric vector "error_estimate" and an integer vector
"error_code". The error code is 0 if no problem is detected. If an
error code is not 0, a warning is thrown. The quantile function is
evaluated by root-finding and then the user must provide some bounds
enclosing the values of the quantiles or choose the automatic bounds.
A maximum number of iterations is fixed in the root-finding algorithm.
If it is reached, a warning is thrown.
Examples
if(require("plotly")) {
library(boodist)
x_ <- seq(0, 3, length.out = 100L)
lambda_ <- seq(-1, 1, length.out = 100L)
dsty <- vapply(lambda_, function(lambda) {
GeneralizedInverseGaussian$new(theta = 1, eta = 1, lambda)$d(x_)
}, numeric(length(x_)))
#
txt <- matrix(NA_character_, nrow = length(x_), ncol = length(lambda_))
for(i in 1L:nrow(txt)) {
for(j in 1L:ncol(txt)) {
txt[i, j] <- paste0(
"x: ", formatC(x_[i]),
"<br> lambda: ", formatC(lambda_[j]),
"<br> density: ", formatC(dsty[i, j])
)
}
}
#
plot_ly(
x = ~lambda_, y = ~x_, z = ~dsty, type = "surface",
text = txt, hoverinfo = "text", showscale = FALSE
) %>% layout(
title = "Generalized inverse Gaussian distribution",
margin = list(t = 40, r= 5, b = 5, l = 5),
scene = list(
xaxis = list(
title = "lambda"
),
yaxis = list(
title = "x"
),
zaxis = list(
title = "density"
)
)
)
}