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 doi:10.48550/arXiv.2505.15423.
To install from GitHub:
# if not already installed:
install.packages("devtools")
::install_github("mtkurbucz/SplitWise") devtools
library(SplitWise)
data(mtcars)
# Univariate transformation (backward selection using AIC)
<- splitwise(
model_uni ~ .,
mpg data = mtcars,
transformation_mode = "univariate",
direction = "backward",
criterion = "AIC",
trace = 0
)summary(model_uni)
# Iterative transformation (forward selection using BIC)
<- splitwise(
model_iter ~ .,
mpg data = mtcars,
transformation_mode = "iterative",
direction = "forward",
criterion = "BIC",
k = log(nrow(mtcars)), # BIC penalty
trace = 0
)print(model_iter)
Additional documentation is available at:
https://github.com/mtkurbucz/SplitWise/tree/main/docs
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 doi:10.48550/arXiv.2505.15423.
This package is licensed under the GPL-3 License.