osp.seq.design: Sequential design for optimal stopping

View source: R/ospSeqDesign.R

osp.seq.designR Documentation

Sequential design for optimal stopping

Description

Regression Monte Carlo via sequential experimental design. The experimental design is augmented one input at a time, using an Expected Improvement (EI) acquisition function. This is repeated at each time step. The method is likely to be somewhat slow, but highly efficient in its use of underlying simulations. See Gramacy & Ludkovski (2013), Ludkovski (2018) for details.

Usage

osp.seq.design(model, method = "km")

Arguments

model

a list containing all the model parameters.

The following model parameters are used:

  • init.size: size of starting grid (will be generated via lhs sampling if init.grid is not given)

  • pilot.nsims: number of pilot simulations to create the search space where new inputs will be added (Default is 5*model$init.size)

  • cand.len: number of candidate new inputs to be proposed. The next input is chosen greedily as the candidate that maximizes the EI criterion. Candidate inputs are selected via tgp::lhs (Default is 500*model$dim)

  • lhs.rect: specification of the bounding hyper-rectangle where search is conducted (Default: construct based on 0.02/0.98 quantiles of the pilot paths in each dimension)

  • update.freq: how often to re-fit the entire GP surrogate as new inputs are added (Default is 10)

  • batch.nrep (REQUIRED): number of replicates at each unique input

  • min.lengthscale: vector with minimum lengthscales of the surrogate (Default: 1

  • max.lengthscale: vector with maximum lengthscale of the surrogate (Default: 10x each of lhs.rect dimensions)

  • ei.func: acquisition function (cSUR by Default)

method

one of km, trainkm, homtp or hetgp to select the GP emulator to apply

Details

EI criteria are based on posterior and/or predictive variance and therefore require the use of a Gaussian-process based surrogate (currently from DiceKriging or hetGP).

Implements the EI strategy defined in model$ei.func. Calls lhs from library tgp. Empirical losses are computed using cf.el function. The acquisition function is specified via ei.func which can be csur (Default), sur, smcu, amcu, tmse and icu.

The experimental design is initialized via init.size/init.grid parameters and then is grown one input-at-a-time until it is of size model$seq.design.size. Thus, there are a total of seq.design.size-init.size sequential iterations.

Value

a list containing:

  • fit a list of fitted response surfaces.

  • timeElapsed,

  • nsims total number of 1-step sim.func calls

  • budget – number of sequential iterations per time-step

  • empLoss –matrix of empirical losses (rows for time-steps, columns for iterations)

  • theta.fit – 3d array of estimated lengthscales (sorted by time-steps,iterations,dimensions-of-x)

Author(s)

Mike Ludkovski

References

Mike Ludkovski, Kriging Metamodels and Experimental Design for Bermudan Option Pricing Journal of Computational Finance, 22(1), 37-77, 2018


mludkov/mlOSP documentation built on April 29, 2023, 7:56 p.m.