Learn R Programming

BACCO (version 1.0-50)

tt.fun: Integrals needed in KOH2001

Description

Calculates the three integrals needed for V, under the restrictions specified in the KOH2001 supplement.

Usage

tt.fun(D1, extractor, x.i, x.j,  test.for.symmetry=FALSE, method=1, phi)
ht.fun(x.i, x.j, D1, extractor,  Edash.theta,  H1, fast.but.opaque=TRUE,
x.star=NULL, t.vec=NULL, phi) 
hh.fun(x.i, x.j,  H1, E.theta,  phi)
t.fun(x, D1, extractor,  phi)

Arguments

D1
Matrix of code run points
H1
regression basis functions for D1
extractor
Function to extract x.star and t.vec from D1
x
Lat and long of a point in t.fun() (eg D2[1,])
x.i
Lat and long of first point (eg D2[1,])
x.j
Lat and long of second point (eg D2[2,])
theta
parameters
Edash.theta
Function to return expectation of H with respect to the alternative distribution of $\theta$; Edash.theta.toy is the example for the toy dataset
E.theta
Function to return expectation of H with respect to $\theta$
test.for.symmetry
In tt.fun(), Boolean with TRUE meaning to calculate each element of $C$ explicitly. If FALSE, then calculate only the elements of $C$ that lie on or over the diagonal and use the fact that $C$ is sym
fast.but.opaque
In ht.fun(), Boolean with default TRUE meaning to pass some precalculated results as arguments, to save time. Set this argument to FALSE only when debugging.
x.star
In ht.fun(), value of $x^*$ (required only if fast.but.opaque is TRUE)
t.vec
In ht.fun(), value of $t$ (required only if fast.but.opaque is TRUE)
method
In tt.fun(), zero means use the old method and nonzero means use the new method. The new method is faster, but the code is harder to understand. The two methods should give identical results.
phi
Hyperparameters

Value

  • Each function returns a matrix as described in KOH2001.

Details

The four functions return integrals representing means taken over theta. To wit:
  • Functiontt.fun()evaluates$$\int t(x_j,\theta)t(x_i,\theta)^Tp(\theta)d\theta$$and is used inV.fun(). Note that this function is symmetric in$x_i$and$x_j$.
  • Functionht.fun()evaluates$$\int h_1(x_j,\theta)t(x_i,\theta)^Tp(\theta)d\theta$$and is used inV.fun(). Note that this function is {notsymmetric in$x_i$and$x_j$.
  • Functionhh.fun()evaluates$$\int h_1(x_j,\theta)h_1(x_i,\theta)^Tp(\theta)d\theta$$and is used inV.fun(). Note that this function is symmetric in$x_i$and$x_j$.
  • Functiont.fun()evaluates$$\int t(x_i,\theta)^Tp(\theta)d\theta= \int c_1\left( (x_i,\theta),(x_j^*,t_j)\right)p(\theta)\,d\theta$$using the formula$$\sigma_1^2\left|I+2V_\theta\Omega_x\right|^{-1/2} \exp\left{ -\left(x_i-x_j^*\right)^T\Omega_x\left(x_i-x_j^*\right) \right}\times \exp\left{ -\left(m_\theta-t_j\right)^T \left(2V_\theta+\Omega_t^{-1}\right)^{-1} \left(m_\theta-t_j\right)\right}.$$It is used inEz_eq7.supp(). NB: do not confuse this function withtee(), which is different.

These functions are not generally of much interest to the end user; they are called by V.fun(). They are defined separately as a debugging aid, and to simplify the structure of V.fun().

References

M. C. Kennedy and A. O'Hagan 2001. Bayesian calibration of computer models. Journal of the Royal Statistical Society B, 63(3) pp425-464 M. C. Kennedy and A. O'Hagan 2001. Supplementary details on Bayesian calibration of computer models, Internal report, University of Sheffield. Available at http://www.shef.ac.uk/~st1ao/ps/calsup.ps R. K. S. Hankin 2005. Introducing BACCO, an R bundle for Bayesian analysis of computer code output, Journal of Statistical Software, 14(16)

See Also

V.fun

Examples

Run this code
data(toys)

tt.fun(D1=D1.toy, extractor=extractor.toy, x.i=D2.toy[1,],
    x.j=D2.toy[2,],  phi=phi.toy)

ht.fun(x.i=D2.toy[1,], x.j=D2.toy[2,], D1=D1.toy,
    extractor=extractor.toy, 
    Edash.theta=Edash.theta.toy, H1=H1.toy, fast.but.opaque=FALSE, phi=phi.toy)

ht.fun(x.i=D2.toy[1,], x.j=D2.toy[2,], D1=D1.toy,
    extractor=extractor.toy, 
    Edash.theta=Edash.theta.toy, H1=H1.toy, fast.but.opaque=TRUE,
    x.star=extractor.toy(D1.toy)$x.star, t.vec=extractor.toy(D1.toy)$t.vec,
    phi=phi.toy)



hh.fun(x.i=D2.toy[1,], x.j=D2.toy[2,],
    H1=H1.toy, E.theta=E.theta.toy,  phi=phi.toy)

t.fun(x=x.toy, D1=D1.toy, extractor=extractor.toy, phi=phi.toy)

Run the code above in your browser using DataLab