Introduced a dedicated comparative test suite to
validate gkwreg’s beta family implementation against the
reference betareg package, ensuring numerical accuracy and
reliability.
Confirmed statistical equivalence despite
different internal parameterizations. Tests demonstrate that
gkwreg’s shape-based (gamma,
delta+1) approach produces equivalent statistical models to
betareg’s mean-precision (mu,
phi) approach.
Validated key outputs, showing that log-likelihood, AIC/BIC, fitted values, and predictions are virtually identical between the two packages when fitting the same beta regression model.
Successfully benchmarked gkwreg with
family = "beta" as a robust and reliable
alternative for beta regression, yielding the same inferential
conclusions as the established betareg package.
Verified consistency across multiple scenarios,
including controlled simulations with known parameters and real-world
datasets (GasolineYield, FoodExpenditure),
ensuring robust performance in diverse modeling contexts.
Complete package reformulation following JOSS reviewer feedback to reduce complexity and improve maintainability.
Distribution functions moved to separate package
gkwdist: All d*, p*,
q*, r* density/CDF/quantile/random generation
functions have been extracted to the companion package
gkwdist for cleaner namespace and reduced dependencies. The
gkwreg package now focuses exclusively on regression
modeling.
Univariate fitting functions removed:
gkwfit(), gkwgof(), and
gkwfitall() have been removed to maintain package focus on
regression. Users needing univariate distribution fitting should use the
gkwdist package directly or standard MLE
approaches.
Introduced gkw_control(): All
technical/optimization parameters (method, start, fixed, hessian, maxit,
tolerances, etc.) are now consolidated in a dedicated control function
following the glm.control() design pattern. This
dramatically simplifies the main gkwreg()
interface.
Removed arguments violating separation of
concerns from gkwreg():
plot argument removed (use plot() method
instead)conf.level argument removed (use confint()
method instead)profile, submodels, npoints
arguments removed (focused functionality)Streamlined gkwreg() signature:
Reduced from 15+ arguments to ~12 core arguments, with technical options
delegated to control.
print.gkwreg(), summary.gkwreg(),
print.summary.gkwreg()coef.gkwreg(), vcov.gkwreg(),
fitted.gkwreg()logLik.gkwreg(), AIC.gkwreg(),
BIC.gkwreg(), nobs.gkwreg()confint.gkwreg(), residuals.gkwreg(),
predict.gkwreg()anova.gkwreg(), print.anova.gkwreg(),
lrtest()Comprehensive plot.gkwreg() method
with 6 diagnostic plot types:
Dual graphics system support: Base R graphics
(default) or ggplot2 with automatic grid arrangement via
gridExtra/ggpubr.
Advanced customization: Named-list interface for plot captions (partial customization without repeating all titles), theme control, sampling for large datasets.
predict.gkwreg() with 9 prediction
types:
"response", "variance",
"link", "parameter""alpha", "beta",
"gamma", "delta", "lambda""density",
"probability", "quantile"elementwise argument for CDF/PDF/quantile
calculations.Likelihood ratio tests:
anova.gkwreg() for comparing nested models with automatic
ordering and chi-squared tests; dedicated lrtest() function
for pairwise comparisons.
Information criteria: AIC.gkwreg()
and BIC.gkwreg() with multi-model comparison support
returning data frames.
Extensive Roxygen documentation for all exported functions with detailed examples, mathematical formulas, and usage guidance.
Updated README.md with comprehensive feature overview, quick start guide, advanced examples, and ecosystem comparison table.
NULL default intelligent behavior: Several
arguments default to NULL triggering smart
auto-configuration (e.g., sub.caption, ask,
theme_fn in plot.gkwreg()).
The package now includes a robust testing framework with 1000+ unit tests covering all major functionalities:
gkwreg(): 20 tests for model fitting,
parameter estimation, formula handling, all distribution families, link
functions, and convergencepredict.gkwreg(): 10 tests for
predictions, including response means, densities, CDFs, quantiles, and
parameter extractionresiduals.gkwreg(): 10 tests for all
residual types (response, Pearson, deviance, quantile, standardized,
working, partial)fitted.gkwreg(): 10 tests for fitted
value extraction and validationanova.gkwreg(): 45 tests for model
comparisons, likelihood ratio tests, and nested model hierarchiesprint.gkwreg() and print.summary.gkwreg()coef(),
vcov(), nobs(), confint()summary.gkwreg() including coefficient tables, confidence
intervals, and fit statisticstestthat packagegkwdist packageLink scaling support: Added
link_scale argument to gkwreg() for
controlling transformation intensity.
Performance optimizations: Intelligent caching, sampling support for diagnostics on large datasets, optional Hessian computation.
Breaking Changes: Version 2.0.0 introduces breaking
changes. Code using gkwfit(), gkwgof(),
gkwfitall(), or distribution functions
(dgkw(), etc.) must be updated to use the
gkwdist package or the new gkwreg() interface
with gkw_control().