Skip to content

Commit

Permalink
Merge pull request #448 from spsanderson/development
Browse files Browse the repository at this point in the history
Fixes #431
  • Loading branch information
spsanderson authored Apr 25, 2024
2 parents 94ce68b + b512943 commit fa4ab2b
Show file tree
Hide file tree
Showing 16 changed files with 153 additions and 13 deletions.
1 change: 1 addition & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ export(util_poisson_stats_tbl)
export(util_t_stats_tbl)
export(util_triangular_param_estimate)
export(util_triangular_stats_tbl)
export(util_uniform_aic)
export(util_uniform_param_estimate)
export(util_uniform_stats_tbl)
export(util_weibull_param_estimate)
Expand Down
61 changes: 61 additions & 0 deletions R/utils-aic-uniform.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#' Calculate Akaike Information Criterion (AIC) for Uniform Distribution
#'
#' This function calculates the Akaike Information Criterion (AIC) for a uniform
#' distribution fitted to the provided data.
#'
#' @family Utility
#' @author Steven P. Sanderson II, MPH
#'
#' @description
#' This function estimates the min and max parameters of a uniform distribution
#' from the provided data and then calculates the AIC value based on the fitted
#' distribution.
#'
#' @param .x A numeric vector containing the data to be fitted to a uniform distribution.
#'
#' @details
#' This function fits a uniform distribution to the provided data. It estimates
#' the min and max parameters of the uniform distribution from the range of the data.
#' Then, it calculates the AIC value based on the fitted distribution.
#'
#' Initial parameter estimates: The function uses the minimum and maximum values
#' of the data as starting points for the min and max parameters of the uniform
#' distribution.
#'
#' 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
#' # Example 1: Calculate AIC for a sample dataset
#' set.seed(123)
#' x <- runif(30)
#' util_uniform_aic(x)
#'
#' @return
#' The AIC value calculated based on the fitted uniform distribution to the provided data.
#'
#' @name util_uniform_aic
NULL

#' @export
#' @rdname util_uniform_aic
util_uniform_aic <- function(.x) {
# Tidyeval
x <- as.numeric(.x)

# Estimate min and max parameters
min_val <- min(x)
max_val <- max(x)

# Calculate AIC
k_uniform <- 2 # Number of parameters for uniform distribution (min and max)
logLik_uniform <- -length(x) * log(max_val - min_val)
AIC_uniform <- 2 * k_uniform - 2 * logLik_uniform

# Return AIC
return(AIC_uniform)
}
3 changes: 2 additions & 1 deletion man/check_duplicate_rows.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion man/convert_to_ts.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion man/quantile_normalize.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion man/tidy_mcmc_sampling.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion man/util_beta_aic.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion man/util_cauchy_aic.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion man/util_chisq_aic.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion man/util_exponential_aic.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion man/util_gamma_aic.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion man/util_logistic_aic.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion man/util_lognormal_aic.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion man/util_normal_aic.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion man/util_pareto_aic.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

65 changes: 65 additions & 0 deletions man/util_uniform_aic.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit fa4ab2b

Please sign in to comment.