rgstatgeostatistics

Coefficients estimated using fit.variogram don't match the plot with the model fit (gstat R package)


I'm fitting an exponential model to an empirical semivariogram using the package gstat. My dataset (data) has latitude and longitude values in decimal degrees. The range estimated using fit.variogram() doesn't match the range that I'd expect by looking at the plot of the model. See code and figures below.

This is the output from fit.variogram():

   model    psill    range
1   Nug 26.66719  0.00000
2   Exp 26.26643 25.76976

From here I would expect the range corresponding to a sill of ~53 (26.66719+26.26643) to be 25.76976. However, when looking at the plot the range corresponding to a sill of ~53 is >60 km. plot with fitted model

library(gstat)  
library(sp)

coordinates(data)= ~ longitude+latitude
proj4string(data)=CRS("+longlat")
TheVariogram=variogram(Svmean~1, data=data, cutoff=90)
plot(TheVariogram) #to get seed parameters
lzn.fit <- fit.variogram(TheVariogram, model = vgm(psill=60, model="Exp", nugget=20, range=70),fit.method=6)
plot(TheVariogram, pl=F, model=lzn.fit, xlab="Distance (km)", ylab=expression(Semivariance (dB^2)))

Solution

  • The range reported is the range parameter a in the model exp(-h/a), and not the value at which the exponential model reaches 95% of its (partial) sill. To get that latter value, multiply by (approximately) 3.