2

我在尝试为 中的点模式模型生成杠杆图时遇到一些麻烦spatstat。不过这很奇怪,因为昨天它在完全相同的模型上工作得非常好,而现在却不行。

我有一个具有 3 个协变量和一个 Geyer 交互的模型,它可以正常运行而不会产生任何警告消息。但是,当我尝试生成杠杆图时,我首先收到以下警告:

Large quadrature scheme split into blocks to avoid memory size 
limits;6404 dummy points split into 8 blocks, the first 7 blocks 
containing 801 dummy points and the last block containing 797 dummy 
points 

然后这个错误:

Error in ppmInfluenceEngine(fit, what = what, ..., iScore = iScore, iHessian = iHessian,  :
number of items to replace is not a multiple of replacement length

我认为问题与 R 试图拆分正交方案这一事实有关,因为之前,当它没有崩溃并且我能够使用完全相同的模型生成杠杆图时,它不必拆分它(或者至少它不会让我知道它!)

library(spatstat)  
#generate a pattern
pattern <- rpoispp(1454)
summary(pattern)
#generate a covariate
cov1 <- rnoise(rgen = rnorm, dimyx=32, mean=2, sd=1, w = pattern$window)
cov2 <- rnoise(rgen = rnorm, dimyx=32, mean=1, sd=7, w = pattern$window)
cov3 <- rnoise(rgen = rnorm, dimyx=32, mean=5, sd=10, w = pattern$window)

#fit the model
fit <- ppm(pattern ~ cov1 + cov2 + cov3, Geyer(r = 0.01, s = 0.02))

leverage(fit) #this produces the warning and then the error

我正在运行 R 版本 3.3.1 和 spatstat 版本 1.46-1

4

2 回答 2

1

感谢您报告此事。这是 spatstat 中的一个错误,我们将尽快修复它。如果您的计算机上有足够的内存,您可以通过设置来避免正交分裂:

spatstat.options(maxmatrix = 2^26)

注意:如果您这样做并且没有足够的内存,您的计算机可能会挂起一段时间。在某些情况下,可能很难中断这些计算,所以为了安全起见,我会在尝试之前保存所有打开的文件等。

于 2016-09-15T11:18:01.143 回答
0

错误信息

要替换的项目数不是替换长度的倍数

确实是一个错误spatstat,与稀疏矩阵的处理有关。谢谢你让我们注意到这一点。

该错误已在spatstat1.46-1.043 或更高版本的当前开发版本中得到修复,可从spatstat github 存储库获得。

讯息

大型正交方案分成块以避免内存大小限制;

不是警告,只是一条信息供您参考。

于 2016-09-16T06:01:53.670 回答