Skip to contents

Geometric smoothing and conditional expectation methods for coordinate data, point clouds, and weighted graphs. The package provides local polynomial, model-averaged, trend-filtering, graph low-pass, occupation-density, and Hessian-energy methods.

Start here

Use browseVignettes("geosmooth") to open the installed HTML guides, including vignette("function-guide", package = "geosmooth"). The online guide links to the full reference. The task links below work in installed help without an internet connection.

Finding a function

Read vignette("function-guide", package = "geosmooth") for a task-based guide to all exported functions, prediction limits, and examples.

Local regression

Start with fit.lps or fit.malps.

Lifting trend filters

Use fit.lpl.tf or fit.slpl.tf for residual penalties with optional prediction synchronization.

Graph smoothing

Use fit.metric.graph.lowpass for spectral smoothing or fit.graph.trend.filtering for graph-difference penalties.

Hessian penalties

Use fit.ssrhe.hessian.regression for quadratic energy or fit.ssrhe.hessian.l1.regression for an absolute-value penalty.

Probability mass

Use fit.density for support weights, fit.subject.od for repeated visits, and normalize.density to convert an existing fitted field.

Synthetic examples

Combine components with synthetic.spec and draw data with materialize.synthetic.

Author

Maintainer: Pawel Gajer pgajer@gmail.com

Authors:

Other contributors:

  • Gael Guennebaud (Eigen) [contributor]

  • Benoit Jacob (Eigen) [contributor]

  • Authors of Eigen (Authorship and copyright in the included Eigen library) [copyright holder]

  • Yixuan Qiu (Spectra) [contributor, copyright holder]

  • Contributors to Spectra (Copyright in the included Spectra library) [copyright holder]

  • Sunil Arya (ANN) [contributor, copyright holder]

  • David M. Mount (ANN) [contributor, copyright holder]

  • University of Maryland (ANN) [copyright holder]

Examples

X <- matrix(seq(0, 1, length.out = 30), ncol = 1)
y <- sin(2 * pi * X[, 1])
fit <- fit.lps(X, y, support.grid = 8L, degree.grid = 1L,
               kernel.grid = "tricube", foldid = rep(1:3, 10))
head(predict(fit))
#> [1] 0.0283661 0.2128329 0.3940040 0.5728866 0.7214988 0.8363744