This package implements Chang and Goplerud
(2024)’s generalization of Kernel Regularized Least Squares (gKRLS),
also known as kernel ridge regression. This reformulates [g]KRLS as a
hierarchical model. Estimation proceeds using mgcv and
associated functions such as gam, bam, or
gamm4. Thus, one can use gKRLS for any outcome
implemented in mgcv as well as including multiple smooth
terms, non-penalized covariates, etc. We also provide an implementation
of random sketching following Yang et al. (2017).
The package can be installed from CRAN or the most-to-update version
can be installed using devtools.
# CRAN
install.packages("gKRLS")
# Up-to-Date GitHub Version
library(remotes)
remotes::install_github("mgoplerud/gKRLS", dependencies = TRUE)
The syntax is straightforward to users of mgcv. The
following example estimates a Poisson regression with an intercept and a
flexible kernel term.
gam(y ~ s(x1, x2, bs = "gKRLS"), data = data, family = poisson())
gKRLS by default uses subsampling sketching (i.e.,
building the kernel based on a random sample of observations) where the
dimensionality of the sketched kernel is
5 * ceiling(N^(1/3)). Using xt = gKRLS(...)
can modify the type of sketching. Please see the documentation for
details.
Functions are also available to implement gKRLS in an
ensemble using SuperLearner and in double/debiased machine
learning using DoubleML. It also allows
sandwich to calculate robust or clustered standard errors
for standard families when using gam or bam;
see Chang and Goplerud
(2024) for more details.
calculate_effects can compute average marginal effects
and predicted values. The examples for calculate_effects
show how to calculate quantities such as predicted probability
curves.