Learn R Programming

TidyDensity (version 1.5.0)

util_triangular_aic: Calculate Akaike Information Criterion (AIC) for Triangular Distribution

Description

This function estimates the parameters of a triangular distribution (min, max, and mode) from the provided data and calculates the AIC value based on the fitted distribution.

Usage

util_triangular_aic(.x)

Value

The AIC value calculated based on the fitted triangular distribution to the provided data.

Arguments

.x

A numeric vector containing the data to be fitted to a triangular distribution.

Author

Steven P. Sanderson II, MPH

Details

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

The function operates in several steps:

  1. Parameter Estimation: The function extracts the minimum, maximum, and mode values from the data via the TidyDensity::util_triangular_param_estimate function. It returns these initial parameters as the starting point for optimization.

  2. Negative Log-Likelihood Calculation: A custom function calculates the negative log-likelihood using the EnvStats::dtri function to obtain density values for each data point. The densities are logged manually to simulate the behavior of a log parameter.

  3. Parameter Validation: During optimization, the function checks that the constraints min <= mode <= max are met, and returns an infinite loss if not.

  4. Optimization: The optimization process utilizes the "SANN" (Simulated Annealing) method to minimize the negative log-likelihood and find optimal parameter values.

  5. AIC Calculation: The Akaike Information Criterion (AIC) is calculated using the optimized negative log-likelihood and the total number of parameters (3).

See Also

Other Utility: check_duplicate_rows(), convert_to_ts(), quantile_normalize(), tidy_mcmc_sampling(), util_beta_aic(), util_binomial_aic(), util_cauchy_aic(), util_chisq_aic(), util_exponential_aic(), util_f_aic(), util_gamma_aic(), util_generalized_beta_aic(), util_generalized_pareto_aic(), util_geometric_aic(), util_hypergeometric_aic(), util_inverse_burr_aic(), util_inverse_pareto_aic(), util_inverse_weibull_aic(), util_logistic_aic(), util_lognormal_aic(), util_negative_binomial_aic(), util_normal_aic(), util_paralogistic_aic(), util_pareto1_aic(), util_pareto_aic(), util_poisson_aic(), util_t_aic(), util_uniform_aic(), util_weibull_aic(), util_zero_truncated_binomial_aic(), util_zero_truncated_geometric_aic(), util_zero_truncated_negative_binomial_aic(), util_zero_truncated_poisson_aic()

Examples

Run this code
# Example: Calculate AIC for a sample dataset
set.seed(123)
data <- tidy_triangular(.min = 0, .max = 1, .mode = 1/2)$y
util_triangular_aic(data)

Run the code above in your browser using DataLab