GeoKrigloc {GeoModels} | R Documentation |
Spatial (bivariate) and spatio temporal optimal linear local prediction for Gaussian and non Gaussian RFs.
Description
For a given set of spatial location sites (and temporal instants),
the function computes optmal 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
Usage
GeoKrigloc(estobj=NULL,data, coordx, coordy=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=6371,
sparse=FALSE, time=NULL, type="Standard",type_mse=NULL,
type_krig="Simple",weigthed=TRUE,
which=1, copula=NULL,X=NULL,Xloc=NULL,
Mloc=NULL,spobj=NULL,spdata=NULL,parallel=FALSE,ncores=NULL)
Arguments
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 used for prediction; |
coordt |
A numeric vector giving 1-dimension of
temporal coordinates used for prediction; the default is |
coordx_dyn |
A list of |
corrmodel |
String; the name of a correlation model, for the description see the Section Details. |
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 positive integer value indicating the order of the temporal neighborhood. |
method |
String; the type of matrix decomposition used in the simulation. Default is |
n |
Numeric; the number of trials in a binomial random fields.
Default is |
nloc |
Numeric; the number of trials of the locations sites to be predicted in the binomial random field. If missing then a rounded mean of n is considered. |
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 the Section Details. |
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; |
sparse |
Logical; if |
time |
A numeric ( |
type |
String; if |
type_mse |
String; if |
type_krig |
String; the type of kriging. If |
weigthed |
Logical; if |
which |
Numeric; In the case of bivariate (tapered) cokriging it indicates which variable to predict. It can be 1 or 2 |
copula |
String; the type of copula. It can be "Clayton" or "Gaussian" |
X |
Numeric; Matrix of spatio(temporal)covariates in the linear mean specification. |
Xloc |
Numeric; Matrix of spatio(temporal)covariates in the linear mean specification associated to predicted locations. |
Mloc |
Numeric; Vector of spatio(temporal) estimated means associated to predicted locations. |
spobj |
An object of class sp or spacetime |
spdata |
Character:The name of data in the sp or spacetime object |
parallel |
Logical; if |
ncores |
Numeric; number of cores involved in parallelization. |
Details
This function use the GeoKrig
with a
spatial or spatio-temporal neighborhood computed using the function GeoNeighborhood
.
The neighborhood is specified with the option maxdist
and maxtime
.
Value
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 |
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 number of trial for Binomial RFs |
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 type of RF, see |
param |
Numeric: The covariance parameters; |
pred |
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. |
mse |
A ( |
Author(s)
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
References
Gaetan, C. and Guyon, X. (2010) Spatial Statistics and Modelling. Spring Verlang, 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.
See Also
Examples
################################################################
############### 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)
require(fields)
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="Full",type="Standard",optimizer="BFGS",
# 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)
#quilt.plot(coords,data[1,] ,col=colour,main = paste(" Fist component"))
#quilt.plot(loc_to_pred,pr1$pred,col=colour,
# main = paste(" Kriging first component"),ylab="")
#par(opar)