phi.fun.toy {calibrator} | R Documentation |
Function to create (phi.fun.toy
) or modify
(phi.change
) toy hyperparameters phi
in a form suitable for passing to the other functions in the library.
The user should never make phi by hand; always use one of these functions
phi.fun.toy(rho, lambda, psi1, psi1.apriori, psi2, psi2.apriori, theta.apriori, power) phi.change(phi.fun, old.phi = NULL, rho = NULL, lambda = NULL, psi1 = NULL, psi1.apriori=NULL, psi1.apriori.mean=NULL, psi1.apriori.sigma=NULL, psi2 = NULL, psi2.apriori=NULL, psi2.apriori.mean=NULL, psi2.apriori.sigma=NULL, theta.apriori=NULL, theta.apriori.mean=NULL, theta.apriori.sigma=NULL, power=NULL)
phi.fun |
In phi.change() , the name of the function that
creates the hyperparameters. Use phi.fun.toy() for the toy
dataset
|
old.phi |
In function phi.change() , the hyperparameter
object phi to be modified
|
rho |
Correlation hyperparameter appearing in main equation |
lambda |
Noise hyperparameter |
psi1 |
Roughness lengths hyperparameter for design matrix
D1 . Internal function pdm.maker.psi1() takes
psi1 as an argument and returns omega_x ,
omega_t and sigma1squared .
Recall that omega_x and omega_t are arbitrary functions of psi1. In this case, the values are omega_x=psi1[1:2] , omega_t=psi1[3:4]
and sigma1squared=psi1[6] |
psi1.apriori |
A priori PDF for psi1. In the form
of a two element list with first element (mean ) the mean and
second element (sigma ) the covariance matrix; distribution of
the logarithms is assumed to be multivariate normal. In the toy
example, the mean is a vector of length six (the first five are
psi1 and the sixth is for
sigma1squared), and the variance is the
corresponding six-by-six matrix. Use function prob.psi1() to
calculate the apriori probability density for a particular value of
psi1 |
psi1.apriori.mean |
In function phi.change.toy() , use this
argument to change just the mean of psi1 (and leave the value
of sigma unchanged) |
psi1.apriori.sigma |
In function phi.change.toy() , use
this argument to change just the variance matrix of psi1 |
psi2 |
Roughness lengths hyperparameter for D2 .
Internal function pdm.maker.psi2() takes psi2 as an
argument and returns omegastar_x and sigma2squared .
In phi.fun.toy() , the values are omegastar_x=psi2[1:2]
and sigma2squared=psi2[3] .
NB: function stage2() optimizes more than just psi2 .
It simultaneously optimizes psi2 and lambda and
rho |
psi2.apriori |
A priori PDF for psi2 and
hyperparameters rho and lambda (in that
order).
As for psi1.apriori , this is in the form of a list with the
first element (mean ) the mean and second element
(sigma ) the covariance matrix; the logs are multivariate
normal. In the toy example, the mean is a vector of length five.
The first and second elements of the mean are the apriori mean of
rho and lambda respectively; the third
and fourth elements are the apriori mean of psi2 (that
is, x and y respectively); and the fifth is the mean
of sigma2squared.
The second element of phi.toy$psi2.apriori , sigma , is
the corresponding four-by-four variance matrix. Use function
prob.psi2() to calculate the apriori probability density of a
particular value of psi2 |
psi2.apriori.mean |
In phi.change.toy() , use to change
just the mean of psi2 |
psi2.apriori.sigma |
In
phi.change.toy() , use to change just the variance matrix of
psi2 |
theta.apriori |
Apriori PDF for
theta. As above, in the form of a list with elements
for the mean and covariance. The distribution is multivariate
normal (NB: The distribution is multivariate normal and NOT
lognormal! To be explicit: log(theta) is
lognormally distributed). Use function prob.theta() to
calculate the apriori probability density of a particular value of
theta |
theta.apriori.mean |
In phi.change.toy() , use to change
just the mean of theta |
theta.apriori.sigma |
In phi.change.toy() ,
use to change just the variance matrix of theta |
power |
Exponent of the exponential as passed to
corr.matrix() (and thence to corr() ) of package
emulator . For the general case of nondiagonal
positive.definite.matrix , the metric is exp(-abs( (x-x')^T B (x-x')
)^(power/2)), thus reducing to the standard case for
power =2.
Note that power is not a hyperparameter according to KOH2001,
but is included here because it's appropriate and convenient. A
disadvantage of the present system is that the
distance.function argument to the corr.matrix()
function is hardwired to be corr |
Note that this toy function contains within itself
pdm.maker.toy()
which extracts omega_x
and
omega_t
and sigma1squared
from psi1
.
This will need to be changed for real-world applications.
Earlier versions of the package had pdm.maker.toy()
defined separately.
Returns a list of several elements:
rho |
Correlation hyperparameter |
lambda |
Noise hyperparameter |
psi1 |
Roughness lengths hyperparameter for D1 |
psi1.apriori |
Apriori mean and variance matrix for psi1 |
psi2 |
Roughness lengths hyperparameter for D2 |
psi2.apriori |
Apriori mean and variance matrix for psi2 |
theta.apriori |
Apriori mean and variance matrix for the parameters |
power |
Power for use in the correlation matrix |
omega_x |
Positive definite matrix for the lat/long part of
D1 , whose diagonal is psi1[1:2] |
omega_t |
Positive definite matrix for the code parameters theta,
whose diagonal is psi1[3:5] |
omegastar_x |
Positive definite matrix for use in equation 13 of
the supplement; represents distances between rows of D2 |
sigma1squared |
variance |
sigma2squared |
variance |
omega_x.upper |
Upper triangular Cholesky decomposition for omega_x |
omega_x.lower |
Lower triangular Cholesky decomposition for omega_x |
omega_t.upper |
Upper triangular Cholesky decomposition for omega_t |
omega_t.lower |
Lower triangular Cholesky decomposition for omega_t |
a |
Precalculated matrix for use in
Edash.theta(...,fast.but.opaque=TRUE) |
b |
Precalculated matrix for use in
Edash.theta(...,fast.but.opaque=TRUE) |
c |
Precalculated scalar for use in
ht.fun(...,fast.but.opaque=TRUE) |
A |
Precalculated scalarfor use in
tt.fun() |
A.upper |
Upper triangular Cholesky decomposition for A |
A.lower |
Lower triangular Cholesky decomposition for A |
Robin K. S. Hankin
phi.fun.toy(100,101,1:6,list(mean=rep(1,6),sigma=1+diag(6)),50:55, list(mean=rep(0,4),sigma=0.1+diag(4)), list(mean=0.1+(1:3),sigma=2.1+diag(3)), 2) phi.fun.toy(rho=1, lambda=1, psi1 = structure(c(1.1, 1.2, 1.3, 1.4,1.5,0.7), .Names = c("x", "y", "A","B", "C","s1sq")), psi1.apriori = list(mean=rep(0,6),sigma=0.4+diag(6)),psi2=structure(c(2.1, 2.2), .Names = c("x","y")), psi2.apriori = list(mean=rep(0,5),sigma=0.2+diag(5)), theta.apriori = list(mean=0.1+(1:3),sigma=2.1+diag(3)), power=2) data(toys) phi.change(phi.fun=phi.fun.toy, old.phi = phi.toy, rho = 100) phi.change(phi.fun=phi.fun.toy, old.phi = phi.toy, theta.apriori.sigma = 4*diag(3)) identical(phi.toy, phi.change(phi.fun=phi.fun.toy, old.phi=phi.toy))