A semivariogram describes how data values change with increasing distance. It helps quantify spatial dependence.
Tobler’s First Law of Geography states: > “Everything is related to everything else, but near things are more related than distant things.”
In semivariograms: - Short distances → Similar values (low variance). - Large distances → Increasing dissimilarity.
The key parameters of a semivariogram are:
C₀): Variance at distance = 0
(measurement error or microscale variation).C): Total variance when the
semivariogram levels off.A): Distance at which spatial
autocorrelation disappears.library(sp)
library(gstat)
data(meuse, package = "sp")
coordinates(meuse) <- ~x+y # Define spatial coordinates
# Compute the Empirical Variogram
variogram_model <- variogram(zinc ~ 1, meuse)
plot(variogram_model, main = "Empirical Semivariogram")
# Fit a Variogram Model
vgm_model_nugget <- fit.variogram(variogram_model,
vgm(psill = 10000, model = "Nug", range = 0, add.to =
vgm(psill = 150000, model = "Sph", range = 600)))
print(vgm_model_nugget)
## model psill range
## 1 Sph 134743.02 830.8819
## 2 Nug 24797.86 0.0000
plot(variogram_model, vgm_model_nugget, main = "Fitted Semivariogram Model")
# Next Step
For practice with your own CSV data (and side-by-side comparison of correlograms and semivariograms), see:
Run in R:
rmarkdown::render("variogram_tutorial1.Rmd")
This will create a Markdown file that you can push to GitHub.