calc_theory {SimMultiCorrData} | R Documentation |
Find Theoretical Standardized Cumulants for Continuous Distributions
Description
This function calculates the theoretical mean, standard deviation, skewness,
standardized kurtosis, and standardized fifth and sixth cumulants given either a Distribution name (plus up to 4
parameters) or a pdf (with specified lower and upper support bounds). The result can be used as input to
find_constants
or for data simulation.
Note: Due to the nature of the integration involved in calculating the standardized cumulants, the results are
approximations. Greater accuracy can be achieved by increasing the number of subdivisions (sub
) used in the integration
process. However, the user may need to round the cumulants (i.e. using round(x, 8)
) before using them in other functions
(i.e. find_constants
, calc_lower_skurt
, nonnormvar1
, rcorrvar
, rcorrvar2
) in order to achieve
the desired results. For example, in order to ensure that skew is exactly 0 for symmetric distributions.
Usage
calc_theory(Dist = c("Benini", "Beta", "Beta-Normal", "Birnbaum-Saunders",
"Chisq", "Dagum", "Exponential", "Exp-Geometric", "Exp-Logarithmic",
"Exp-Poisson", "F", "Fisk", "Frechet", "Gamma", "Gaussian", "Gompertz",
"Gumbel", "Kumaraswamy", "Laplace", "Lindley", "Logistic", "Loggamma",
"Lognormal", "Lomax", "Makeham", "Maxwell", "Nakagami", "Paralogistic",
"Pareto", "Perks", "Rayleigh", "Rice", "Singh-Maddala", "Skewnormal", "t",
"Topp-Leone", "Triangular", "Uniform", "Weibull"), params = NULL,
fx = NULL, lower = NULL, upper = NULL, sub = 1000)
Arguments
Dist |
name of the distribution. The possible values are: "Benini", "Beta", "Beta-Normal", "Birnbaum-Saunders", "Chisq",
"Exponential", "Exp-Geometric", "Exp-Logarithmic", "Exp-Poisson", "F", "Fisk", "Frechet", "Gamma", "Gaussian", "Gompertz",
"Gumbel", "Kumaraswamy", "Laplace", "Lindley", "Logistic", "Loggamma", "Lognormal", "Lomax", "Makeham", "Maxwell",
"Nakagami", "Paralogistic", "Pareto", "Perks", "Rayleigh", "Rice", "Singh-Maddala", "Skewnormal", "t", "Topp-Leone", "Triangular",
"Uniform", "Weibull".
Please refer to the documentation for each package (either |
params |
a vector of parameters (up to 4) for the desired distribution (keep NULL if |
fx |
a pdf input as a function of x only, i.e. fx <- function(x) 0.5*(x-1)^2; must return a scalar (keep NULL if Dist supplied instead) |
lower |
the lower support bound for a supplied fx, else keep NULL |
upper |
the upper support bound for a supplied fx, else keep NULL |
sub |
the number of subdivisions to use in the integration; if no result, try increasing sub (requires longer computation time) |
Value
A vector of the mean, standard deviation, skewness, standardized kurtosis, and standardized fifth and sixth cumulants
References
Headrick TC (2002). Fast Fifth-order Polynomial Transforms for Generating Univariate and Multivariate Non-normal Distributions. Computational Statistics & Data Analysis, 40(4):685-711. doi: 10.1016/S0167-9473(02)00072-5. (ScienceDirect)
Headrick TC, Kowalchuk RK (2007). The Power Method Transformation: Its Probability Density Function, Distribution Function, and Its Further Use for Fitting Data. Journal of Statistical Computation and Simulation, 77, 229-249. doi: 10.1080/10629360600605065.
Headrick TC, Sheng Y, & Hodis FA (2007). Numerical Computing and Graphics for the Power Method Transformation Using Mathematica. Journal of Statistical Software, 19(3), 1 - 17. doi: 10.18637/jss.v019.i03
Thomas W. Yee (2018). VGAM: Vector Generalized Linear and Additive Models. R package version 1.0-5. https://CRAN.R-project.org/package=VGAM
Rob Carnell (2017). triangle: Provides the Standard Distribution Functions for the Triangle Distribution. R package version 0.11. https://CRAN.R-project.org/package=triangle
See Also
calc_fisherk
, calc_moments
,
find_constants
Examples
options(scipen = 999)
# Pareto Distribution: params = c(alpha = scale, theta = shape)
calc_theory(Dist = "Pareto", params = c(1, 10))
# Generalized Rayleigh Distribution: params = c(alpha = scale, mu/sqrt(pi/2) = shape)
calc_theory(Dist = "Rayleigh", params = c(0.5, 1))
# Laplace Distribution: params = c(location, scale)
calc_theory(Dist = "Laplace", params = c(0, 1))
# Triangle Distribution: params = c(a, b)
calc_theory(Dist = "Triangular", params = c(0, 1))