我正在尝试将Geyer模型与点模式相匹配,我设法毫无困难地这样做。但是,当我想检查诊断图时,我遇到了问题。如果我给予价值"所有"参与#34;其中"它绘制了4个面板没有问题,但是当我要求平滑的剩余量度时("平滑"我得到以下错误:
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=
中允许的所有选项同样运气。
任何想法我可能做错了什么? (我将它视为我)或者我怎样才能以其他方式获得平滑的残差?
答案 0 :(得分: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)
答案 1 :(得分:1)
确认这是一个错误。它已在spatstat
的下一个开发版本(版本1.45-0.026
)中修复。感谢您提请我们注意。