[R-sig-Geo] GSTAT predictions vs GLS

Edzer Pebesma edzer.pebesma at uni-muenster.de
Sat Oct 29 10:32:55 CEST 2011


Zev,

GLS only fits the trend; krige predicts trend + residual, unless you 
specify BLUE=TRUE:

 > theGLS$fit[1:5]
        1        2        3        4        5
6.891951 6.703849 6.166895 5.873390 5.642714
 > predict(g, meuse, BLUE=TRUE)[["var1.pred"]][1:5]
[generalized least squares trend estimation]
[1] 6.891951 6.703849 6.166895 5.873390 5.642714

Best regards,

On 10/28/2011 09:58 PM, Zev Ross wrote:
> Hi All,
>
> I was expecting the predictions from GSTAT to be the same as a GLS model
> if the parameters and correlation structure are exactly the same but I'm
> finding they're not. Why would that be? Below is an example using the
> Meuse dataset.
>
> Zev
>
> data(meuse)
> data(meuse.grid)
> coordinates(meuse) <- ~x + y
> coordinates(meuse.grid) <- ~x + y
>
> theFormula <- "log(zinc)~sqrt(dist)"
> lznr.vgm <- variogram(formula(theFormula), meuse)
> lznr.fit <- fit.variogram(lznr.vgm, model = vgm(1, "Exp", 300, 1))
> g <- gstat(formula=formula(theFormula), data = meuse, model = lznr.fit)
>
>
> # get the coefficients so we can compare against GLS
> lzn.coef<-predict(g, meuse, BLUE=c(TRUE,TRUE))
>
> # generate the predictions using kriging with external drift
> lzn.kriged <- predict(g, meuse, BLUE=FALSE)
>
>
> # try to recreate what predict in GSTAT is doing using GLS
> nug<-lznr.fit[1,2]
> sill<-lznr.fit[1,2]+lznr.fit[2,2]
> range<-lznr.fit[2,3]
>
> # the parameters from theGLS should match exactly with the UKcoef
> parameters
> theGLS<-gls(formula(theFormula), data=meuse, na.action=na.omit,
> correlation=corExp(c(range, nug/sill),
> form=~x+y, nugget=TRUE,fixed=TRUE), method="ML")
>
> # confirm that the coefficients are the same
>
> lzn.coef
> summary(theGLS)$coef
>
> # yes they are identical
>  > lzn.coef
> coordinates var1.pred var1.var
> (Intercept) (181072, 333611) 6.985991 0.02507861
> sqrt(dist) (181072, 333611) -2.551849 0.07302336
>  > summary(theGLS)$coef
> (Intercept) sqrt(dist)
> 6.985991 -2.551849
>
>
> # the predictions/fits are different
>  > log(meuse at data$zinc[1:5]) #true data
> [1] 6.929517 7.039660 6.461468 5.549076 5.594711
>
>  > lzn.kriged at data$var1.pred[1:5] # output from kriging model
> [1] 6.929517 7.039660 6.461468 5.549076 5.594711
>
>  > theGLS$fit[1:5] # output from GLS
> 6.891951 6.703849 6.166895 5.873390 5.642714
>
>
>

-- 
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