在spatstat中绘制残差图,而不重叠点。

3

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

我通过在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个回答

2
数据点没有被“超量绘制”在残差上:残差指标包括每个数据点处的一份“原子”和一个平滑的密度,因此图表是正确的。
如果问题是因为表示原子的符号太大而看不清楚细节,那么您可以减小这些符号的比例,使用其中一个参数markscalemaxsize,它们将被传递给plot.ppp
再次,如果有很多数据点,您最好只是平滑残差测量。如果res是您计算的残差测量值,那么请尝试plot(Smooth(res))。有关更多信息,请参见Smooth.msr的帮助文档。
如果您真的需要提取残差测量的平滑密度组件,则可以遵循Ege的建议,或者使用with.msr。例如
with(res, Smooth(qlocations %mark% density)) 

提供一个代表残差度量连续部分的图像。

这些评论仅适用于原始残差,其中所有原子质量相等为1。对于其他类型的残差,其原子质量不均,因此显示它们变得更加重要。


我确实误解了情节。你和Ege的评论帮了我很多,非常感谢! - Virginia Morera Pujol

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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接