[R-sig-Geo] Variogram Paradox
Edzer Pebesma
edzer.pebesma at uni-muenster.de
Tue Apr 9 09:32:18 CEST 2013
On 04/08/2013 11:11 PM, Edzer Pebesma wrote:
>
>
> On 04/08/2013 08:12 PM, Saman Monfared wrote:
>> Dear All,
>> We know that the estimation of covariance parameters is an important
>> problem for spatial processes because the variogram shows the spatial
>> variation. In many cases to select the best variogram model some
>> parametric models considered and some criterions such as mean
>> prediction error, mean square error, correlation between the observed
>> and predicted values and correlation between the predicted and the
>> residual values in cross validation method uses to select the best
>> variogram model.
>>
>> Below codes get an example whit two variogram models which are have
>> very different parameters (sill, range and nugget) but values of
>> mentioned criterions are approximately equal for them.
>> Why?
>> What is the role of variogram?
>> What is the role of empirical variogram when a variogram function
>> which is so far away than it can has approximately equaled cross
>> validation results.
>>
>> library(gstat)
>> data(meuse)
>> coordinates(meuse)<-~x+y
>> v<-variogram(log(zinc)~1,meuse)
>> v.f<-fit.variogram(v,vgm(.205,"Mat",700,0.008,kappa=1))
>> plot(v,v.f)
>> v.ff<-fit.variogram(v,vgm(.205,"Mat",700,0.008,kappa=1)
>> ,fit.sills =F, fit.ranges =F)
>> plot(v,v.ff)
>> k1<-krige.cv(log(zinc)~1,meuse,v.f)
>> k2<-krige.cv(log(zinc)~1,meuse,v.ff)
>> mean(k1$residual)
>> mean(k2$residual)
>> mean(k1$residual^2)
>> mean(k2$residual^2)
>> cor(k1$var1.pred,k1$observed)
>> cor(k2$var1.pred,k2$observed)
>> cor(k1$var1.pred,k1$residual)
>> cor(k2$var1.pred,k2$residual)
>>
>> Best,
>> Saman.
>
> Because the ratio of the two models,
>
> v1 = variogramLine(v.f, 500)
> v2 = variogramLine(v.ff, 500)
> plot(v1[,1], v1[,2]/v2[,2])
>
> is fairly constant.
>
> If a variogram model gets multiplied by a positive constant, the kriging
> predictions will remain identical:
>
> v.fff = v.ff
> v.ff$psill = v.ff$psill * 1234 # or any pos. number
I meant, of course:
v.fff$psill <- v.fff$psill * 1234 # or any pos. number
k3 <- krige.cv(log(zinc)~1,meuse,v.fff)
which leads to
> summary(k3$var1.pred-k2$var1.pred)
Min. 1st Qu. Median Mean 3rd Qu. Max.
-3.020e-14 -9.326e-15 0.000e+00 -1.490e-16 7.994e-15 3.286e-14
i.e., essentially zeros:
> all.equal(k3$var1.pred, k2$var1.pred)
[1] TRUE
> k3 <- krige.cv(log(zinc)~1,meuse,v.fff)
> summary(k3$var1.pred-k2$var1.pred)
> Min. 1st Qu. Median Mean 3rd Qu. Max.
> 0 0 0 0 0 0
>
--
Edzer Pebesma
Institute for Geoinformatics (ifgi), University of Münster
Weseler Straße 253, 48151 Münster, Germany. Phone: +49 251
8333081, Fax: +49 251 8339763 http://ifgi.uni-muenster.de
http://www.52north.org/geostatistics e.pebesma at wwu.de
More information about the R-sig-Geo
mailing list