0

我正在尝试将 Geyer 模型拟合到点模式,并且我设法做到了没有麻烦。但是,当我想检查诊断图时,我遇到了一个问题。如果我为参数“which”赋予值“all”,它会毫无问题地绘制 4 个面板,但是当我只要求平滑残差测量时(which =“smooth”我得到以下错误:

Error in as.vector(rasterx.mask(W)) : error in evaluating the argument 'x' in selecting a method for function 'as.vector': Error in validate.mask(w) : w is not a binary mask

可重现的代码如下:

library(spatstat)
#generate a pattern
pattern <- rpoispp(300)
#generate a covariate
cov <- rnoise(rgen = rnorm, dimyx=32, mean=2, sd=1, w = pattern$window)

#fit the model
fit <- ppm(pattern ~ cov, Geyer(r = 0.01, s = 0.02))

#plot diagnostics
diag <- diagnose.ppm(fit, type = "pearson", which = "all") #this works
diag <- diagnose.ppm(fit, type = "pearson", which = "smooth") #this doesn't

type=以同样的运气尝试了所有允许的选项。

有什么想法我可能做错了吗?(我假设是我)或者我怎样才能以其他方式获得平滑的残差?

4

2 回答 2

1

这可能是plot.diagppm. 我现在在放假,所以我现在不会采取很多行动。我会在https://github.com/spatstat/spatstat/issues上报告这个错误,希望 Adrian 能在很长的时间内修复它。

目前的解决方法:

library(spatstat)
#generate a pattern
pattern <- rpoispp(300)
#generate a covariate
cov <- rnoise(rgen = rnorm, dimyx=32, mean=2, sd=1, w = pattern$window)

#fit the model
fit <- ppm(pattern ~ cov, Geyer(r = 0.01, s = 0.02))

#plot diagnostics
diag <- diagnose.ppm(fit, type = "pearson", which = "smooth", plot.it = FALSE)
s <- diag$smooth$Z
plot(s)
于 2016-04-18T18:14:37.640 回答
1

只是确认这是一个错误。它已在spatstat(version 1.45-0.026) 的下一个开发版本中修复。谢谢你让我们注意到这一点。

于 2016-04-19T00:26:43.830 回答