[R-sig-Geo] Regression kriging - error not found when ordinary kriging

Ashton Shortridge ashton at msu.edu
Wed Nov 20 16:22:03 CET 2013


hi Jordan,

(off-list) 

it sounds like your problem is not a good candidate for regression kriging. RK 
(or the similar kriging with external drift, KED) require that you have 
collocated dependent and independent variables so that you can actually run a 
regression.

You could use cokriging, though in my experience (limited!) cokriging with 
more than one secondary variable becomes a real pain to model. This is because 
the cross-variogram models all have to meet certain requirements.

I have some lecture notes that might (or might not) be helpful:
https://www.msu.edu/~ashton/classes/866/notes/lect18/index.html

Yours,

Ashton


On Tuesday, November 19, 2013 05:05:41 PM Jordan Chetcuti wrote:
> Hi Ashton,
> 
> Thanks for taking the time to email me.
> 
> I alas don't have the variables for all locations in the "blank" dataset. I
> am beginning to wonder if I entirely understand regression kriging (or in
> fact if any of my class really understand this).
> 
> Having the variables at more locations than the "bd" dataset, makes this
> seem similar to co-kriging.
> 
> That would make more sense, I had wondered how the regression was worked
> out for each prediction location.
> 
> Thanks again.
> 
> Regards
> 
> Jordan
> 
> On 18 November 2013 03:40, Ashton Shortridge <ashton at msu.edu> wrote:
> > Hi Jordan,
> > 
> > I always use the 'data' parameter when kriging. Here's how I'd do it:
> > 
> > class(bd)   # This should be a SpatialPointsDataFrame
> > names(bd) #  all the variables in the model (Total, m5005CVOL, etc)
> > 
> > class(blank) # This should be a SpatialPointsDataFrame
> > names(blank) # all the variables in the model except for Total
> > 
> > TotalRegKrige <- krige(Total~m5005CVOL+n50010CVOL+n50015CVOL+DTM, bd,
> > blank,
> > model=fit_r)
> > 
> > 
> > Hope this helps.
> > 
> > Ashton
> > 
> > On Friday, November 15, 2013 10:10:30 AM Jordan Chetcuti wrote:
> > > Hello, I was wondering if anyone has encountered this issue?
> > > 
> > > This line works:
> > >                       TotalKrige <- krige(Total~1, locations=bd,
> > > 
> > > newdata=blank, model=fit_Total)
> > > 
> > > This line does not:
> > >                      TotalRegKrige <-
> > > 
> > > krige(Total~m5005CVOL+n50010CVOL+n50015CVOL+DTM, locations=bd,
> > > newdata=blank, model=fit_r)
> > > 
> > > Message:
> > >                      Error in eval(expr, envir, enclos) : object
> > > 
> > > 'm5005CVOL' not found
> > > 
> > > I have emailed the author of the library "gstat", he very helpfully
> > > offered some advice and that I post here. I have also included my
> > > intial email exchange with Prof. Pebesma.
> > > 
> > > I have included a description of my two datsets below and the
> > > libraries I have loaded.
> > > 
> > > data = locations (therefore it isn't necessary to have "data"
> > > specified (in the way it is in a linear model lm() )
> > > newdata = the locations to krige
> > > 
> > > I have also tried among other things:
> > > 
> > > TotalRegKrige <-
> > > krige(Total~bd$m5005CVOL+bd$n50010CVOL+bd$n50015CVOL+bd$DTM,
> > > locations=bd, newdata=blank, model=fit_r)
> > > 
> > > Giveing:
> > > 
> > > Error in gstat.formula.predict(d$formula, newdata, na.action =
> > 
> > na.action,  :
> > > NROW(locs) != NROW(X): this should not occur
> > > In addition: Warning messages:
> > > 1: 'newdata' had 26026 rows but variables found have 83 rows
> > > 2: 'newdata' had 26026 rows but variables found have 83 rows
> > > 
> > > This would lead me to think there is an error in the ascii grid,
> > > except that it worked perfectly in the ordinary kriging example.
> > > 
> > > Any help anyone can give would be greatly appreciated.
> > > 
> > > Regards
> > > 
> > > Jordan Chetcuti
> > > 
> > > p.s. see descriptions of data and libraries below, and conversation
> > > with Prof. Pebesma.
> > > 
> > > 
> > > Dataset "bd"
> > > 
> > > > summary(bd)
> > > 
> > > Object of class SpatialPointsDataFrame
> > > 
> > > Coordinates:
> > >       min     max
> > > 
> > > X  228112  232468
> > > Y 2190072 2195810
> > > Is projected: NA
> > > proj4string : [NA]
> > > Number of points: 83
> > > 
> > > Data attributes:
> > >    StationID       m1K10CrnR       m1K10TrHT       m1K10CVOL (only
> > > 
> > > first few, contains many).
> > > 
> > > Dataset "blank"
> > > 
> > > > summary(blank)
> > > 
> > > Object of class SpatialGridDataFrame
> > > 
> > > Coordinates:
> > >          min     max
> > > 
> > > [1,]  226693  233843
> > > [2,] 2187940 2197040
> > > Is projected: NA
> > > proj4string : [NA]
> > > 
> > > Grid attributes:
> > >   cellcentre.offset cellsize cells.dim
> > > 
> > > 1            226718       50       143
> > > 2           2187965       50       182
> > > 
> > > Data attributes:
> > >    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
> > >    
> > >       1       1       1       1       1       1
> > > 
> > > Libraries
> > > 1. geoR
> > > 2. gstat
> > > 3. sp
> > > 4. lattice
> > > 
> > > >---------- Forwarded message ----------
> > > >From: Edzer Pebesma <edzer.pebesma at uni-muenster.de>
> > > >Date: 14 November 2013 21:15
> > > >Subject: Re: Regression kriging
> > > >To: Jordan Chetcuti <chetcuti at hawaii.edu>
> > > >
> > > >
> > > >You omitted the error, which is:
> > > >
> > > >Error in eval(expr, envir, enclos) : object 'm5005CVOL' not found
> > > >
> > > >it means that in "blank", the prediction locations, m5005CVOL is not
> > > >found (as is true of all other predictors).
> > > >
> > > >Please consider posting to r-sig-geo in the future.
> > > >
> > > >with best regards,
> > > >
> > > >Edzer Pebesma
> > > >
> > > >On 11/15/2013 03:30 AM, Jordan Chetcuti wrote:
> > > >> Dear Prof. Pebesma,
> > > >> 
> > > >> My name is Jordan Chetcuti and I am a graduate student at the
> > 
> > University
> > 
> > > >> of
> > > >> Hawaii at Manoa, in the Geography department.
> > > >> 
> > > >> I am attempting to do regression kriging on some of my data, but I am
> > > >> alas
> > > >> having a bit of a problem with gstat.
> > > >> 
> > > >> within my script this line works:
> > > >> 
> > > >> TotalKrige <- krige(Total~1, locations=bd, newdata=blank,
> > > >> model=fit_Total)
> > > >> 
> > > >> this does not:
> > > >> 
> > > >> TotalRegKrige <- krige(Total~m5005CVOL+n50010CVOL+n50015CVOL+DTM,
> > > >> locations=bd, newdata=blank, model=fit_r)
> > > >> 
> > > >> The problem seems to be in the "newdata" when regression kriging
> > > >> (replacing
> > > >> "blank" with "bd" does not cause the error, although it also does not
> > > >> krige
> > > >> between the points)
> > > >> 
> > > >> I was wondering if you would mind having a very quick look at this
> > > >> for
> > > >> me?
> > > >> My hope is that it is something I have simply mistyped. I've spent
> > > >> considerable time writing vba, vb.net and python scripts and numerous
> > > >> weeks
> > > >> working in R recently and I am usually pretty good at de-bugging.
> > 
> > Alas at
> > 
> > > >> the moment I can't seem to find a solution.
> > > >> 
> > > >> Any help would be greatly received.
> > > >> 
> > > >> Sincerely
> > > >> 
> > > >> Jordan Chetcuti
> > > 
> > > _______________________________________________
> > > R-sig-Geo mailing list
> > > R-sig-Geo at r-project.org
> > > https://stat.ethz.ch/mailman/listinfo/r-sig-geo
> > 
> > -----
> > Ashton Shortridge
> > Associate Professor                     ashton at msu.edu
> > Dept of Geography                       http://www.msu.edu/~ashton
> > 235 Geography Building          ph (517) 432-3561
> > Michigan State University               fx (517) 432-1671
> 
> 	[[alternative HTML version deleted]]
> 
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo

-----
Ashton Shortridge
Associate Professor			ashton at msu.edu
Dept of Geography			http://www.msu.edu/~ashton
235 Geography Building		ph (517) 432-3561
Michigan State University		fx (517) 432-1671



More information about the R-sig-Geo mailing list