Learn R Programming

geoR (version 1.0-0)

krige.bayes: Bayesian Analysis for Gaussian Geostatistical Models

Description

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).

Usage

krige.bayes(geodata, coords = geodata$coords, data = geodata$data,
            locations = "no",
     model = model.control(trend.d = "cte", trend.l = "cte",
                   cov.model = "exponential", kappa = 0.5,
                   aniso.pars = NULL, lambda = 1),
     prior = prior.control(beta.prior = c("flat", "normal",
                                          "fixed"),
                   beta = NULL, beta.var = NULL,
                   sill.prior = c("reciprocal", "fixed"),
                   sill = NULL,
	           range.prior = c("uniform", "exponential",
                                   "fixed", "squared.reciprocal",
                                   "reciprocal"),
                   exponential.prior.par = 1, range = NULL,
                   range.discrete = NULL,
                   nugget.prior = c("fixed", "uniform"),
                   nugget = 0, nugget.discrete = NULL),
     output = output.control(n.posterior = 1000,
                   n.predictive = NULL, moments = TRUE,
                   simulations.predictive = TRUE,
	           keep.simulations = TRUE, mean.estimator = TRUE,
                   quantile.estimator =  NULL,
                   probability.estimator = NULL,
                   signal = FALSE, messages.screen = TRUE))

Arguments

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 m
coords
an $n \times 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 \times 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.
model
defines model components. See section DETAILS below.
prior
specification of priors for the model parameters. See section DETAILS below.
output
Defines output options. See section DETAILS below.

Value

  • An object of the class "krige.bayes" which is a list with the following components:
  • posteriorA list with results for the posterior distribution of the model parameters. The components are:
    • beta.summary
    {summary for the posterior distribution of the mean parameter $\beta$. }
  • sigmasq.summarysummary for the posterior distribution of the variance parameter $\sigma^2$ (partial sill).
  • phi.summarysummary for the posterior distribution of the correlation parameter $\phi$ (range parameter) .
  • tausq.summarysummary for the posterior distribution of the nugget variance parameter $\tau^2$.
  • beta.samplessamples from the posterior distribution of the mean parameter $\beta$.
  • sigmasq.samplessamples from the posterior distribution of the variance parameter $\sigma^2$.
  • phi.samplessamples from the posterior distribution of the correlation parameter $\phi$.
  • tausq.samplessamples from the posterior distribution of the nugget variance parameter $\tau^2$.
  • phi.marginalsamples from the marginal posterior distribution of the correlation parameter $\phi$, resulting from averaging the posterior over the distribution of $(\beta, \sigma^2)$.
  • nugget.marginalsamples from the marginal posterior distribution of the nugget variance parameter $\tau^2$, resulting from averaging the posterior over the distribution of $(\beta, \sigma^2)$.

Auxiliary functions

The functions of type krige.bayes.aux and control are auxiliary functions called by krige.bayes.

cr

  • predictive{A list with results for the predictive distribution of the prediction locations (if provided). The components are: }
    • moments
    {a numerical matrix. The columns contains the estimated moments of the predictive distribution, at each prediction location} simulations{a numerical matrix. Each column has a simulation from the predictive distribution. Returned only if keep.simulations = TRUE. } mean.simulations{a vector with the estimated mean at the prediction locations computed by averaging over the simulations. Returned only if mean.estimator = TRUE. } variance.simulations{a vector with the estimated variance at the prediction locations, computed using the simulations. Returned only if mean.estimator = TRUE. } quantile{A matrix or vector with quantile estimators. Returned only if the argument quantile.estimator is used. } probability{A matrix or vector with probability estimators. Returned only if the argument probability.estimator is used. } type.prediction{information on the type of prediction performed. }
  • message.prediction{information about the parameter uncertainty taken into account. Indicates which parameters has been regarded as random during the analysis. } .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. } call{the function call. }

Details

krige.bayes is a generic function for Bayesian geostatistical analysis where predictions can 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^2_{rel} =\frac{\tau^2}{\sigma^2}$. 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. The arguments for the control functions are as follows. ARGUMENTS FOR CONTROL FUNCTIONS Arguments for model = model.control(...) :

[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Arguments for output = output.control(...) : [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

References

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.

See Also

lines.krige.bayes, image.krige.bayes and persp.krige.bayes for graphical output of the results. krige.conv and ksline for conventional kriging methods.

Examples

Run this code
# 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=11), seq(0,1,l=11)))
#
# computing Bayesian posterior and predictive distributions  
<testonly>ex.bayes <- krige.bayes(ex.data, loc=ex.grid, prior =
                 prior.control(range.discrete=seq(0, 2, l=3),
                 nugget.prior = "uniform",
                 nugget.discrete=seq(0,.5, l=2)),
                 output=output.control(n.post=100))</testonly>

ex.bayes <- krige.bayes(ex.data, loc=ex.grid, prior =
                 prior.control(range.discrete=seq(0, 2, l=51)))
#
# Ploting theoretical amd empirical variograms
plot(ex.data)
# adding lines with fitted variograms
lines(ex.bayes, max.dist=1.2)
lines(ex.bayes, max.dist=1.2, summ="median", lty=2)
lines(ex.bayes, max.dist=1.2, summ="mean", lwd=2, lty=2)
#
# Ploting prediction some results
par.mf <- par()$mfrow
par(mfrow=c(2,2))
image.krige.bayes(ex.bayes, loc=ex.grid, main="predicted values")
image.krige.bayes(ex.bayes, val="moments.variance",
                  loc=ex.grid, main="prediction variance")
image.krige.bayes(ex.bayes, val= "simulation", number.col=1,
                  loc=ex.grid,
      main="a simulation from the 
predictive distribution")
image.krige.bayes(ex.bayes, val= "simulation", number.col=2,
                  loc=ex.grid,
     main="another simulation from 
the predictive distribution")
par(mfrow=par.mf)

Run the code above in your browser using DataLab