在spatstat中为空间变化的相对风险的非参数估计指定自定义权重。

问题描述 投票:0回答:1

是否有办法在 relrisk.ppp 作用于 spatstat (1.63-3版)?

さ氖焙? relrisk.ppp 函数调用 density.ppp 函数,它确实允许用户指定自己的权重。

例如,让我们在提供的 spatstat.data::urkiola 数据,其中的位置不是单独的树木,而是树群,我们有第二个数字标记来表示每个点位上树木的频率。

urkiola_new <- spatstat.data::urkiola
urkiola_new$marks <- data.frame("type" = urkiola_new$marks, "freq" = rpois(urkiola_new$n, 3))

f1 <- spatstat::relrisk(urkiola_new, weights = urkiola_new$marks$freq)

当使用 urkiola_new 应召 relrisk, urkiola_newstopifnot(is.multitype(X))relrisk.ppp. 接下来,我试着分别将权重指定为一个向量,同时使用原始的 urkiola 数据。

f2 <- spatstat::relrisk(urkiola, weights = urkiola_new$marks$freq)

却被一个警告的人抓住了。pixellate.ppp 内部功能 density.ppp 函数。

Error in pixellate.ppp(x, ..., padzero = TRUE) : length(weights) == npoints(x) || length(weights) == 1 is not TRUE

当我把权重转换为列表时,也会出现同样的错误。

urkiola_weights <- split(urkiola_new$marks$freq, urkiola_new$marks$type)

f3 <- spatstat::relrisk(urkiola, weights = urkiola_weights)

我怀疑有一种方法可以巧妙地指定权重,但我还没有找到。任何建议或指导都会很有帮助,谢谢!

r spatstat
1个回答
0
投票

函数 relrisk.ppp 目前还没有被设计为处理重量。的帮助条目。relrisk.ppp 没有提到权重。

上面的例子不能用,因为 relrisk.ppp 适用 density.ppp 分别对每一种类型的点的子模式,和额外的参数 weights 是这些子模式的错误长度。

我将把这个问题作为一个功能请求,把这个功能添加到 relrisk.ppp. 应该很快就能完成。

更新注:这一点现已在开发版中实施。spatstat 1.64-0.018 可在 spatstat github仓库

© www.soinside.com 2019 - 2024. All rights reserved.