Nonparametric Kernel Smoothing Methods for Mixed Data Types

Nonparametric (and semiparametric) kernel methods that seamlessly handle a mix of continuous, unordered, and ordered factor data types. We would like to gratefully acknowledge support from the Natural Sciences and Engineering Research Council of Canada (NSERC, < https://www.nserc-crsng.gc.ca/>), the Social Sciences and Humanities Research Council of Canada (SSHRC, < https://www.sshrc-crsh.gc.ca/>), and the Shared Hierarchical Academic Research Computing Network (SHARCNET, < https://sharcnet.ca/>). We would also like to acknowledge the contributions of the GNU GSL authors. In particular, we adapt the GNU GSL B-spline routine gsl_bspline.c adding automated support for quantile knots (in addition to uniform knots), providing missing functionality for derivatives, and for extending the splines beyond their endpoints.


np

CRAN downloads

This is the R package np (Nonparametric Kernel Methods for Mixed Datatypes) written and maintained by Jeffrey S. Racine ([email protected]) and co-authored by Tristen Hayfield ([email protected]).

Installation

You can install the stable version on CRAN:

install.packages('np', dependencies = TRUE)

Or download the zip ball or tar ball, decompress and run R CMD INSTALL on it.

Alternatively, you can install the development version but before doing so Windows users have to first install Rtools, while macOS users have to first install Xcode and the command line tools (once you have Xcode installed, open a terminal and run xcode-select --install). Note also that versions of e.g. Rtools are paired with versions of R so ensure you have the latest version of R installed prior to commencing this process.

After installing Rtools/Xcode and devtools (via install.packages("devtools")), install the development package using the following command:

library(devtools); install_github('JeffreyRacine/R-Package-np')

Note also that if you wish a fast install without the building of vignettes (or if you do not have TeX installed on your system), add the option build_vignettes=FALSE to the install_github() call.

Note that if you wish to install the MPI-enabled development version of the package (i.e. the package npRmpi), you can add the option ref='npRmpi' to the install_github() call above, presuming that your system has a working MPI subsystem installed. See WORKTREES.md and BUILD.md in this repo for local build details.

Quick Start

library(np)
set.seed(1)
x <- runif(200)
y <- sin(2*pi*x) + rnorm(200, sd = 0.2)
bw <- npregbw(y ~ x, regtype = "ll", bwmethod = "cv.ls")
fit <- npreg(bws = bw)
summary(fit)
plot(fit)

For more information on this project please visit the maintainer's website (https://experts.mcmaster.ca/people/racinej).

Canonical Implementation Directive (2026-03-05)

This repository follows a strict canonical execution rule:

  1. One canonical implementation per method (outside explicit np.tree branching).
  2. Unsupported configurations must fail fast with explicit stop(...) diagnostics.
  3. No silent remap/coercion of user-selected options (for example bwmethod, regtype, kernels, cv.iterate, or bounds transforms).
  4. No hidden alternate execution paths for the same method semantics.
  5. All fit-defining options (for example degree, basis, bernstein.basis, kernels, and bounds) must be propagated and used by the canonical path.
  6. np.tree="auto" is the default; when np.tree=TRUE, behavior must remain semantics-preserving and option-compatible with the canonical path.
  7. Remove or reject legacy/debug compatibility branches that add redundant runtime overhead once canonical behavior exists.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.