This package implements Chang and Goplerud (2023)’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
(2023) 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.