linesmodel: Computation of parametric variogram model

Description Usage Arguments Details Value Author(s) References Examples

View source: R/linesmodel.R

Description

Computes the value of the parametric variogram model at given distances.

Usage

1
linesmodel(distance, variog.model="exponential", param)

Arguments

distance

numeric vector of distances.

variog.model

character string giving the name of the parametric variogram model. Implemented models are: exponential, spherical, gauss, gencauchy and matern.

param

numeric vector containing the values of the variogram parameters.

If the parametric model specified is exponential, spherical or gauss, param is a vector of length 3 containing, in order: the nugget effect (non negative number), the variance and the range (both positive numbers).

If the parametric model specified is gencauchy, param is a vector of length 5 whose entries are, in order: the nugget effect (non negative number), the variance, the range (both positive numbers), the smoothness parameter a (a number in (0,2]), and the long-range parameter b (a positive number).

If the parametric model specified is matern, param is a vector of length 4 whose entries are, in order: the nugget effect (a non-negative number), the variance, the range, and the smoothness parameter a (all three, positive numbers).

Details

The function calculates the value of the parametric variogram at given distances using the following equations:

- If the parametric model is exponential

γ(d) = ρ+σ^{2} \cdot (1-exp(- \frac{d}{r}))

where ρ is the nugget effect, σ^2 is the variance, r is the range, and d is the distance.

- If the parametric model is spherical

γ(d) = ρ+σ^{2} \cdot (\frac{3}{2}\cdot\frac{d}{r}-\frac{1}{2}\cdot \frac{d^3}{r^3})

where ρ is the nugget effect, σ^2 is the variance, r is the range, and d is the distance.

- If the parametric model is gauss

γ(d) = ρ+σ^{2} \cdot (1-exp(- \frac{d^2}{r^2} ))

where ρ is the nugget effect, σ^2 is the variance, r is the range, and d is the distance.

- If the parametric model is gencauchy

γ(d) = ρ+σ^{2} \cdot (1-(1+\frac{d^a}{r^a})^{- \frac{b}{a}})

where ρ is the nugget effect, σ^2 is the variance, r is the range, d is the distance, a is the smoothness parameter, and b is the long-range parameter.

- If the parametric model is matern

γ(d) = ρ+σ^{2} \cdot (1-(\frac{2^{1-a}}{Γ(a)}\cdot \frac{d^a}{r^a} \cdot K_{a}(\frac{d}{r}))

where ρ is the nugget effect, σ^2 is the variance, r is the range, d is the distance, and a is the smoothness parameter.

Value

The function returns a numeric vector with the values of the parametric variogram model at the bin midpoints.

Author(s)

Berrocal, V. J. (veroberrocal@gmail.com), Raftery, A. E., Gneiting, T., Gel, Y.

References

Gel, Y., Raftery, A. E., Gneiting, T. (2004). Calibrated probabilistic mesoscale weather field forecasting: The Geostatistical Output Perturbation (GOP) method (with discussion). Journal of the American Statistical Association, Vol. 99 (467), 575–583.

Cressie, N. A. C. (1993). Statistics for Spatial Data (revised ed.). Wiley: New York.

Gneiting, T., Schlather, M. (2004). Stochastic models that separate fractal dimension and the Hurst effect. SIAM Review 46, 269–282.

Stein, M. L. (1999). Interpolation of Spatial Data - Some Theory for Kriging. Springer-Verlag: New York.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
## Loading data
data(slp)
day <- slp$date.obs
id <- slp$id.stat
coord1 <- slp$lon.stat
coord2 <- slp$lat.stat
obs <- slp$obs
forecast <- slp$forecast

## Computing empirical variogram
variogram <- Emp.variog(day=day,obs=obs,forecast=forecast,id=id,coord1=coord1,
coord2=coord2,cut.points=NULL,max.dist=NULL,nbins=NULL)

## Estimating variogram parameters
## Without specifying initial values for the parameters
param.variog <- 
Variog.fit(emp.variog=variogram,variog.model="exponential",max.dist.fit=NULL,
init.val=NULL,fix.nugget=FALSE)

## Plotting the empirical variogram with the estimated parametric variogram superimposed
plot(variogram$bin.midpoints,variogram$empir.variog,xlab="Distance",ylab="Semi-variance")
lines(variogram$bin.midpoints,linesmodel(distance=variogram$bin.midpoints,variog.model="exponential",param=c(param.variog$nugget,
param.variog$variance,param.variog$range)))

ProbForecastGOP documentation built on May 2, 2019, 3:42 a.m.