生成具有计算的λ的泊松点模式时出错

时间:2018-02-10 16:37:34

标签: r spatstat

我有一个二维点模式(没有标记),我试图使用包络和非均匀对相关函数在存在空间不均匀性的情况下测试聚类。我正在使用density.ppp函数估计数据的非均匀强度函数。以下是一些示例数据:

           x       y
1     533.03  411.58
2     468.39  622.92
3     402.86  530.94
4     427.13  616.81
5     495.20  680.62
6     566.61  598.99
7     799.03  585.16
8    1060.09  544.23
9     144.66  747.40
10    138.14  752.92
11    449.49  839.15
12    756.45  713.72
13    741.01  728.41
14    760.22  740.28
15    802.34  756.21
16    799.04  764.89
17    773.81  771.97
18    768.41  720.07
19    746.14  754.11
20    815.40  765.14

总共有~1700个数据点

这是我的代码:

library("spatstat")

WT <- read.csv("Test.csv")

colnames(WT) <- c("x","y")

#determine bounding window
win <- ripras(WT)
unitname(win) <- c("micrometer")

#convert to ppp data class
WT.ppp <- as.ppp(WT, win)
plot(WT.ppp)

#estimate intensity function using cross validation
I <- density.ppp(WT.ppp,sigma=bw.diggle(WT.ppp),adjust=0.3,kernal="epanechnikov")
plot(I)

#predetermined r values for PCF 
radius <- seq(from = 0, to = 50, by = 0.5)

#use envelopes to test the null hypothesis (ie. inhomogenous poisson process)
PCF_envelopes <- envelope(WT.ppp,divisor="d", pcfinhom,r = radius,nsim=10,simulate=expression(rpoispp(I)) )

当我运行rpoisspp(I)时,我收到以下错误:

Error in sample.int(npix, size = ni, replace = TRUE, prob = lpix) : 
   negative probability

我似乎无法弄清问题是什么......任何建议?

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

这种情况正在发生,因为图片core-site.xml包含一些负值,可能是非常小的值但是负值。您可以通过计算Irange(I)min(I)来检查。

any(I < 0)的帮助表示由于数字错误,结果可能包含负值(非常小的值)。要删除这些内容,您需要在density.ppp

的调用中设置positive=TRUE

顺便说一句,参数density.ppp在上面的代码中拼写错误。向量kernel的间距太粗 - 你最好不要指定这个参数。此外,您无需键入r,只需density.ppp