Implements 'SplitWise', a hybrid regression approach that transforms
numeric variables into either single-split (0/1) dummy variables or retains
them as continuous predictors. The transformation is followed by stepwise
selection to identify the most relevant variables. The default 'iterative'
mode adaptively explores partial synergies among variables to enhance model
performance, while an alternative 'univariate' mode applies simpler
transformations independently to each predictor. For details, see Kurbucz et al. (2025)
SplitWise is a hybrid stepwise regression package that intelligently transforms numeric predictors using single- or double-split dummy encoding. Each variable can be retained as a continuous feature or transformed into binary indicators based on model fit, evaluated using AIC or BIC.
By default, SplitWise uses an iterative transformation mode, which evaluates each variable in the context of others—enabling more accurate and interpretable models by capturing feature synergies. For faster execution on large datasets, a simpler univariate mode is also available, which transforms each variable independently. While computationally efficient, this mode may miss interactions captured by the iterative approach.
For a full description of the methodology, see the accompanying arXiv preprint: Kurbucz, Marcell T.; Tzivanakis, Nikolaos; Aslam, Nilufer Sari; Sykulski, Adam M. (2025). SplitWise Regression: Stepwise Modeling with Adaptive Dummy Encoding. arXiv preprint https://arxiv.org/abs/2505.15423.
To install from GitHub:
# if not already installed:
install.packages("devtools")
devtools::install_github("mtkurbucz/SplitWise")
library(SplitWise)
data(mtcars)
# Univariate transformation (backward selection using AIC)
model_uni <- splitwise(
mpg ~ .,
data = mtcars,
transformation_mode = "univariate",
direction = "backward",
criterion = "AIC",
trace = 0
)
summary(model_uni)
# Iterative transformation (forward selection using BIC)
model_iter <- splitwise(
mpg ~ .,
data = mtcars,
transformation_mode = "iterative",
direction = "forward",
criterion = "BIC",
k = log(nrow(mtcars)), # BIC penalty
trace = 0
)
print(model_iter)
Further documentation is available in the doc/ folder on GitHub.
If you use SplitWise in your research, please cite:
Kurbucz, Marcell T.; Tzivanakis, Nikolaos; Aslam, Nilufer Sari; Sykulski, Adam M. (2025). SplitWise Regression: Stepwise Modeling with Adaptive Dummy Encoding. arXiv preprint https://arxiv.org/abs/2505.15423.
This package is licensed under the GPL-3 License.