Calculate Akaike Information Criterion (AIC) for Triangular Distribution
Source:R/utils-aic-triangular.R
util_triangular_aic.Rd
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.
Details
This function calculates the Akaike Information Criterion (AIC) for a triangular distribution fitted to the provided data.
The function operates in several steps:
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.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 alog
parameter.Parameter Validation: During optimization, the function checks that the constraints
min <= mode <= max
are met, and returns an infinite loss if not.Optimization: The optimization process utilizes the "SANN" (Simulated Annealing) method to minimize the negative log-likelihood and find optimal parameter values.
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
# 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)
#> [1] -14.39203