calibrator (version 1.2-8)

betahat.fun.koh: Expectation of beta, given theta, phi and d

Description

Determines the mean of \(\beta\), given parameters \(\theta\), hyperparameters \(\phi\), and the vector of code outputs and observations \(d\). It is named so as to avoid conflict with function betahat.fun of package emulator.

Usage

betahat.fun.koh(D1, D2, H1, H2, theta, d, phi)
betahat.fun.koh.vector(D1, D2, H1, H2, theta, d, phi)

Arguments

D1

Matrix whose rows are observation points and parameter values at which the code has been run

D2

Matrix whose rows are the observation points

H1

Regression function for D1

H2

Regression function for D2

theta

Parameters

d

Vector of code outputs and observations

phi

Hyperparameters

Details

This function is defined between equations 2 and 3 of the supplement. It is used in functions Ez.eqn9.supp() and p.eqn8.supp().

The user should always use betahat.fun.koh(), which is a wrapper for betahat.fun.koh.vector(). The forms differ in their treatment of \(\theta\). In the former, \(\theta\) must be a vector; in the latter, \(\theta\) may be a matrix, in which case betahat.fun.koh.vector() is applied to the rows.

In betahat.fun.koh(), the rownames are assigned by a kludgy call to H.fun(), which itself uses a kludge to determine colnames.

The function returns $$ \hat{\mathbf\beta} (\theta)= {\mathbf W}(\theta)^T {\mathbf H}(\theta)^T {\mathbf V}_d(\theta)^{-1}{\mathbf d}. $$

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.tonyohagan.co.uk/academic/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)

Examples

Run this code
# NOT RUN {
data(toys)
betahat.fun.koh(theta=theta.toy, d=d.toy, D1=D1.toy, D2=D2.toy,
      H1=H1.toy, H2=H2.toy, phi=phi.toy)

betahat.fun.koh.vector(theta=theta.toy, d=d.toy, D1=D1.toy,
      D2=D2.toy, H1=H1.toy, H2=H2.toy, phi=phi.toy)
## should be identical

jj.theta <- rbind(theta.toy,theta.toy+1,theta.toy+2,theta.toy*0)
betahat.fun.koh(theta=jj.theta, d=d.toy, D1=D1.toy, D2=D2.toy,
     H1=H1.toy, H2=H2.toy, phi=phi.toy)

## Now try with true hyperparameters:
phi.true <- phi.true.toy(phi=phi.toy)

## And magically create the REAL parameters:
theta.REAL <- create.new.toy.datasets(export=TRUE)$REAL.PARAMS
jj.theta <- rbind(jj.theta, theta.REAL)

## Generate some data:
jj <- create.new.toy.datasets(D1.toy , D2.toy)
d.toy <- jj$d.toy


## And finally, observe that the estimated values for beta are pretty
## close to the real values (which omniscient beings can extract using
## reality() and computer.model()):

betahat.fun.koh(theta=jj.theta, d=d.toy, D1=D1.toy, D2=D2.toy,
       H1=H1.toy, H2=H2.toy, phi=phi.true)

## [
##  that is, compare the last column of the above with
##  c(computer.model(ex=T)$REAL.COEFFS, reality(ex=T)$REAL.BETA2)
## ]


# }

Run the code above in your browser using DataCamp Workspace