Code Catalog
np, npRmpi, crs, code examples, scripts, quickstart
This page is meant to be the quickest route to working scripts. It groups the existing code by package, task, and runtime mode so that you can scan, copy, and then drill down only if you need more context.
How to use this page
- If you want only the smallest starter scripts, go first to Quickstarts.
- If you want something you can paste into R immediately, start with the short blocks below.
- If you want a fuller script, use the tables further down.
- If you know a function name, use the site search box or the Reference page.
Minimal starters you can copy immediately
np: kernel regression
Source file: np_regression_quickstart.R
## Minimal np regression example.
##
## The intended workflow is:
## 1. compute a bandwidth object,
## 2. fit the regression estimator,
## 3. inspect the result and a simple fitted curve.
library(np)
options(np.messages = FALSE)
data(cps71, package = "np")
dat <- cps71[, c("logwage", "age")]
## Select the bandwidth object, then fit the regression.
bw <- npregbw(logwage ~ age, data = dat, regtype = "ll", bwmethod = "cv.aic")
fit <- npreg(bws = bw, data = dat)
## Review the bandwidth choice and the fitted regression.
summary(bw)
summary(fit)
## Let the plot method handle the basic fitted-curve display.
plot(fit)Start here if you want the core np workflow in its simplest form. For more context, see Kernel Primer or Quickstarts.
np: density estimation
Source file: np_density_quickstart.R
## Minimal np density-estimation example.
##
## The intended workflow is:
## 1. compute a bandwidth object,
## 2. fit the density estimator,
## 3. inspect the result.
library(np)
options(np.messages = FALSE)
## Start with one variable so the density workflow is easy to read.
data(faithful, package = "datasets")
dat <- data.frame(waiting = faithful$waiting)
## Select the smoothing parameter, then fit the density.
bw <- npudensbw(~ waiting, data = dat, bwmethod = "cv.ml")
fhat <- npudens(bws = bw, data = dat)
## Review the bandwidth choice and the fitted density object.
summary(bw)
summary(fhat)Start here if the object of interest is a density rather than a regression mean. For distribution, conditional-density, conditional-distribution, and quantile starters, see Quickstarts and Density, Distribution, Quantiles.
npRmpi: same workflow, MPI initialized once
Source file: nprmpi_session_quickstart.R
## Minimal modern npRmpi example.
##
## The intended workflow is:
## 1. initialize MPI once in session/spawn mode,
## 2. write ordinary np-style code,
## 3. quit cleanly at the end.
library(npRmpi)
## Initialize once, then work as if this were an ordinary np script.
npRmpi.init(nslaves = 1)
set.seed(1)
x <- runif(200)
y <- sin(2 * pi * x) + rnorm(200, sd = 0.2)
dat <- data.frame(y, x)
## Fit the bandwidth and regression objects.
bw <- npregbw(y ~ x, regtype = "ll", bwmethod = "cv.ls", data = dat)
fit <- npreg(bws = bw, data = dat)
## Review the objects, plot the fit, then exit cleanly.
summary(bw)
summary(fit)
plot(fit)
npRmpi.quit()This is the modern default instructional path for npRmpi: initialize MPI once, run ordinary np-style code, then quit cleanly. For mode details, see MPI and Large Data.
crs: spline regression
Source file: crs_quickstart.R
## Minimal crs spline-regression example.
##
## This is the smallest useful workflow:
## 1. fit a spline model,
## 2. inspect the summary,
## 3. optionally move on to plotting or tighter search control.
library(crs)
options(crs.messages = FALSE)
## Generate a simple nonlinear surface with two predictors.
set.seed(42)
n <- 250
x1 <- runif(n)
x2 <- runif(n)
y <- sin(2 * pi * x1) + x2 + rnorm(n, sd = 0.2)
dat <- data.frame(y, x1, x2)
## Fit the spline model and inspect the summary.
fit <- crs(y ~ x1 + x2, data = dat)
summary(fit)Use this when regression splines are the natural first tool. For the conceptual route, see Spline Primer.
np: kernel methods in serial
| Script | Main topic | Functions/features | Start reading here |
|---|---|---|---|
| np_regression_quickstart.R | Minimal kernel-regression workflow | npregbw, npreg |
Kernel Primer |
| np_regression_nomad_quickstart.R | Minimal LP NOMAD workflow | npreg, nomad = TRUE |
Kernel Primer |
| np_density_quickstart.R | Minimal density-estimation workflow | npudensbw, npudens |
Density, Distribution, Quantiles |
| np_distribution_quickstart.R | Minimal distribution-estimation workflow | npudistbw, npudist |
Density, Distribution, Quantiles |
| np_conditional_density_quickstart.R | Minimal conditional-density workflow | npcdensbw, npcdens |
Density, Distribution, Quantiles |
| np_conditional_distribution_quickstart.R | Minimal conditional-distribution workflow | npcdistbw, npcdist |
Density, Distribution, Quantiles |
| np_quantile_quickstart.R | Minimal quantile-regression workflow | npcdistbw, npqreg |
Density, Distribution, Quantiles |
| np_copula_quickstart.R | Minimal copula-estimation workflow | npudistbw, npcopula |
Density, Distribution, Quantiles |
| np_classification_quickstart.R | Minimal classification / conditional-mode workflow | npconmode |
Classification and Modes |
| np_plotting_quickstart.R | Minimal plotting and interval workflow | npreg, plot, predict |
Plotting and Intervals |
| np_entropy_quickstart.R | Minimal entropy/testing workflow | npunitest |
Entropy and Testing |
| np_semiparametric_quickstart.R | Minimal semiparametric workflow | npplreg |
Semiparametric Models |
| np_instrumental_regression_quickstart.R | Minimal instrumental-regression workflow | npregiv |
Kernel Methods |
| np_significance_quickstart.R | Minimal significance-testing workflow | npreg, npsigtest |
Significance and Specification |
| np_specification_quickstart.R | Minimal model-specification workflow | lm, npcmstest |
Significance and Specification |
Additional serial scripts
| Script | Main topic | Functions/features | Start reading here |
|---|---|---|---|
| regression_intro_a.R | Univariate regression and plotting | npreg, local constant, local linear |
Kernel Primer |
| regression_intro_b.R | Derivative estimation | npreg, derivative output |
Plotting and Intervals |
| regression_intro_c.R | Plotting fitted objects and intervals | plot(), asymptotic and bootstrap error handling |
Plotting and Intervals |
| regression_multivar_a.R | Multivariate regression | mixed predictors, multivariate fit | Multivariate Regression and Prediction |
np: practitioner-oriented extras
These are compact workflows drawn from the practitioner-oriented material in the Cambridge manuscript. They are useful when the applied task is not just regression fitting.
| Script | Main topic | Functions/features | Start reading here |
|---|---|---|---|
| np_probability_quickstart.R | Smooth probability estimation on discrete support | npudens, Aitchison-Aitken kernel |
Density, Distribution, Quantiles |
| np_density_resample_quickstart.R | Smooth resampling from a fitted density | npudensbw, npudens, Gaussian-kernel resampling |
Density, Distribution, Quantiles |
| np_conditional_density_resample_quickstart.R | Smooth resampling from a fitted conditional density | npcdensbw, npcdens, weighted conditional resampling |
Density, Distribution, Quantiles |
npRmpi: modern session-mode quick start
If you want one current downloadable script before anything else, start here.
| Script | Main topic | Functions/features | Start reading here |
|---|---|---|---|
| nprmpi_session_quickstart.R | Modern session / spawn workflow |
npRmpi.init, npregbw, npreg |
MPI and Large Data |
| nprmpi_session_nomad_quickstart.R | Modern session LP NOMAD workflow |
npRmpi.init, npreg, nomad = TRUE |
MPI and Large Data |
| nprmpi_attach_quickstart.R | Modern attach-mode workflow | npRmpi.init(mode = \attach\), npregbw, npreg |
MPI and Large Data |
| nprmpi_profile_quickstart.R | Modern profile/manual-broadcast workflow | mpi.bcast.cmd, np.mpi.initialize, npregbw, npreg |
MPI and Large Data |
Inline source for common scripts
The blocks below are pulled directly from the script files in www/, so they stay aligned with the downloadable versions.
np: Kernel regression
Source file: np_regression_quickstart.R
## Minimal np regression example.
##
## The intended workflow is:
## 1. compute a bandwidth object,
## 2. fit the regression estimator,
## 3. inspect the result and a simple fitted curve.
library(np)
options(np.messages = FALSE)
data(cps71, package = "np")
dat <- cps71[, c("logwage", "age")]
## Select the bandwidth object, then fit the regression.
bw <- npregbw(logwage ~ age, data = dat, regtype = "ll", bwmethod = "cv.aic")
fit <- npreg(bws = bw, data = dat)
## Review the bandwidth choice and the fitted regression.
summary(bw)
summary(fit)
## Let the plot method handle the basic fitted-curve display.
plot(fit)np: Automatic LP degree search
Source file: np_regression_nomad_quickstart.R
library(np)
data(cps71, package = "np")
## Use the shortest modern LP route: fit directly with nomad = TRUE.
fit_lp <- npreg(logwage ~ age, data = cps71, nomad = TRUE)
## Plot first, then inspect the fitted object in text form.
plot(fit_lp)
summary(fit_lp)np: Density estimation
Source file: np_density_quickstart.R
## Minimal np density-estimation example.
##
## The intended workflow is:
## 1. compute a bandwidth object,
## 2. fit the density estimator,
## 3. inspect the result.
library(np)
options(np.messages = FALSE)
## Start with one variable so the density workflow is easy to read.
data(faithful, package = "datasets")
dat <- data.frame(waiting = faithful$waiting)
## Select the smoothing parameter, then fit the density.
bw <- npudensbw(~ waiting, data = dat, bwmethod = "cv.ml")
fhat <- npudens(bws = bw, data = dat)
## Review the bandwidth choice and the fitted density object.
summary(bw)
summary(fhat)np: Distribution estimation
Source file: np_distribution_quickstart.R
## Minimal np distribution example.
##
## This mirrors the usual density workflow but targets the
## unconditional distribution function instead.
library(np)
options(np.messages = FALSE)
## Mirror the basic density setup, but target the distribution instead.
data(faithful, package = "datasets")
dat <- data.frame(waiting = faithful$waiting)
## Select the bandwidth, then fit the unconditional distribution.
bw <- npudistbw(~ waiting, data = dat, nmulti = 1)
Fhat <- npudist(bws = bw, data = dat)
## Review the smoothing choice and the fitted distribution object.
summary(bw)
summary(Fhat)np: Conditional density estimation
Source file: np_conditional_density_quickstart.R
## Minimal np conditional-density example.
##
## This keeps the first run small enough to be practical while still
## showing the standard two-step workflow:
## 1. compute a bandwidth object,
## 2. fit the conditional-density estimator.
library(np)
options(np.messages = FALSE)
## Keep the first run small enough that the two-step workflow stays quick.
data(faithful, package = "datasets")
dat <- faithful[seq_len(120), c("eruptions", "waiting")]
## Select the bandwidth first, then fit the conditional density.
bw <- npcdensbw(eruptions ~ waiting, data = dat, nmulti = 1)
fhat <- npcdens(bws = bw, data = dat)
## Review both the smoothing choice and the fitted object.
summary(bw)
summary(fhat)np: Conditional distribution estimation
Source file: np_conditional_distribution_quickstart.R
## Minimal np conditional-distribution example.
##
## This uses a small first run so the standard two-step workflow stays
## copyable and practical.
library(np)
options(np.messages = FALSE)
## Work on a smaller slice so the first run stays easy to inspect.
data(faithful, package = "datasets")
dat <- faithful[seq_len(120), c("eruptions", "waiting")]
## Select the bandwidth, then fit the conditional distribution.
bw <- npcdistbw(eruptions ~ waiting, data = dat, nmulti = 1)
Fhat <- npcdist(bws = bw, data = dat)
## Review the bandwidth object and the fitted distribution.
summary(bw)
summary(Fhat)np: Conditional quantiles
Source file: np_quantile_quickstart.R
## Minimal np quantile-regression example.
##
## The key idea is to compute/select the conditional distribution once
## and then extract one or more quantiles from it.
library(np)
options(np.messages = FALSE)
## Keep the first quantile run compact and reproducible.
data(faithful, package = "datasets")
dat <- faithful[seq_len(120), c("eruptions", "waiting")]
## Build one conditional-distribution fit and request several quantiles.
qfit <- npqreg(eruptions ~ waiting,
data = dat,
tau = c(0.25, 0.50, 0.75),
nmulti = 1)
## Review the bandwidth choice and one representative fitted quantile.
summary(qfit$bws)
summary(qfit)
## Plot the overlaid fitted quantile curves.
plot(qfit)np: Copula estimation
Source file: np_copula_quickstart.R
## Minimal np copula example.
##
## This uses the direct formula interface and lets npcopula() build
## the corresponding marginal distribution bandwidth object internally.
library(np)
library(MASS)
set.seed(42)
n <- 1000
rho <- 0.95
Sigma <- matrix(c(1, rho, rho, 1), 2, 2)
## Simulate a simple bivariate sample with strong dependence.
dat <- as.data.frame(mvrnorm(n = n, mu = c(0, 0), Sigma = Sigma))
names(dat) <- c("x", "y")
## Let npcopula() create a small default probability grid.
copula_fit <- npcopula(~ x + y, data = dat, neval = 20)
## Inspect the fitted copula object and the retained bandwidth object.
summary(copula_fit)
summary(attr(copula_fit, "bws"))np: Classification and conditional mode
Source file: np_classification_quickstart.R
## Minimal np classification / conditional-mode example.
##
## This keeps the first run compact while still showing the basic
## nonparametric classification route.
library(np)
data(birthwt, package = "MASS")
## Class the discrete fields the way the estimator expects them.
birthwt$low <- factor(birthwt$low)
birthwt$smoke <- factor(birthwt$smoke)
birthwt$race <- factor(birthwt$race)
## Fit the conditional-mode classifier on a small practical formula.
fit <- npconmode(low ~ smoke + race + age + lwt, data = birthwt, nmulti = 1)
## Inspect the fitted object, then the implied confusion matrix.
summary(fit)
fit$confusion.matrixnp: Plotting and asymptotic intervals
Source file: np_plotting_quickstart.R
## Minimal np plotting and interval example.
##
## This fits a simple local-linear model and then shows the
## modern bootstrap plotting route with all interval/band types.
library(np)
options(np.messages = FALSE)
data(cps71, package = "np")
## Fit a simple local-linear regression object.
model.ll <- npreg(logwage ~ age, regtype = "ll", data = cps71)
## Save one example plot so the script works in non-interactive sessions too.
plot_path <- file.path(tempdir(), "np_plotting_quickstart.png")
png(plot_path, width = 700, height = 500)
plot(model.ll,
errors = "bootstrap",
bootstrap = "inid",
band = "all")
dev.off()
## Report where the rendered image landed.
cat("Saved plot to:", plot_path, "\n")np: Entropy and testing
Source file: np_entropy_quickstart.R
## Minimal np entropy/testing example.
##
## This uses the univariate density-equality test because it is a
## compact, fast first run.
library(np)
options(np.messages = FALSE)
## Generate two simple samples so the test output is easy to interpret.
set.seed(1234)
n <- 300
x <- rnorm(n)
y <- rnorm(n)
## Run a compact first test without bootstrap overhead.
test_out <- npunitest(x, y, bootstrap = FALSE)
## Inspect the test summary.
summary(test_out)np: Semiparametric models
Source file: np_semiparametric_quickstart.R
## Minimal np semiparametric example.
##
## This uses a partially linear model because it is the clearest
## lightweight entry point into the semiparametric family.
library(np)
options(np.messages = FALSE)
## Build a small partially linear data-generating setup.
set.seed(42)
n <- 200
x1 <- rnorm(n)
z <- runif(n)
y <- 1 + 2 * x1 + sin(2 * pi * z) + rnorm(n, sd = 0.2)
dat <- data.frame(y, x1, z)
## Fit the partially linear model.
fit <- npplreg(y ~ x1 | z, data = dat)
## Inspect the fitted semiparametric object.
summary(fit)np: Instrumental regression
Source file: np_instrumental_regression_quickstart.R
## Minimal np instrumental-regression example.
##
## This mirrors the basic one-endogenous-regressor setup used in the
## package demos while keeping the first run compact.
library(np)
## Build a small one-endogenous-regressor example with one instrument.
set.seed(42)
n <- 80
v <- rnorm(n, sd = 0.27)
eps <- rnorm(n, sd = 0.05)
u <- -0.5 * v + eps
w <- rnorm(n)
z <- 0.2 * w + v
y <- z^2 + u
## Fit the nonparametric IV regression.
fit_iv <- npregiv(y = y, z = z, w = w, method = "Tikhonov", nmulti = 1)
## Inspect the fitted IV object.
summary(fit_iv)np: Significance testing
Source file: np_significance_quickstart.R
## Minimal np significance-testing example.
##
## The idea is to fit a model with one irrelevant regressor and then
## ask whether the nonparametric significance test detects that.
library(np)
options(np.messages = FALSE)
## Generate one relevant and one irrelevant regressor on purpose.
set.seed(42)
n <- 200
z <- factor(rbinom(n, 1, 0.5))
x1 <- rnorm(n)
x2 <- runif(n, -2, 2)
y <- x1 + x2 + rnorm(n)
dat <- data.frame(z, x1, x2, y)
## Fit the model before asking the significance question.
fit <- npreg(y ~ z + x1 + x2,
regtype = "ll",
bwmethod = "cv.aic",
data = dat)
## Test the fitted object and inspect both summaries.
test_out <- npsigtest(fit)
summary(fit)
summary(test_out)np: Model specification testing
Source file: np_specification_quickstart.R
## Minimal np model-specification test example.
##
## The idea is to fit a simple linear model to nonlinear data and then
## ask whether the parametric specification looks too restrictive.
library(np)
options(np.messages = FALSE)
## Simulate nonlinear data, then fit an intentionally simple linear model.
set.seed(42)
n <- 120
x <- runif(n, -2, 2)
y <- x + x^2 + rnorm(n, sd = 0.25)
model_ols <- lm(y ~ x, x = TRUE, y = TRUE)
X <- data.frame(x = x)
## Compare the parametric model to the nonparametric alternative.
test_out <- npcmstest(model = model_ols,
xdat = X,
ydat = y,
nmulti = 1)
## Inspect both the linear fit and the specification test.
summary(model_ols)
summary(test_out)np: univariate regression starter
Source file: regression_intro_a.R
## Here is a simple illustration to help you get started with
## univariate kernel regression.
## First, let's grab some data from the np package
## Load the np package
library(np)
## Load the cps71 dataset contained in the np package
data(cps71)
## Attach the data so that the variables `logwage' and `age' can be
## called directly
attach(cps71)
## Fit a (default) local constant model (since we do not explicitly
## call npregbw() which conducts least-squares cross-validated
## bandwidth selection by default it is automatically invoked when we
## call npreg())
model.lc <- npreg(logwage~age)
## Plot the local-constant fit. By default the plot method overlays the
## observed data, so we do not have to draw the raw sample first.
plot(model.lc)
## Fit a local linear model (we use the arguments regtype="ll" to do
## this)
model.ll <- npreg(logwage~age,regtype="ll")
## Add the local-linear fit with a different color and linetype
lines(age,fitted(model.ll),col=2,lty=2)
## Add a legend
legend("topleft",
c("Local Constant","Local Linear"),
lty=c(1,2),
col=c(1,2),
bty="n")np: multivariate regression and plotting
Source file: regression_multivar_a.R
## Here is a simple illustration to help you get started with
## multivariate kernel regression and plotting via R's `plot' function
## (which dispatches to the `plot.np' S3 method family)
## First, let's grab some data from the np package
## Load the np package
library(np)
## Load the wage1 dataset contained in the np package
data(wage1)
## Attach the data so that the variables `lwage', `female', `educ' and
## `exper' can be called directly
attach(wage1)
## Fit a local linear model (since we do not explicitly call npregbw()
## which conducts least-squares cross-validated bandwidth selection by
## default it is automatically invoked when we call npreg()). Here we
## have a `factor' (female) and two `numeric' predictors (educ and
## exper - see ?wage1 for details)
model <- npreg(lwage~female+educ+exper,regtype="ll")
## model will be an object of class `npreg'. The generic R function
## `plot' will dispatch to the `plot.np' S3 methods when it is deployed
## on an object of this type (see ?plot.np for details on supported
## plotting arguments). Calling plot on a npreg object allows you to do some
## tedious things without having to write code such as including
## confidence intervals as the following example demonstrates. Note
## also that we do not explicitly have to specify `gradients=TRUE' in
## the call to npreg() as plot.np will take care of this for
## us. Below we use the asymptotic standard error estimates and then
## take +- 1.96 standard error)
plot(model, errors = "asymptotic")
## We might also wish to use bootstrapping instead (here we bootstrap
## the standard errors and then take +- 1.96 standard error)
plot(model, errors = "bootstrap")
## Alternately, we might compare the modern pointwise, Bonferroni, and
## simultaneous bootstrap error bounds on the same plot.
plot(model, errors = "bootstrap", band = "all")
## Note that adding the argument `gradients=TRUE' to the plot call
## will automatically plot the derivatives instead
plot(model, errors = "bootstrap", band = "all", gradients = TRUE)npRmpi: Session / spawn mode
Source file: nprmpi_session_quickstart.R
## Minimal modern npRmpi example.
##
## The intended workflow is:
## 1. initialize MPI once in session/spawn mode,
## 2. write ordinary np-style code,
## 3. quit cleanly at the end.
library(npRmpi)
## Initialize once, then work as if this were an ordinary np script.
npRmpi.init(nslaves = 1)
set.seed(1)
x <- runif(200)
y <- sin(2 * pi * x) + rnorm(200, sd = 0.2)
dat <- data.frame(y, x)
## Fit the bandwidth and regression objects.
bw <- npregbw(y ~ x, regtype = "ll", bwmethod = "cv.ls", data = dat)
fit <- npreg(bws = bw, data = dat)
## Review the objects, plot the fit, then exit cleanly.
summary(bw)
summary(fit)
plot(fit)
npRmpi.quit()npRmpi: Session mode with nomad = TRUE
Source file: nprmpi_session_nomad_quickstart.R
## Minimal modern npRmpi NOMAD example.
##
## The intended workflow is:
## 1. initialize MPI once,
## 2. use the same nomad = TRUE shortcut available in np,
## 3. inspect the normalized shortcut metadata,
## 4. quit cleanly at the end.
if (!requireNamespace("crs", quietly = TRUE)) {
stop("This quickstart uses nomad = TRUE, which requires the 'crs' package ",
"for NOMAD degree search. Install it with install.packages('crs').")
}
library(npRmpi)
## Initialize once, then write ordinary np-style code.
npRmpi.init(nslaves = 1)
set.seed(7)
n <- 120
x <- runif(n, -1, 1)
y <- x + 0.4 * x^2 + rnorm(n, sd = 0.18)
dat <- data.frame(y, x)
## Fit the LP shortcut and inspect the normalized metadata.
fit <- npreg(y ~ x, data = dat, nomad = TRUE, degree.max = 2L, nmulti = 1L)
fit$bws$nomad.shortcut
summary(fit)
## Plot the fitted object before quitting cleanly.
plot(fit)
npRmpi.quit()npRmpi: Attach mode
Source file: nprmpi_attach_quickstart.R
## Minimal attach-mode npRmpi example.
##
## Launch with a pre-created MPI world, for example:
## mpiexec -env R_PROFILE_USER "" -env R_PROFILE "" -n 2 \
## Rscript --no-save nprmpi_attach_quickstart.R
library(npRmpi)
## Initialize under an already-created MPI world.
npRmpi.init(mode = "attach")
if (mpi.comm.rank(0L) == 0L) {
## Build the data and fit on the coordinator rank.
set.seed(1)
x <- runif(200)
y <- sin(2 * pi * x) + rnorm(200, sd = 0.2)
dat <- data.frame(y, x)
bw <- npregbw(y ~ x, regtype = "ll", bwmethod = "cv.ls", data = dat)
fit <- npreg(bws = bw, data = dat)
## Inspect the fitted objects, then shut down cleanly.
summary(bw)
summary(fit)
npRmpi.quit(mode = "attach")
}npRmpi: Profile / manual-broadcast mode
Source file: nprmpi_profile_quickstart.R
## Minimal profile/manual-broadcast npRmpi example.
##
## Launch with an explicit profile source, for example:
## RPROFILE=$(Rscript --no-save -e 'cat(system.file("Rprofile", package="npRmpi"))')
## mpiexec -env R_PROFILE_USER "$RPROFILE" -env R_PROFILE "" -n 2 \
## Rscript --no-save nprmpi_profile_quickstart.R
## Initialize the workers through the profile route.
invisible(mpi.bcast.cmd(np.mpi.initialize(), caller.execute = TRUE))
## Build the data once on the caller and broadcast it.
set.seed(1)
x <- runif(200)
y <- sin(2 * pi * x) + rnorm(200, sd = 0.2)
dat <- data.frame(y, x)
invisible(mpi.bcast.Robj2slave(dat))
## Fit the bandwidth and regression objects on the workers.
invisible(mpi.bcast.cmd(bw <- npregbw(y ~ x, regtype = "ll", bwmethod = "cv.ls", data = dat),
caller.execute = TRUE))
invisible(mpi.bcast.cmd(fit <- npreg(bws = bw, data = dat),
caller.execute = TRUE))
## Inspect the results, then stop the MPI workers.
summary(bw)
summary(fit)
invisible(mpi.bcast.cmd(mpi.quit(), caller.execute = TRUE))npRmpi: serial and MPI comparison scripts
These are older comparison scripts, but still useful if you want to see side-by-side serial and MPI routes. For new work, start with the session / spawn example above and then come back to these when you want route parity or legacy comparison.
| Task | Serial | MPI | Start reading here |
|---|---|---|---|
| Conditional density estimation | npcdensls_serial.R | npcdensls_npRmpi.R | Density, Distribution, Quantiles |
| Model specification test | npcmstest_serial.R | npcmstest_npRmpi.R | Significance and Specification |
| Conditional mode estimation | npconmode_serial.R | npconmode_npRmpi.R | Classification and Modes |
| Density equality test | npdeneqtest_serial.R | npdeneqtest_npRmpi.R | Entropy and Testing |
| Single index estimation | npindexich_serial.R | npindexich_npRmpi.R | Semiparametric Models |
| Partially linear regression | npplreg_serial.R | npplreg_npRmpi.R | Semiparametric Models |
| Local linear AIC bandwidth selection | npregllaic_serial.R | npregllaic_npRmpi.R | Kernel Primer |
| Serial dependence test | npsdeptest_serial.R | npsdeptest_npRmpi.R | Entropy and Testing |
| Significance test | npsigtest_serial.R | npsigtest_npRmpi.R | Significance and Specification |
| Unconditional density estimation | npudensml_serial.R | npudensml_npRmpi.R | Density, Distribution, Quantiles |
npRmpi: local polynomial / constrained examples
The older npglpreg route is deprecated. These retained local polynomial scripts use the current npregbw() + npreghat() route instead. For the automatic LP replacement path, use npreg(..., nomad = TRUE) in np or npRmpi.
| Script | Main topic |
|---|---|
| lp_k1_prodfunc.R | Production-function style local polynomial example |
| lp_k1.R | Local polynomial example |
| lp_radial_mean.R | Constrained radial mean example |
| lp_radial_deriv.R | Constrained radial derivative example |
crs: spline examples
| Script | Main topic | Notes |
|---|---|---|
| crs_quickstart.R | Minimal spline-regression workflow | modern quickstart |
| radial_rgl.R | Bivariate radial spline surface | requires rgl |
| sine_rgl.R | Bivariate sine spline surface | requires rgl |
| radial_constrained_mean.R | Constrained spline mean estimation | uses quadprog |
| radial_constrained_first_partial.R | Constrained first derivative | uses quadprog |
| radial_constrained_second_partial.R | Constrained second derivative | uses quadprog |
crs: Spline regression
Source file: crs_quickstart.R
## Minimal crs spline-regression example.
##
## This is the smallest useful workflow:
## 1. fit a spline model,
## 2. inspect the summary,
## 3. optionally move on to plotting or tighter search control.
library(crs)
options(crs.messages = FALSE)
## Generate a simple nonlinear surface with two predictors.
set.seed(42)
n <- 250
x1 <- runif(n)
x2 <- runif(n)
y <- sin(2 * pi * x1) + x2 + rnorm(n, sd = 0.2)
dat <- data.frame(y, x1, x2)
## Fit the spline model and inspect the summary.
fit <- crs(y ~ x1 + x2, data = dat)
summary(fit)crs: Instrumental spline regression
Source file: crs_iv_quickstart.R
## Minimal crs instrumental-regression example.
##
## This is a compact first run for spline-based IV estimation.
library(crs)
## Build a small IV example with one endogenous regressor and one instrument.
set.seed(42)
n <- 100
v <- rnorm(n, sd = 0.27)
eps <- rnorm(n, sd = 0.05)
u <- -0.5 * v + eps
w <- rnorm(n)
z <- 0.2 * w + v
y <- z^2 + u
## Fit the spline IV model.
fit_iv <- crsiv(y = y,
z = z,
w = w,
method = "Landweber-Fridman",
cv = "exhaustive",
nmulti = 1,
cv.threshold = 0)
## Inspect the fitted IV object.
summary(fit_iv)Interactive demos for teaching and exploration
| Script | Main topic | Notes |
|---|---|---|
| manipulate_density.R | Univariate density with sliders | RStudio + manipulate |
| manipulate_eruptions.R | Old Faithful density | RStudio + manipulate |
| manipulate_distribution.R | Univariate distribution | RStudio + manipulate |
| manipulate_bivariate_density.R | Bivariate density | RStudio + manipulate |
| manipulate_faithful_density.R | Old Faithful bivariate density | RStudio + manipulate |
| manipulate_bivariate_distribution.R | Bivariate distribution | RStudio + manipulate |
| manipulate_wage1.R | Multivariate regression partial plots | RStudio + manipulate |
| manipulate_constrained_local_polynomial.R | Constrained local polynomial regression | requires quadprog |
| manipulate_constrained_local_polynomial_production.R | Constrained production function | requires quadprog |
| manipulate_constrained_spline.R | Constrained spline surface | requires quadprog |
| manipulate_constrained_spline_derivative.R | Constrained spline derivative | requires quadprog |
| manipulate_copula.R | Copula plots | requires mnormt |
| manipulate_socco.R | SOCCO nonlinear-system demo | requires data.RData and figures.R |
Notes
- The gallery still preserves the original scripts, but the site now aims to route you to them more directly.
- The short blocks near the top are there so you can copy a minimal working pattern without downloading anything first.
- For MPI-specific launch semantics, see MPI and Large Data.
- For short copyable code blocks rather than full scripts, start with Worked Examples.