在没有重叠点的情况下绘制spatstat中的残差

时间:2016-04-11 09:19:27

标签: r spatial spatstat

这可能很简单,但我花了很多时间试图弄清楚没有任何运气,也许任何人都可以帮助我。

我通过spatstat中的ppm()函数拟合点模式模型,(下面的可重现代码),当我绘制残差时,它会自动绘制残差图像上的点,这使得很难看到任何东西。有谁知道如何避免它?

代码:

library(spatstat)
pattern <- rpoispp(300)
cov <- rnoise(rgen = rnorm, dimyx=32, mean=2, sd=1, w = pattern$window)
fit <- ppm(pattern ~ cov)
res <- residuals.ppm(fit, type = "raw")
plot(res, how = "imagecontour")

2 个答案:

答案 0 :(得分:2)

数据点不会在残差之上“过度绘制”:剩余量度包括每个数据点的质量'原子',以及平滑密度,因此情节是正确的。

如果问题是由于表示原子的符号太大而无法看到细节,那么您可以使用其中一个参数markscale或{{1来减少这些符号的比例将传递给maxsize

然后,如果有很多数据点,您可能更好地平滑剩余度量。如果plot.ppp是您计算的剩余量度,请尝试res。有关详细信息,请参阅plot(Smooth(res))的帮助。

如果您确实需要提取剩余度量的平滑密度组件,您可以遵循Ege的建议,或者使用Smooth.msr。例如

with.msr

给出一个代表剩余测量的连续分量的图像。

这些注释仅适用于原始残差,其中所有原子具有相等的质量1.对于其他类型的残差,原子具有不相等的质量,并且显示它们变得更加重要。

答案 1 :(得分:1)

点过程模型的残差实际上是一个带符号的度量,它具有离散部分(集中在观察位置)和连续部分。如果您只绘制连续部分,那么您并没有真正绘制残差...

当然,您只想绘制连续部分是一个有效的点,获得此功能的一种简单方法是将type = "n"传递给plot.msr,然后将plot.ppp发送给spatstat 。但是,这仍然会在左侧给出一个奇怪的符号图。

或者,您可以使用内部augment.msr函数spatstat将像素图像添加到残留对象,然后使用该图像进行绘图(请注意,使用内部函数不能保证工作在library(spatstat) pattern <- rpoispp(300) cov <- rnoise(rgen = rnorm, dimyx=32, mean=2, sd=1, w = pattern$window) fit <- ppm(pattern ~ cov) res <- residuals.ppm(fit, type = "raw") plot(res, how = "imagecontour") res <- augment.msr(res) den <- attr(res, "smoothdensity") plot(den) )的未来版本中:

{{1}}