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

时间:2016-09-15 10:53:16

标签: r spatstat

我在试图为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 中的点模式模型生成杠杆图时遇到了一些麻烦。这很奇怪,因为昨天它与完全相同的模型完美无缺,现在它没有。

我有一个包含3个协变量和Geyer交互的模型,它可以正确运行而不会产生任何警告消息。但是,当我尝试制作杠杆图时,我首先得到这个警告:

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

然后是这个错误:

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试图分裂正交方案的事实有关,因为之前,当它没有崩溃并且我能够用完全相同的模型产生杠杆图时,它没有'我必须分开它(或者至少它不让我知道它!)

apply plugin:'com.google.gms.google-services'

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

2 个答案:

答案 0 :(得分:1)

感谢您报告此事。这是spatstat中的一个错误,我们会尽快修复。如果计算机上有足够的内存,则可以通过设置:

来避免正交分割
spatstat.options(maxmatrix = 2^26)

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

答案 1 :(得分:0)

错误消息

  

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

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

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

消息

  

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

不是警告,只是您的信息的消息。