Changelog
Source:NEWS.md
gkwreg 2.1.0
Comparative Testing
Introduced a dedicated comparative test suite to validate
gkwreg’s beta family implementation against the referencebetaregpackage, 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 tobetareg’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
gkwregwithfamily = "beta"as a robust and reliable alternative for beta regression, yielding the same inferential conclusions as the establishedbetaregpackage.Verified consistency across multiple scenarios, including controlled simulations with known parameters and real-world datasets (
GasolineYield,FoodExpenditure), ensuring robust performance in diverse modeling contexts.
gkwreg 2.0.0
Major Changes
Package Restructuring
Complete package reformulation following JOSS reviewer feedback to reduce complexity and improve maintainability.
Distribution functions moved to separate package
gkwdist: Alld*,p*,q*,r*density/CDF/quantile/random generation functions have been extracted to the companion packagegkwdistfor cleaner namespace and reduced dependencies. Thegkwregpackage now focuses exclusively on regression modeling.Univariate fitting functions removed:
gkwfit(),gkwgof(), andgkwfitall()have been removed to maintain package focus on regression. Users needing univariate distribution fitting should use thegkwdistpackage directly or standard MLE approaches.
Simplified Interface
Introduced
gkw_control(): All technical/optimization parameters (method, start, fixed, hessian, maxit, tolerances, etc.) are now consolidated in a dedicated control function following theglm.control()design pattern. This dramatically simplifies the maingkwreg()interface.-
Removed arguments violating separation of concerns from
gkwreg(): Streamlined
gkwreg()signature: Reduced from 15+ arguments to ~12 core arguments, with technical options delegated tocontrol.
Complete S3 Method Implementation
- Standard methods suite: Implemented complete S3 methods following R conventions:
Enhanced Diagnostics
-
Comprehensive
plot.gkwreg()method with 6 diagnostic plot types:- Residuals vs Observation Indices
- Cook’s Distance
- Generalized Leverage vs Fitted Values
- Residuals vs Linear Predictor
- Half-Normal Plot with Simulated Envelope
- Predicted vs Observed Values
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.
Powerful Prediction
-
predict.gkwreg()with 9 prediction types:-
"response","variance","link","parameter" - Individual parameters:
"alpha","beta","gamma","delta","lambda" - Distribution functions:
"density","probability","quantile"
-
-
Element-wise and vectorized modes: Flexible evaluation via
elementwiseargument for CDF/PDF/quantile calculations.
Model Comparison Tools
Likelihood ratio tests:
anova.gkwreg()for comparing nested models with automatic ordering and chi-squared tests; dedicatedlrtest()function for pairwise comparisons.Information criteria:
AIC.gkwreg()andBIC.gkwreg()with multi-model comparison support returning data frames.
Documentation Improvements
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
NULLtriggering smart auto-configuration (e.g.,sub.caption,ask,theme_fninplot.gkwreg()).
Testing Framework
Comprehensive Test Suite Added
The package now includes a robust testing framework with 1000+ unit tests covering all major functionalities:
Core Function Testing
-
gkwreg(): 20 tests for model fitting, parameter estimation, formula handling, all distribution families, link functions, and convergence -
predict.gkwreg(): 10 tests for predictions, including response means, densities, CDFs, quantiles, and parameter extraction -
residuals.gkwreg(): 10 tests for all residual types (response, Pearson, deviance, quantile, standardized, working, partial) -
fitted.gkwreg(): 10 tests for fitted value extraction and validation
S3 Methods Testing
-
anova.gkwreg(): 45 tests for model comparisons, likelihood ratio tests, and nested model hierarchies -
Print methods: Tests for
print.gkwreg()andprint.summary.gkwreg() -
Accessor methods: Tests for
coef(),vcov(),nobs(),confint() -
Summary method: Tests for
summary.gkwreg()including coefficient tables, confidence intervals, and fit statistics
Test Coverage Includes
- ll 7 distribution families (GKw, BKw, KKw, EKw, MC, Kw, Beta)
- Different link functions and scales
- Edge cases and boundary conditions
- Missing data handling (NA)
- Subset and weight specifications
- Large dataset performance
- Error handling and input validation
- Statistical correctness verification
- Numerical accuracy checks
Minor Improvements
Link scaling support: Added
link_scaleargument togkwreg()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().