繁体   English   中英

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

[英]plot residuals in spatstat without overlaying points

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

我有点模式模型通过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")

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

如果问题是由于表示原子的符号太大而无法看到细节,那么您可以使用其中一个将传递给plot.ppp的参数markscalemaxsize来减小这些符号的比例。

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

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

with(res, Smooth(qlocations %mark% density)) 

给出表示残差量度的连续分量的图像。

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

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

当然,你想要只绘制连续部分是一个有效点,一个简单的方法就是将type = "n"传递给plot.msr ,并将其发送到plot.ppp 但是,这仍然会在左侧给出一个奇怪的符号图。

或者,您可以使用内部spatstat函数augment.msr将像素图像添加到残留对象,然后使用该图像进行绘图(请注意,使用内部函数不能保证在spatstat未来版本中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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM