| GeoKrigloc | R Documentation |
For a given set of spatial location sites (and temporal instants),
the function computes optimal local linear prediction and the associated mean squared error
for the Gaussian and non-Gaussian case using a spatial (temporal) neighborhood
computed using the function GeoNeighborhood
GeoKrigloc(estobj=NULL,data, coordx=NULL, coordy=NULL, coordz=NULL,coordt=NULL,
coordx_dyn=NULL, corrmodel, distance="Eucl", grid=FALSE,
loc, neighb=NULL, maxdist=NULL,
maxtime=NULL, method="cholesky",
model="Gaussian", n=1,nloc=NULL, mse=FALSE,
param, anisopars=NULL,radius=1,
sparse=FALSE, time=NULL, type="Standard",
type_krig="Simple",weigthed=TRUE,
which=1, copula=NULL,X=NULL,Xloc=NULL,Mloc=NULL,varcov=NULL,
spobj=NULL,spdata=NULL,parallel=FALSE,ncores=6,progress=TRUE,
check.duplicates=FALSE)
estobj |
An object of class Geofit that includes information about data, model and estimates. |
data |
A |
coordx |
A numeric |
coordy |
A numeric vector giving 1-dimension of
spatial coordinates; Optional argument, the default is |
coordz |
A numeric vector giving 1-dimension of
spatial coordinates; Optional argument, the default is |
coordt |
A numeric vector giving the temporal coordinates of the observations. The default is |
coordx_dyn |
For dynamic observation locations, a list with one two- or three-column coordinate matrix per element of |
corrmodel |
String; the name of a correlation model, for the
see |
distance |
String; the name of the spatial distance. The default
is |
grid |
Logical; if |
loc |
A numeric ( |
neighb |
Numeric; an optional positive integer indicating the order of the neighborhood. |
maxdist |
Numeric; an optional positive value indicating the distance in the spatial neighborhood. |
maxtime |
Numeric; an optional non-negative maximum temporal-distance threshold, expressed in the same units as |
method |
String; matrix decomposition used to solve each local
kriging system. The choices are |
n |
Positive integer size parameter. For Binomial it may be scalar or contain one value per observation. For direct Negative Binomial it is the single common number |
nloc |
Positive integer size at prediction tasks. For Binomial, site-specific observation sizes require explicit prediction sizes. For direct Negative Binomial, |
mse |
Logical; if |
model |
String; the type of RF and therefore the densities associated to the likelihood
objects. |
param |
A list of parameter values required for the correlation model. See Details for the accepted options. |
anisopars |
A list of two elements: "angle" and "ratio" i.e. the anisotropy angle and the anisotropy ratio, respectively. |
radius |
Numeric: the radius of the sphere if coordinates are passed in lon/lat format;Default value is 1. |
sparse |
Logical; if |
time |
A numeric vector giving the temporal instants to be predicted. Values need not be equally spaced and are interpreted on the same numeric time scale as |
type |
String; currently only |
type_krig |
String; |
weigthed |
Logical legacy argument retained for backward
compatibility. It has no effect for |
which |
Numeric; In the case of bivariate (tapered) cokriging it indicates which variable to predict. It can be 1 or 2 |
copula |
String; optional copula specification. Local linear prediction is implemented for |
X |
Numeric design matrix at the observations. For fixed-location space-time data, rows follow |
Xloc |
Numeric design matrix at prediction tasks. For space-time prediction its rows are location-major: all requested times for |
Mloc |
Numeric vector giving the known marginal location predictor at prediction tasks, in the same location-major order as |
varcov |
Covariance matrix of the estimated parameters, required
for |
spobj |
An object of class |
spdata |
Character:The name of data in the sp or spacetime object |
parallel |
Logical; default |
ncores |
Numeric or |
progress |
If TRUE then a progress bar is shown. |
check.duplicates |
Logical. If |
The optional pair cache is bounded by
getOption("GeoModels.local_pair_cache_max_bytes", 256 * 1024^2).
This is a per-process budget in bytes for native cache workspace and CSR output,
not a limit on total R memory. The peak during hash growth is included.
A zero budget disables cache construction. If the budget or integer-index
limit would be exceeded, the uncached calculation is used automatically.
Each parallel worker may hold its own R objects.
The univariate mean convention is the same as in GeoKrig:
\mu=X\beta with coefficients named mean, mean1, and so
on, or an external observation mean vector in param$mean. The
intercept-only case is equivalent to a one-column matrix of ones.
At prediction tasks, use either Xloc for X_{loc}\beta or
Mloc for a directly supplied local mean. The rows of Xloc and
the entries of Mloc follow the local-task order; for fixed-location
space-time kriging this is location first and prediction time second.
For type_krig="Universal", each local prediction uses the mean
coefficients already supplied or estimated by GeoFit; they are not
re-estimated by GLS inside each neighborhood. If mse=TRUE, the local
MSE includes the uncertainty of those coefficients using the corresponding
block of varcov. For composite likelihood this is the sandwich
covariance (inverse Godambe information). Mean coefficients missing from
varcov are treated as fixed. External mean vectors are already
known, so a requested universal prediction is treated as simple kriging with
a warning.
For model="Wrapped", each neighborhood delegates to the dedicated
circular predictor in GeoKrig: sine and cosine residual
components are predicted linearly with their exact wrapped-Gaussian
covariances and the final direction is reconstructed with atan2. A
requested type_krig="Universal" is therefore replaced by componentwise
Simple prediction.
For copula="Gaussian", copula="Clayton", and
copula="SkewGaussian", each local prediction uses the same
observed-scale copula covariance, marginal-mean calculations, solver, and MSE
implementation as GeoKrig. The local predictor is an optimal
linear predictor, not in general the full conditional mean.
GeoKrigloc uses a single computational path. First,
GeoNeighborhood constructs the requested neighborhood for each
prediction task. Then GeoKrig is called on each local data set.
This keeps covariance, copula, mean, numerical-solver, and MSE logic centralized
in GeoKrig rather than duplicating those calculations inside
GeoKrigloc.
With parallel=TRUE, independent local GeoKrig calls are
submitted through future.apply. The default ncores=6 requests
up to six workers, subject only to the number of prediction tasks and detected
cores. Any other numeric ncores value is treated in the same way and is
not reduced by the RAM safety heuristic. Set ncores=NULL explicitly to
select the automatic/safe mode, where the package-wide worker resolver and the
internal RAM safety check may reduce the worker count. On platforms where
future reports that forked workers are safe, the automatic backend uses
multicore; otherwise it uses multisession. Parallel and serial
execution use the same local neighborhoods and the same GeoKrig
calculations.
When geometric anisotropy is supplied, observation coordinates, prediction locations, and neighborhood selection are transformed by the same metric. Thus the selected local neighbors are the nearest points under the covariance metric, not under the original isotropic distance.
This function uses GeoKrig with a
spatial or spatio-temporal neighborhood computed using GeoNeighborhood.
Each local prediction task is evaluated through the same GeoKrig
implementation used by the non-local prediction interface.
The neighborhood is specified with neighb, maxdist, and
maxtime. Regular-grid data are internally vectorized in the same
order as expand.grid; fixed-location space-time observations remain
in time-major order.
Returns an object of class Kg.
An object of class Kg is a list containing
at most the following components:
bivariate |
|
coordx |
A |
coordy |
A |
coordz |
A |
coordt |
A |
corrmodel |
String: the correlation model; |
covmatrix |
The covariance matrix if |
data |
The vector or matrix or array of data used for prediction |
distance |
String: the type of spatial distance; |
grid |
|
loc |
A ( |
n |
The Binomial number of trials, or the common Negative-Binomial number |
nozero |
In the case of tapered simple kriging the percentage of non zero values in the covariance matrix. Otherwise is NULL. |
numcoord |
Numeric:he number |
numloc |
Numeric: the number |
numtime |
Numeric: the number |
numt |
Numeric: the number |
model |
The response model used for prediction after canonicalizing any misspecified-Gaussian fitting name. |
fit_model |
The model name supplied by the caller or stored in the input
|
param |
The parameter list used for prediction; |
pred |
For spatio-temporal prediction, a |
radius |
Numeric: the radius of the sphere if coordinates are pssed in lon/lat format; |
spacetime |
|
tapmod |
String: the taper model if |
time |
A |
type |
String: the type of kriging (Standard or Tapering). |
type_krig |
String: the type of kriging: Simple or Universal |
mse |
When |
wrapped_mse_sin |
For |
wrapped_mse_cos |
For |
wrapped_resultant |
For |
wrapped_prediction_method |
For |
Observed fixed-location data use time-major order: a T \times N
matrix is vectorized as c(t(data)). Dynamic observations are supplied
as aligned lists data[[t]] and coordx_dyn[[t]], concatenated by
time. The rows of X and any known observation mean use the same
observation order.
Prediction tasks use the different, location-major order
loc[1, ] at time[1], ..., loc[1, ] at time[Tloc], loc[2, ] at time[1], ..., loc[2, ] at time[Tloc], ...
Rows of Xloc and elements of Mloc must follow this order. The
returned pred and mse objects are Tloc \times Nloc
matrices with prediction times in rows and prediction locations in columns.
See GeoModels-spacetime-ordering.
Moreno Bevilacqua, moreno.bevilacqua89@gmail.com,https://sites.google.com/view/moreno-bevilacqua/home, Víctor Morales Oñate, victor.morales@uv.cl, https://sites.google.com/site/moralesonatevictor/, Christian Caamaño-Carrillo, chcaaman@ubiobio.cl,https://www.researchgate.net/profile/Christian-Caamano
Gaetan, C. and Guyon, X. (2010) Spatial Statistics and Modelling. Springer-Verlag, New York. Furrer R., Genton, M.G. and Nychka D. (2006). Covariance Tapering for Interpolation of Large Spatial Datasets. Journal of Computational and Graphical Statistics, 15-3, 502–523.
GeoCovmatrix
################################################################
############### Examples of Spatial local kriging #############
################################################################
require(GeoModels)
####
model="Gaussian"
# Define the spatial-coordinates of the points:
set.seed(759)
x = runif(1000, 0, 1)
y = runif(1000, 0, 1)
coords=cbind(x,y)
# Set the exponential cov parameters:
corrmodel = "GenWend"
mean=0; sill=1
nugget=0; scale=0.2
param=list(mean=mean,sill=sill,nugget=nugget,smooth=0,
scale=scale,power2=4)
# Simulation of the spatial Gaussian random field:
data = GeoSim(coordx=coords, corrmodel=corrmodel,
param=param)$data
# Maximum pairwise likelihood fitting of the space time random field:
start=list(scale=scale,sill=sill,mean=mean)
fixed=list(power2=4,smooth=0,nugget=0)
fit = GeoFit(data, coordx=coords, corrmodel=corrmodel,
start=start,fixed=fixed,
likelihood='Conditional', type='Pairwise',
neighb=3)
# locations to predict
loc_to_pred=matrix(runif(8),4,2)
################################################################
###
### Example 1. Comparing spatial kriging with local kriging for
### a Gaussian random field with GenWend correlation.
###
###############################################################
param=append(fit$param,fit$fixed)
pr=GeoKrig(fit,loc=loc_to_pred,mse=TRUE)
pr_loc=GeoKrigloc(fit,loc=loc_to_pred,neighb=100,mse=TRUE)
pr$pred;
pr_loc$pred
############################################################
#### Example: spatio temporal Gaussian local kriging ######
############################################################
require(GeoModels)
set.seed(78)
coords=cbind(runif(100),runif(100))
coordt=seq(0,5,0.25)
corrmodel="Matern_Matern"
param=list(nugget=0,mean=0,scale_s=0.2/3,scale_t=0.25/3,sill=2,
smooth_s=0.5,smooth_t=0.5)
data = GeoSim(coordx=coords, coordt=coordt,
corrmodel=corrmodel, param=param)$data
# Maximum pairwise likelihood fitting of the space time random field:
start = list(scale_s=0.2/3,scale_t=0.25,sill=2,mean=0)
fixed = list(smooth_s=0.5,smooth_t=0.5,nugget=0)
I=Inf
lower=list(scale_s=0,scale_t=0,sill=0,mean=-I)
upper=list(scale_s=I,scale_t=I,sill=I,mean=I)
fit = GeoFit(data, coordx=coords, coordt=coordt, model=model, corrmodel=corrmodel,
likelihood='Conditional', type='Pairwise',start=start,fixed=fixed,
optimizer="nlminb",lower=lower,upper=upper,
neighb=3,maxtime=1)
## four location to predict
loc_to_pred=matrix(runif(8),4,2)
## three temporal instants to predict
time=c(0.5,1.5,3.5)
pr=GeoKrig(fit,loc=loc_to_pred,time=time,mse=TRUE)
pr_loc=GeoKrigloc(fit,loc=loc_to_pred,time=time,
neigh=25,maxtime=1, mse=TRUE)
## full and local prediction
pr$pred
pr_loc$pred
############################################################
#### Example: spatio bivariate Gaussian local cokriging ######
############################################################
#set.seed(6)
#NN=1500 # number of spatial locations
#x = runif(NN, 0, 1);
#y = runif(NN, 0, 1)
#coords=cbind(x,y)
## setting parameters
#mean_1 = 2; mean_2= -1
#nugget_1 =0;nugget_2=0
#sill_1 =0.5; sill_2 =1;
### correlation parameters
#CorrParam("Bi_Matern")
#scale_1=0.2/3; scale_2=0.15/3; scale_12=0.5*(scale_2+scale_1)
#smooth_1=smooth_2=smooth_12=0.5
#pcol = -0.4
#param= list(nugget_1=nugget_1,nugget_2=nugget_2,
# sill_1=sill_1,sill_2=sill_2,
# mean_1=mean_1,mean_2=mean_2,
# smooth_1=smooth_1, smooth_2=smooth_2,smooth_12=smooth_12,
# scale_1=scale_1, scale_2=scale_2,scale_12=scale_12,
# pcol=pcol)
## simulation
#data = GeoSim(coordx=coords, corrmodel="Bi_Matern",model=model,param=param)$data
#fixed=list(mean_1=mean_1,mean_2=mean_2, nugget_1=nugget_1,nugget_2=nugget_2,
# smooth_1=smooth_1, smooth_2=smooth_2,smooth_12=smooth_12)
#start=list( sill_1=sill_1,sill_2=sill_2,
# scale_1=scale_1,scale_2=scale_2,scale_12=scale_12, pcol=pcol)
## estimation with maximum likelihood
#fit = GeoFit(data=data,coordx=coords, corrmodel="Bi_Matern",
# likelihood="Marginal",type="Pairwise",optimizer="BFGS",neighb=5,
#start=start,fixed=fixed)
###### co-kriging for the fist component ##############
#xx=seq(0,1,0.022)
#loc_to_pred=as.matrix(expand.grid(xx,xx))
#pr1 = GeoKrigloc(fit,which=1,mse=TRUE,loc=loc_to_pred,neighb=100)
#opar=par(no.readonly = TRUE)
#par(mfrow=c(1,2))
#zlim=c(-2.5,2.5)
#colour = rainbow(100)
#fields::quilt.plot(coords,data[1,] ,col=colour,main = paste(" Fist component"))
#fields::quilt.plot(loc_to_pred,pr1$pred,col=colour,
# main = paste(" Kriging first component"),ylab="")
#par(opar)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.