| design {pomp} | R Documentation | 
Design matrices for pomp calculations
Description
These functions are useful for generating designs for the exploration of parameter space.
profile_design generates a data-frame where each row can be used as the starting point for a profile likelihood calculation.
runif_design generates a design based on random samples from a multivariate uniform distribution.
slice_design generates points along slices through a specified point.
sobol_design generates a Latin hypercube design based on the Sobol' low-discrepancy sequence.
Usage
profile_design(
  ...,
  lower,
  upper,
  nprof,
  type = c("runif", "sobol"),
  stringsAsFactors = getOption("stringsAsFactors", FALSE)
)
runif_design(lower = numeric(0), upper = numeric(0), nseq)
slice_design(center, ...)
sobol_design(lower = numeric(0), upper = numeric(0), nseq)
Arguments
... | 
 In   | 
lower, upper | 
 named numeric vectors giving the lower and upper bounds of the ranges, respectively.  | 
nprof | 
 The number of points per profile point.  | 
type | 
 the type of design to use.
  | 
stringsAsFactors | 
 should character vectors be converted to factors?  | 
nseq | 
 Total number of points requested.  | 
center | 
 
  | 
Details
The Sobol' sequence generation is performed using codes from the NLopt library by S. Johnson.
Value
profile_design returns a data frame with nprof points per profile point.
runif_design returns a data frame with nseq rows and one column for each variable named in lower and upper.
slice_design returns a data frame with one row per point.
The ‘slice’ variable indicates which slice the point belongs to.
sobol_design returns a data frame with nseq rows and one column for each variable named in lower and upper.
Author(s)
Aaron A. King
References
S. Kucherenko and Y. Sytsko. Application of deterministic low-discrepancy sequences in global optimization. Computational Optimization and Applications 30, 297–318, 2005. doi:10.1007/s10589-005-4615-1.
S.G. Johnson. The NLopt nonlinear-optimization package. https://github.com/stevengj/nlopt/.
P. Bratley and B.L. Fox. Algorithm 659 Implementing Sobol's quasirandom sequence generator. ACM Transactions on Mathematical Software 14, 88–100, 1988.
S. Joe and F.Y. Kuo. Remark on algorithm 659: Implementing Sobol' quasirandom sequence generator. ACM Transactions on Mathematical Software 29, 49–57, 2003.
Examples
## Sobol' low-discrepancy design
plot(sobol_design(lower=c(a=0,b=100),upper=c(b=200,a=1),nseq=100))
## Uniform random design
plot(runif_design(lower=c(a=0,b=100),upper=c(b=200,a=1),100))
## A one-parameter profile design:
x <- profile_design(p=1:10,lower=c(a=0,b=0),upper=c(a=1,b=5),nprof=20)
dim(x)
plot(x)
## A two-parameter profile design:
x <- profile_design(p=1:10,q=3:5,lower=c(a=0,b=0),upper=c(b=5,a=1),nprof=200)
dim(x)
plot(x)
## A two-parameter profile design with random points:
x <- profile_design(p=1:10,q=3:5,lower=c(a=0,b=0),upper=c(b=5,a=1),nprof=200,type="runif")
dim(x)
plot(x)
## A single 11-point slice through the point c(A=3,B=8,C=0) along the B direction.
x <- slice_design(center=c(A=3,B=8,C=0),B=seq(0,10,by=1))
dim(x)
plot(x)
## Two slices through the same point along the A and C directions.
x <- slice_design(c(A=3,B=8,C=0),A=seq(0,5,by=1),C=seq(0,5,length=11))
dim(x)
plot(x)