杠杆函数错误:要替换的项目数不是替换长度的倍数

error in leverage function: number of items to replace is not a multiple of replacement length

我在尝试为 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

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

spatstat.options(maxmatrix = 2^26)

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

错误信息

number of items to replace is not a multiple of replacement length

确实是spatstat中的一个错误,与稀疏矩阵的处理有关。 感谢您提请我们注意此事。

该错误已在 spatstat 的当前开发版本中修复,版本 1.46-1.043 或更高版本,可从 the spatstat github repository 获得。

留言

Large quadrature scheme split into blocks to avoid memory size limits;

不是警告,只是供您参考的消息。