Skip to content

Commit

Permalink
Merge pull request #451 from spsanderson/development
Browse files Browse the repository at this point in the history
Fixes #434
  • Loading branch information
spsanderson authored Apr 25, 2024
2 parents cbf00ff + d686898 commit e225102
Show file tree
Hide file tree
Showing 19 changed files with 143 additions and 0 deletions.
1 change: 1 addition & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ export(util_f_stats_tbl)
export(util_gamma_aic)
export(util_gamma_param_estimate)
export(util_gamma_stats_tbl)
export(util_geometric_aic)
export(util_geometric_param_estimate)
export(util_geometric_stats_tbl)
export(util_hypergeometric_param_estimate)
Expand Down
59 changes: 59 additions & 0 deletions R/utils-aic-geometric.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#' Calculate Akaike Information Criterion (AIC) for Geometric Distribution
#'
#' This function calculates the Akaike Information Criterion (AIC) for a geometric
#' distribution fitted to the provided data.
#'
#' @family Utility
#' @author Steven P. Sanderson II, MPH
#'
#' @description
#' This function estimates the probability parameter of a geometric 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 geometric distribution.
#'
#' @details
#' This function fits a geometric distribution to the provided data. It estimates
#' the probability parameter of the geometric distribution from the data. Then,
#' it calculates the AIC value based on the fitted distribution.
#'
#' Initial parameter estimates: The function uses the method of moments estimate
#' as a starting point for the probability parameter of the geometric distribution.
#'
#' Optimization method: Since the parameter is 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 <- rgeom(100, prob = 0.2)
#' util_geometric_aic(x)
#'
#' @return
#' The AIC value calculated based on the fitted geometric distribution to the provided data.
#'
#' @name util_geometric_aic
NULL

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

# Estimate probability parameter
prob <- 1 / mean(x)

# Calculate AIC
k_geometric <- 1 # Number of parameters for geometric distribution (prob)
logLik_geometric <- sum(dgeom(x, prob = prob, log = TRUE))
AIC_geometric <- 2 * k_geometric - 2 * logLik_geometric

# Return AIC
return(AIC_geometric)
}
1 change: 1 addition & 0 deletions man/check_duplicate_rows.Rd

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

1 change: 1 addition & 0 deletions man/convert_to_ts.Rd

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

1 change: 1 addition & 0 deletions man/quantile_normalize.Rd

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

1 change: 1 addition & 0 deletions man/tidy_mcmc_sampling.Rd

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

1 change: 1 addition & 0 deletions man/util_beta_aic.Rd

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

1 change: 1 addition & 0 deletions man/util_binomial_aic.Rd

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

1 change: 1 addition & 0 deletions man/util_cauchy_aic.Rd

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

1 change: 1 addition & 0 deletions man/util_chisq_aic.Rd

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

1 change: 1 addition & 0 deletions man/util_exponential_aic.Rd

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

1 change: 1 addition & 0 deletions man/util_gamma_aic.Rd

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

67 changes: 67 additions & 0 deletions man/util_geometric_aic.Rd

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

1 change: 1 addition & 0 deletions man/util_logistic_aic.Rd

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

1 change: 1 addition & 0 deletions man/util_lognormal_aic.Rd

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

1 change: 1 addition & 0 deletions man/util_normal_aic.Rd

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

1 change: 1 addition & 0 deletions man/util_pareto_aic.Rd

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

1 change: 1 addition & 0 deletions man/util_uniform_aic.Rd

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

1 change: 1 addition & 0 deletions man/util_weibull_aic.Rd

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

0 comments on commit e225102

Please sign in to comment.