Know Your Limits: The Authorized Domain

A short demo on generating the authorized domain of a distribution.

distributions
tsdistributions
Author

Alexios Galanos

Published

May 11, 2022

The tsdistributions package provides the function authorized_domain which calculates the region of Skewness-Kurtosis for which a density exists. This is related to the Hamburger moment problem, and the maximum attainable Skewness (S) given kurtosis (K) (see (Widder 2015)). A key takeaway from Widder is that for as given level of kurtosis(\(\mu_4\)) only a finite range of skewness (\(\mu_3\)) may be attained, with the boundary given by:

\[ \mu^2_3\le \mu_4 - 1 \quad\text{with}\quad \mu_4\gt 0 \tag{1}\]

This short demo shows how to generate a plot comparing a number of different skewed and heavy tailed distributions available in the package. We investigate Johnson’s SU (jsu), the Normal Inverse Gaussian (nig), the Skew Student of Fernandez and Steel (sstd), the Hyperbolic and the Generalized Hyperbolic Skewed Student (ghst) distributions.

Code
library(tsdistributions)
# default is maximum kurtosis of 30 with interval length of 25
max_kurt <- 30
n <- 25
jsud <- authorized_domain("jsu", max_kurt = max_kurt, n = n)
nigd <- authorized_domain("nig")
sstdd <- authorized_domain("sstd")
ghypd <- authorized_domain("ghyp", lambda = 1)
ghstd <- authorized_domain("ghst")

The returned list contains the lower half of the Skewness-Kurtosis combinations, so we reflect those values to obtain the upper half and plot them. The curves delimit the skewness-kurtosis boundary corresponding to the authorized domain, for which a density exists.

Code
K = c(seq(1.01, max_kurt, length.out = n), seq(1.01, max_kurt, length.out = n))
S = c(sqrt(seq(1.01, max_kurt, length.out = n) - 1), -sqrt(seq(1.01, max_kurt, length.out = n) - 1))
plot(K, S, ylab = "Skewness", xlab = "Kurtosis", main = "Authorized Domain", type = "n")
lines(spline(K[1:n],  S[1:n]), col = "red", lwd = 2)
lines(spline(K[1:n], -S[1:n]), col = "red" ,lwd = 2)
lines(jsud$Kurtosis, jsud$Skewness, col = "steelblue", lwd = 2)
lines(jsud$Kurtosis, -jsud$Skewness, col = "steelblue", lwd = 2)
lines(nigd$Kurtosis, nigd$Skewness, col = "orange", lwd = 2)
lines(nigd$Kurtosis, -nigd$Skewness, col = "orange", lwd = 2)
lines(sstdd$Kurtosis, sstdd$Skewness, col = "green", lwd = 2)
lines(sstdd$Kurtosis, -sstdd$Skewness, col = "green", lwd = 2)
lines(ghypd$Kurtosis, ghypd$Skewness, col = "violet", lwd = 2)
lines(ghypd$Kurtosis, -ghypd$Skewness, col = "violet", lwd = 2)
lines(ghstd$Kurtosis, ghstd$Skewness, col = "black", lwd = 2)
lines(ghstd$Kurtosis, -ghstd$Skewness, col = "black", lwd = 2)
legend("topleft", c("MAX", "jsu","nig","sstd","hyp","ghst"), 
       col = c("red", "steelblue","orange","green","violet","black"),  
       lty = 1, lwd = rep(2, 5), bty = "n")
abline(v = 3, col = "lightgrey")
abline(h = 0, col = "lightgrey")

References

Widder, David Vernon. 2015. “Laplace Transform (PMS-6).” In Laplace Transform (PMS-6). Princeton university press.

Citation

BibTeX citation:
@online{galanos2022,
  author = {Galanos, Alexios},
  title = {Know Your Limits: The Authorized Domain},
  date = {2022-05-11},
  langid = {en}
}
For attribution, please cite this work as:
Galanos, Alexios. 2022. “Know Your Limits: The Authorized Domain.” May 11, 2022.