cf_Beta: Characteristic function of a linear combination of...

View source: R/cf_Beta.R

cf_BetaR Documentation

Characteristic function of a linear combination of independent BETA random variables

Description

cf_Beta(t, alpha, beta, coef, niid) evaluates the characteristic function of a linear combination (resp. convolution) of independent BETA random variables defined on the interval (0,1).

That is, cf_Beta evaluates the characteristic function cf(t) of Y = sum_{i=1}^N coef_i * X_i, where X_i ~ Beta(\alpha_i,\beta_i) are independent RVs, with the shape parameters \alpha_i > 0 and \beta_i >0, and with the mean = \alpha_i / (\alpha_i + \beta)_i and the variance = (\alpha_i*\beta_i) / ((\alpha_i+\beta_i)^2*(\alpha_i+\beta_i+1)), for i = 1,...,N.

The characteristic function of X ~ Beta(\alpha,\beta) is

cf(t) = cf_Beta(t,\alpha,\beta) = 1F1(\alpha; \alpha + \beta; i*t),

where 1F1(.;.;.) is the Confluent hypergeometric function. Hence, the characteristic function of Y = coef(1)*X_1 + ... + coef(N)*X_N is cf(t) = cf_X_1(coef(1)*t) * ... * cf_X_N(coef(N)*t), where X_i ~ Beta(\alpha(i),\beta(i)) with cf_X_i(t).

Usage

cf_Beta(t, alpha, beta, coef, niid)

Arguments

t

vector or array of real values, where the CF is evaluated.

alpha

vector of the 'shape' parameters alpha > 0. If empty, default value is alpha = 1.

beta

vector of the 'shape' parameters beta > 0. If empty, default value is beta = 1.

coef

vector of the coefficients of the linear combination of the Beta distributed random variables. If coef is scalar, it is assumed that all coefficients are equal. If empty, default value is coef = 1.

niid

scalar convolution coeficient niid, such that Z = Y + ... + Y is sum of niid iid random variables Y, where each Y = sum_{i=1}^N coef(i) * log(X_i) is independently and identically distributed random variable. If empty, default value is niid = 1.

Value

Characteristic function cf(t) of a linear combination of independent BETA random variables.

Note

Ver.: 16-Sep-2018 18:03:12 (consistent with Matlab CharFunTool v1.3.0, 14-May-2017 12:08:24).

See Also

For more details see WIKIPEDIA: https://en.wikipedia.org/wiki/Beta_distribution.

Other Continuous Probability Distribution: cfS_Arcsine(), cfS_Beta(), cfS_Gaussian(), cfS_Laplace(), cfS_Rectangular(), cfS_Student(), cfS_TSP(), cfS_Trapezoidal(), cfS_Triangular(), cfS_Wigner(), cfX_ChiSquare(), cfX_Exponential(), cfX_FisherSnedecor(), cfX_Gamma(), cfX_InverseGamma(), cfX_LogNormal(), cf_ArcsineSymmetric(), cf_BetaNC(), cf_BetaSymmetric(), cf_ChiSquare(), cf_Exponential(), cf_FisherSnedecorNC(), cf_FisherSnedecor(), cf_Gamma(), cf_InverseGamma(), cf_Laplace(), cf_LogRV_BetaNC(), cf_LogRV_Beta(), cf_LogRV_ChiSquareNC(), cf_LogRV_ChiSquare(), cf_LogRV_FisherSnedecorNC(), cf_LogRV_FisherSnedecor(), cf_LogRV_MeansRatioW(), cf_LogRV_MeansRatio(), cf_LogRV_WilksLambdaNC(), cf_LogRV_WilksLambda(), cf_Normal(), cf_RectangularSymmetric(), cf_Student(), cf_TSPSymmetric(), cf_TrapezoidalSymmetric(), cf_TriangularSymmetric(), cf_vonMises()

Examples

## EXAMPLE 1
# CF of a Beta RV
alpha <- 1
beta  <- 3
t <- seq(from = -50,
         to = 50,
         length.out = 501)
plotReIm(function(t)
        cf_Beta(t, alpha, beta), t, title = "CF of a Beta RVs")

## EXAMPLE 2
# PDF/CDF of a Beta RV
alpha <- 1
beta  <- 3
cf <- function(t) {
        cf_Beta(t, alpha, beta)
}
options <- list()
options$N <- 2 ^ 12
options$xMin <- 0
options$xMax <- 1
x <- seq(from = 0,
         to = 1,
         length.out = 201)
prob <- c(0.9, 0.95, 0.99)
result <- cf2DistGP(cf, x, prob, options)

## EXAMPLE 3
# CF of a linear combination of independent Beta RVs
alpha <- 1
beta  <- 3
coef  <- 1 / (((1:50) - 0.5) * pi) ^ 2
weights <- coef / sum(coef)
t <- seq(from = -100,
         to = 100,
         length.out = 501)
plotReIm(function(t)
        cf_Beta(t, alpha, beta, weights),
        t,
        title = "CF of a weighted linear combination of independent Beta RVs")

## EXAMPLE 4
# PDF/CDF of a weighted linear combination of independent Beta RVs
alpha <- 1
beta  <- 3
coef  <- 1 / (((1:50) - 0.5) * pi) ^ 2
weights <- coef / sum(coef)
cf <- function(t) {
        cf_Beta(t, alpha, beta, weights)
}
options <- list()
options$xMin <- 0
options$xMax <- 1
x <- seq(from = 0,
         to = 1,
         length.out = 201)
prob <- c(0.9, 0.95, 0.99)
result <- cf2DistGP(cf, x, prob, options)

gajdosandrej/CharFunToolR documentation built on June 3, 2024, 7:46 p.m.