# An Overview of the New AIC Functions in the `TidyDensity` Package

code
rtip
tidydensity
Author

Steven P. Sanderson II, MPH

Published

May 31, 2024

# Introduction

The latest update the the `TidyDensity` package introduces several new functions that make it easier to work with data in R. In this article, we’ll take a look at the new AIC functions and how they work.

# New Functions

The set of functions that we will go over are the `util_dist_aic()` functions, where `dist` is the distribution in question, for example `util_negative_binomial_aic()`. These functions calculate the Akaike Information Criterion (AIC) for a given distribution and data. The AIC is a measure of the relative quality of a statistical model for a given set of data. The lower the AIC value, the better the model fits the data. Here is a bit about the functions.

## Usage

``util_negative_binomial_aic()``

## Arguments

• `.x`: A numeric vector of data values.

## Value

A numeric value representing the AIC for the given data and distribution.

## Details

This function calculates the Akaike Information Criterion (AIC) for a distribution fitted to the provided data.

This function fits a distribution to the provided data. It estimates the parameters of the distribution from the data. Then, it calculates the AIC value based on the fitted distribution.

Initial parameter estimates: The function uses the param estimate family of functions in order to estimate the starting point of the parameters. For example `util_negative_binomial_param_estimate()`.

Optimization method: Since the parameters are directly calculated from the data, no optimization is needed.

Goodness-of-fit: While AIC is a useful metric for model comparison, it’s recommended to also assess the goodness-of-fit of the chosen model using visualization and other statistical tests.

## Examples

``````library(TidyDensity)

set.seed(123)
# Generate some data
x <- rnorm(100)

# Calculate the AIC for a negative binomial distribution
cat(
" AIC of rnorm() using TidyDensity: ", util_normal_aic(x), "\n",
"AIC of rnorm() using fitdistrplus: ",
fitdistrplus::fitdist(x, "norm")\$aic
)``````
`````` AIC of rnorm() using TidyDensity:  268.5385
AIC of rnorm() using fitdistrplus:  268.5385``````

## New AIC Functions

Here is a listing of all of the new AIC functions:

• `util_negative_binomial_aic()`
• `util_zero_truncated_negative_binomial_aic()`
• `util_zero_truncated_poisson_aic()`
• `util_f_aic()`
• `util_zero_truncated_geometric_aic()`
• `util_t_aic()`
• `util_pareto1_aic()`
• `util_paralogistic_aic()`
• `util_inverse_weibull_aic()`
• `util_pareto_aic()`
• `util_inverse_burr_aic()`
• `util_generalized_pareto_aic()`
• `util_generalized_beta_aic()`
• `util_zero_truncated_binomial_aic()`

# Conclusion

Thanks for reading. I hope you find these new functions useful in your work. If you have any questions or feedback, please feel free to reach out. I worked hard to ensure where I could that results would come back identical to what would be calculated from the amazing `fitdistrplus` package.

Happy Coding!