| krige.bayes {geoR} | R Documentation |
The function krige.bayes performs Bayesian analysis of
geostatistical data allowing specifications of
different levels of uncertainty in the model parameters.
It returns results on the posterior distributions for the model
parameters and on the predictive distributions for prediction
locations (if provided).
krige.bayes(geodata, coords = geodata$coords, data = geodata$data,
locations = "no", borders = NULL, model = model.control(),
prior = prior.control(), output = output.control())
model.control(trend.d = "cte", trend.l = "cte", cov.model = "matern",
kappa = 0.5, aniso.pars = NULL, lambda = 1)
prior.control(beta.prior = c("flat", "normal", "fixed"),
beta = NULL, beta.var.std = NULL,
sigmasq.prior = c("reciprocal", "uniform",
"sc.inv.chisq", "fixed"),
sigmasq = NULL, df.sigmasq = NULL,
phi.prior = c("uniform", "exponential","fixed",
"squared.reciprocal", "reciprocal"),
phi = NULL, phi.discrete = NULL,
tausq.rel.prior = c("fixed", "uniform"),
tausq.rel = 0, tausq.rel.discrete = NULL)
geodata |
a list containing elements coords and
data as described next. Typically an object of the class
"geodata" - a geoR data-set. If not provided the arguments
coords and data must be provided instead. |
coords |
an n x 2 matrix where each row has the 2-D
coordinates of the n data locations.
By default it takes the
component coords of the argument geodata, if provided.
|
data |
a vector with n data values. By default it takes the
component data of the argument geodata, if provided. |
locations |
an N x 2 matrix or data-frame with the 2-D
coordinates of the N prediction locations.
Defaults to "no" in which case
the function returns only results on the posterior distributions of
the model parameters. |
borders |
optional. If a two column matrix defining a polygon is provided the prediction is performed only at locations inside this polygon. |
model |
defines model components. See section DETAILS below. |
prior |
specification of priors for the model parameters. See section DETAILS below. |
output |
Specify output options. See documentation for
output.control. |
trend.d |
specifies the trend (covariates) values at the data
locations. Possible values are:
"cte" - model with constant mean,
"1st" - trend is defined as a first order polynomial on
the coordinates,
"2nd" - trend is defined as a second order polynomial on the
coordinates, a formula of the type ~X, where X
is a matrix with covariates (external trend) at data locations.
Defaults to "cte". |
trend.l |
specifies the trend (covariates) at the prediction
locations. Must be of the same type as defined for trend.d.
Only used if prediction locations are provided in the argument
locations. |
cov.model |
string indicating the name of the model for the correlation function. Further details in the
documentation for cov.spatial. |
kappa |
additional smoothness parameter. Only used if the
correlation function is one of: "matern",
"powered.exponential", "cauchy" or
"gneiting.matern". In the current implementation this
parameter is always regarded as fixed during the Bayesian analysis. |
aniso.pars |
fixed parameters for geometric anisotropy
correction. If aniso.pars = FALSE no correction is made, otherwise
a two elements vector with values for the anisotropy parameters
must be provided. Anisotropy correction consists of a
transformation of the data and prediction coordinates performed
by the function coords.aniso. |
lambda |
numerical value of the Box-Cox transformation parameter. The value lambda = 1 corresponds to no transformation. The Box-Cox parameter lambda is always regarded as fixed and data transformation is performed before the analysis. Prediction results are back-transformed and returned is the same scale as for the original data. For lambda = 0 the log-transformation is performed. If lambda < 0 the mean predictor doesn't make sense (the resulting distribution has no expectation). |
beta.prior |
prior distribution for the mean (vector) parameter beta. The options are "flat" (default), "normal" or "fixed" (known mean). |
beta |
mean hyperparameter for the distribution of the mean (vector) parameter beta. Only used if beta.prior = "normal" or
beta.prior = "fixed". For the later beta defines the value of
the known mean. |
beta.var.std |
standardised (co)variance hyperparameter(s)
for the prior for the mean
(vector) parameter beta.
The (co)variance matrix forbeta is given by the
multiplication of this matrix by sigma^2.
Only used if beta.prior = "normal". |
sigmasq.prior |
specifies the prior for the parameter
sigma^2. If "reciprocal" (the default), the prior
1/sigma^2 is used. Otherwise the
parameter is regarded as fixed. |
sigmasq |
fixed value of the sill parameter
sigma^2. Only used if
sigmasq.prior = FALSE. |
df.sigmasq |
numerical. Number of degrees of freedom for the
prior for the parameter sigma^2. Only used if
sigmasq.prior = "sc.inv.chisq". |
phi.prior |
prior distribution for the range parameter
phi. Options are:
\"uniform\", (p(phi) propto 1),
\"exponential\" ,((-1/nu) exp(- (1/nu) * phi))
\"reciprocal\" (p(phi) propto 1/phi),
\"squared.reciprocal\" (p(phi) propto 1/phi^2),
\"fixed\" (known/estimated value of phi).
If the latter is defined the parameter phi is
fixed when performing prediction.
For the exponential prior the argument phi provides the
the hyperparameter nu and corresponds to the
expected value for this distribution. |
phi |
fixed value of the range parameter phi. Only needed if
phi.prior = "fixed". |
phi.discrete |
support points of the discrete prior for the range parameter phi. |
tausq.rel.prior |
specifies a prior distribution for the
relative nugget parameter
tau^2/sigma^2.
If tausq.rel.prior = "fixed" the relative nugget is
considered known (fixed) with value given by the argument
tausq.rel.
If tausq.rel.prior = "uniform" a discrete uniform prior is used
with support points given by the argument
tausq.rel.discrete. |
tausq.rel |
fixed value for the relative nugget parameter.
Only used if
tausq.rel.prior = "fixed". |
tausq.rel.discrete |
support points of the discrete prior for the relative nugget parameter tau^2/sigma^2. |
krige.bayes is a generic function for Bayesian geostatistical
analysis of (transformed) Gaussian where predictions take into account the parameter
uncertainty.
It can be set to run conventional kriging methods which
use known parameters or plug-in estimates. However, the
functions krige.conv and ksline are preferable for
prediction with fixed parameters.
The basis for the Bayesian algorithm is to discretize the prior
distribution for the parameters phi and tau_rel = tau/sigma.
The Tech. Report referenced below provides details on the results used
in the current implementation.
CONTROL FUNCTIONS
The function call includes auxiliary control functions which allows
the user to specify and/or change the specification of model
components
(using model.control), prior
distributions (using prior.control) and
output options (using output.control).
Default options are available in most of the cases.
An object with class "krige.bayes" and
"kriging".
The attribute prediction.locations containing the name of the
object with the coordinates of the prediction locations (argument
locations) is assigned to the object.
Returns a list with the following components:
posterior |
results on on the posterior distribution of the
model parameters. A list with the following possible components: |
beta |
summary information on the posterior distribution of the mean parameter beta. |
sigmasq |
summary information on the posterior distribution of the variance parameter sigma^2 (partial sill). |
phi |
summary information on the posterior distribution of the correlation parameter phi (range parameter) . |
tausq.rel |
summary information on the posterior distribution of the relative nugget variance parameter tau^2_rel. |
joint.phi.tausq.rel |
information on discrete the joint distribution of these parameters. |
sample |
a data.frame with a sample from the posterior distribution. Each column correspondes to one of the basic model parameters. |
predictive |
results on the predictive distribution at the
prediction locations, if provided.
A list with the following possible components: |
mean |
expected values. |
variance |
expected variance. |
distribution |
type of posterior distribution. |
mean.simulations |
mean of the simulations at each locations. |
variance.simulations |
variance of the simulations at each locations. |
quantiles.simulations |
quantiles computed from the the simulations. |
probabilities.simulations |
probabilities computed from the simulations. |
simulations |
simulations from the predictive distribution. |
prior |
a list with information on the prior distribution and hyper-parameters of the model parameters (beta, sigma^2, phi, tau^2_rel). |
model |
model specification as defined by model.control. |
.Random.seed |
system random seed before running the function.
Allows reproduction of results. If
the .Random.seed is set to this value and the function is run
again, it will produce exactly the same results. |
max.dist |
maximum distance found between two data locations. |
call |
the function call. |
Paulo J. Ribeiro Jr. Paulo.Ribeiro@est.ufpr.br,
Peter J. Diggle p.diggle@lancaster.ac.uk.
The technical details about the implementation of krige.bayes can be
found at:
Ribeiro, P.J. Jr. and Diggle, P.J. (1999) Bayesian inference in
Gaussian model-based geostatistics. Tech. Report ST-99-08, Dept
Maths and Stats, Lancaster University.
Available at:
http://www.maths.lancs.ac.uk/~ribeiro/publications.html
Further information about geoR can be found at:
http://www.maths.lancs.ac.uk/~ribeiro/geoR.html.
lines.krige.bayes,
image.krige.bayes and
persp.krige.bayes for graphical output of the results.
krige.conv and
ksline for conventional kriging methods.
# generating a simulated data-set
ex.data <- grf(50, cov.pars=c(10, .25))
#
# defining the prediction grid:
ex.grid <- as.matrix(expand.grid(seq(0,1,l=21), seq(0,1,l=21)))
#
# computing Bayesian posterior and predictive distributions
# (this can take some time to run)
ex.bayes <- krige.bayes(ex.data, loc=ex.grid, prior =
prior.control(phi.discrete=seq(0, 2, l=21)))
#
# Prior and posterior for the parameter phi
plot(ex.bayes, type="h", tausq.rel = FALSE, col=c("red", "blue"))
#
# Plot histograms of samples from the posterior
par(mfrow=c(2,1))
hist(ex.bayes)
par(mfrow=c(1,1))
#
# Ploting theoretical and empirical variograms
plot(ex.data)
# adding lines with fitted variograms
lines(ex.bayes)
lines(ex.bayes, summ="median", lty=2)
lines(ex.bayes, summ="mean", lwd=2, lty=2)
#
# Ploting prediction some results
op <- par(no.readonly = TRUE)
par(mfrow=c(2,2))
par(mar=c(3,3,1,1))
par(mgp = c(2,1,0))
image(ex.bayes, main="predicted values")
image(ex.bayes, val="variance", main="prediction variance")
image(ex.bayes, val= "simulation", number.col=1,
main="a simulation from the \npredictive distribution")
image(ex.bayes, val= "simulation", number.col=2,
main="another simulation from \nthe predictive distribution")
par(op)