categorical values in im-objects (spatstat/ppm)
I cannot make head nor tail of your question.
I don't understand your use of eval.im() --- that function is
intended to do calculations on objects that are (already) of class "im".
E.g. if X is an image with real positive pixel values then
Y <- eval.im(sqrt(Y))
is an image whose pixel values are the square roots of the corresponding
pixel values from X.
The help for im() in spatstat explains pretty clearly how to create a
factor valued image.
I tried to have a look at the data to which you gave a link at the end
of your email. The "owin.csv" file has 44 lines, all but 6 of which are
missing. If the missing lines are eliminated the resulting window looks
like a triangle, despite having 6 vertices.
Of the 224 points in "events.csv", 208 fall outside the window referred
to above.
We can't really advise you about "zones" unless you provide "zones"
which you seem not to have done.
I suggest that you back off, get a coherent story together, provide a
complete and consistent set of data, and then ask again.
cheers,
Rolf Turner
On 10/03/15 11:02, Silvia Cordero-Sancho wrote:
Hello, I will like to fit a point process model (ppm) with several covariates. One of them is a grid with 15 categorical variables (zones). To recognized the values in my grid as categorical, I followed the code in the following link: http://stackoverflow.com/questions/26162955/r-package-spatstat-how-to-use-point-process-model-covariate-as-factor-when-pixe?answertab=active#tab-top *zone1<-eval.im <http://eval.im>(as.factor(zone))* *levels(zone1)<-c("A1","A2","A3","A4","B1","B2","B3","B4",* * "C1","C2","C3","C4","C5","C6","D")* *unitname(zone1)<-c("meter","meters")* But I am not sure if it really worked. If I run the function *is.factor(zone1)*, the result is FALSE, but if I run the function selecting any column or row (e.g. *is.factor(zone1[1,])* or *is.factor(zone1[,200])*) the results show as TRUE. However, the function *summary(zone1)* indicates that it is a factor value pixel image: factor-valued pixel image 2641 x 680 pixel array (ny, nx) enclosing rectangle: [992380, 1012780] x [732491, 811721] meters dimensions of each pixel: 30 x 30 meters Image is defined on a subset of the rectangular grid Subset area = 1577529000 square meters * Pixel values (inside window): A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 C3 C4 C5 C6 D 116928 5670 16614 6823 27917 7547 197 9354 132658 405515 1016 136784 576913 113978 194896 * *The distribution of the number of cells per zone is the same than the original file * However, when I used the layer within the ppm function, not all the categories are included in the analysis: *m1<-ppm(ag4u,~Z, covariates=list(Z=zone1), AreaInter(200))* *coef(summary(m1))* Estimate (Intercept) -16.4787854 ZA3 2.6334407 ZA4 1.4900159 ZB1 0.6177496 ZB2 0.3502884 ZB4 1.4179890 ZC1 -2.0643563 ZC2 -0.6806136 ZC4 -0.1897898 ZC5 -2.8285278 ZC6 1.5300109 ZD 2.1210203 Interaction 2.4118998 The zones identified as A1, A2, B3, C3 are excluded from the analysis Similarly, I get the same results when I used the following expression: *m2<-ppm(ag4u,~factor(Z),covariates=list(Z=zone), AreaInter(200)) * And the following error when I tried to plot the residuals... *qqplot.ppm(m1,nsim=100,verbose=F)* Error in model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels) : factor Z has new levels A2, C3 So, I think that the problem could be associated with functions I am employing to assign the factor-values. Is this is the problem, i*s there an alternative to define categorical values for im-objects? Or, it could be other reason for the exclusion of categories?* I will appreciate any advise.
Rolf Turner Technical Editor ANZJS Department of Statistics University of Auckland Phone: +64-9-373-7599 ext. 88276 Home phone: +64-9-480-4619