通过geyer模型的diagnose.ppm绘制平滑残差测量值时出错

时间:2016-04-18 09:54:19

标签: r spatial spatstat

我正在尝试将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=中允许的所有选项同样运气。

任何想法我可能做错了什么? (我将它视为我)或者我怎样才能以其他方式获得平滑的残差?

2 个答案:

答案 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)中修复。感谢您提请我们注意。