knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
The goal of ggtails is to make the use of fat tails specific plots as easy as possible within the usual ggplot2
framework. To do so, I took the computational steps in the great evir
package and turned them into ggplot2
stats.
Check this blogpost for an intuitive explanation of these types of plots.
# install.packages("devtools") devtools::install_github("David-Salazar/ggtails")
For example, you can create a zipf plot for different random variables in the same way as would use stat_qq()
library(ggtails) library(tidyverse) gaussian <- rnorm(10000) lognormal <- rlnorm(10000) exponential <- rexp(10000) pareto <- 1/(runif(10000))^(1/1.16) # inverse transform sampling tibble(sim = 1:10000, lognormal, exponential, pareto) %>% pivot_longer(-sim, names_to = "random_variable", values_to = "value") %>% ggplot(aes(sample = value, color = random_variable)) + stat_zipf(alpha = 0.1) + scale_x_log10() + scale_y_log10() + theme_minimal() + labs(title = "Zipf plot in ggplot2 workflow", x = "Log(x)", y = "Log(Survival(x))")
In the same way, we can create a mean excess plot:
tibble(sim = 1:10000, gaussian, lognormal, exponential, pareto) %>% pivot_longer(-sim, names_to = "random_variable", values_to = "value") %>% ggplot(aes(sample = value)) + stat_mean_excess(alpha = 0.1) + facet_wrap(~random_variable, scales = "free") + theme_minimal() + labs(title = "Mean Excess plot works with facetting!")
Finally, we can perform a visual examination of fat-tailedness by examining the convergence of moments with the max-to-sum plots. For finite moments, the ratio should converge to 0.
tibble(sim = 1:10000, gaussian, lognormal, exponential, pareto) %>% pivot_longer(-sim, names_to = "random_variable", values_to = "value") %>% ggplot(aes(sample = value)) + stat_max_sum_ratio_plot(p = 4) + facet_wrap(~random_variable) + theme_minimal()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.