Robert B. Gramacy Professor of Statistics

Local Approximate Gaussian Process Regression

laGP is an R package providing approximate GP regression for large computer experiments and spatial datasets. The approximation is based on finding small local designs for prediction (independently) at particular inputs.

This software is licensed under the GNU Lesser Public License (LGPL), version 2 or later. See the change log and an archive of previous versions.

The current version provides:

  • ALC, MSPE and NN-based local approximation, as well as EFI-based global heuristics
  • local MLE/MAP inference for (isotropic and separable) lengthscales and nuggets
  • OpenMP for approximation over a vast out-of-sample testing set
  • GPU acceleration for local ALC subroutine evaluations
  • SNOW/parallel-package cluster parallelization
  • computer model calibration via optimization
  • blackbox constrained optimization via augmented Lagrangians
  • an interface to lower-level (full) GP inference and prediction

Obtaining the package

  • Download R from by selecting the version for your operating system.
  • Install the laGP package, from within R.
    R> install.packages(c("laGP"))
  • Optionally, install the mvtnorm, and snow packages, which are helpful for some of the comparisons in the examples and demos.
    R> install.packages(c("mvtnorm", "snow"))
  • Load the library as you would for any R library.
    R> library(laGP)


  • The laGP tutorial is implemented as a package vignette, authored in Sweave. The pdf can be obtained from within R with the following code.
    R> vignette("laGP")
  • To obtain the source code contained in the vignette, use the Stangle command.
    R> v <- vignette("laGP")
    R> Stangle(paste(v$Dir, "/doc/", v$File, sep=""))
  • The code from Section 4 of the vignette, on Calibration, is available as a standalone demo.
    R> demo("calib", package="laGP")
  • See the package documentation. A pdf version of the reference manual, or help pages, as also available. The help pages can be accessed from within R. Try starting with:
    R> help(package=laGP)
    R> ?laGP    # follow the examples
    R> ?aGP     # follow the examples - this is the main workhorse