util_triangular_aic {TidyDensity} | R Documentation |
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)
Arguments
.x |
A numeric vector containing the data to be fitted to a triangular 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).
Value
The AIC value calculated based on the fitted triangular distribution to the provided data.
Author(s)
Steven P. Sanderson II, MPH
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)