【问题标题】:How to modify the value of nrank when plotting the envelope for an mppm object in spatstat?在 spatstat 中绘制 mppm 对象的包络时如何修改 nrank 的值?
【发布时间】:2021-10-08 19:31:42
【问题描述】:

我的对象model 是一个mppm 对象,它是通过使用Rspatstat 中的mppm 函数在多个独立数据集上拟合模型而获得的。

由于envelope 函数不接受mppm 类型的输入,我使用以下代码(参见问题Plot an envelope for an mppm object in spatstat)来研究它的信封:

gamma= 1 - 0.95^(1/3)
nsims=round(1/gamma-1)
sims <- simulate(model, nsim=2*nsims)
SIMS <- list()
for(i in 1:nrow(sims)) SIMS[[i]] <- as.solist(sims[i,,drop=TRUE])
Hplus <- cbind(data, hyperframe(Sims=SIMS))

EE <- with(Hplus, envelope(Points, Kcross.inhom,funargs=list("A","A"), nsim=nsims, simulate=Sims,savefuns=TRUE,nrank = 1))

plot(pool(EE), main="A to A interactions")

但是,参数nrank 的值似乎对最终结果没有影响(例如,nSD 的值也是如此)。但是将 VARIANCE 设置为 True 确实会修改结果。使用mppm 对象时如何选择信封的等级?

【问题讨论】:

  • 这个例子不能复制,因为model没有定义。请编辑示例以使其可重现。

标签: r spatstat


【解决方案1】:

这与mppm无关。

执行完倒数第二行后,EE 是一个信封对象列表。这些对象已使用您指定的 nrank 值正确计算。

问题是在最后一行中,pool 命令不遵守这些信封中使用的nrank 的值。这是一个错误,我会修复它。

与此同时,以下代码将为您提供您想要的:

Epool <- pool(EE, savefuns=TRUE)
Epool2 <- envelope(Epool, nrank=2)

这里的第一行从EE 中的所有信封中收集所有模拟函数,并从中构造一个单一的池化信封对象,其中也包含所有这些模拟函数。第二行使用envelope.envelope 使用保存的函数并指定nrank=2 重新计算包络限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 2011-03-31
    • 2020-10-26
    • 2016-01-05
    • 1970-01-01
    相关资源
    最近更新 更多