Re: [R] spatstat regression troubles

From: Rolf Turner <>
Date: Sun, 17 Apr 2011 11:18:26 +1200

On 17/04/11 02:17, Gregory Ryslik wrote:
> Hi Mr. Turner,
> You are correct that I am confused a bit by the RCode. Basically, I have 3772 observations of data and only about 500

     500? You said 944 previously. Doesn't really matter, but.
> of them correspond to where "people" exist. For the other observations, I just have the covariate values so I thought that this was appropriate. Thus, where "people exist" is my spatial point pattern and everywhere else I just have covariate values.
> Thank you for your help and suggestions on how to fit the data. I was able to get it to work using the data frame method but I seem to be having difficulty getting the image thing to work.
> Basically, at the moment, I have two matrices for Z1 and Z2 which is in the form of (z, x, y) where z is the value, x is the x-coordinate and y-is the y coordinate. Thus the matrix dimension is 3772x3. I've tried converting this to an image but they do a index swap so I'm not quite sure what the correct way to do it would be? Hopefully, I would get the fit using the image way and see that the fits are consistent.
> Thank you again for your help!

To make use of a covariate you ***really*** need to have the values of the covariate
available at ***all*** points of the observation window. In your situation I think that
the best that you can do is to interpolate between the actual observations.

You could use, I think, the interp() function from the "akima" package. Here's a toy

> require(akima)
> W <- owin(c(73,135),c(18,54))
> M <- as.mask(W,dimyx=c(250,500)) # Window is roughly twice as wide as
> it is high.
> set.seed(42)
> X <- runifpoint(3772,win=W)
> Z <- exp(2*(sin(2*X$x/pi) + sin(2*X$y/pi))) # A made-up covariate.
> XYZ <- interp(X$x,X$y,Z,xo=M$xcol,yo=M$yrow,linear=FALSE,extrap=TRUE)
> IZ <- im(t(XYZ$z),xcol=XYZ$x,yrow=XYZ$y) # Note the transpose of the z
> matrix!
> E <-,y){exp(2*(sin(2*x/pi) + sin(2*y/pi)))},W=W)
> plot(listof(exact=E,interp=IZ),nrows=2,main="")

The interpolated image is a bit rough compared with the truth (which we know in this
artificial case) but no worse than what one might reasonably expect.

HTH          cheers,

             Rolf Turner mailing list PLEASE do read the posting guide and provide commented, minimal, self-contained, reproducible code. Received on Sat 16 Apr 2011 - 23:25:52 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sun 17 Apr 2011 - 00:00:31 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive