如何从R中的mppm找出参数

问题描述

我正在使用 R 中的 spatstat 库。

我有几个根据自己的dataset构建的点模式对象。点模式仅包含其中点的x和y坐标。我想通过 Strauss互动使点模式适合 Gibbs流程,以建立模型并模拟类似的点模式。如果我一次使用一个点模式,就可以使用 ppm 功能。我在从ppm函数返回的ppm对象上使用了 rmhmodel 函数rmhmodel函数为我提供了参数betagammar,我需要在 rStrauss 函数中使用它们来进一步模拟新的点模式。仅供参考,我不是直接使用 simulate 函数,因为我希望新的模拟点模式具有灵活的模拟点数,而这些点不会给我提供

现在,如果我想使用自己拥有的所有点模式,可以按照{{1的复制点模式”一章中的描述构建hyperframe点模式。 }}教科书,但是它需要 mppm 函数而不是ppm函数来适应模型,并且在我试图找出模型参数时Baddeleymppm不兼容{ {1}},rmhmodelbeta

如何从gamma对象中提取合适的rbetagamma

解决方法

有几种方法可以做到这一点。

如果仅通过键入对象名称print(从ppmmppm获得的拟合模型,则打印输出将包含对拟合模型的描述,包括模型参数。

如果将函数parameters应用于从ppm获得的拟合模型,您将获得带有适当名称的参数值列表。

fit <- ppm(cells ~ 1,Strauss(0.12))
fit
parameters(fit)

对于从mppm获得的模型,可能有不同的参数值应用于数据超帧的每一行,因此您必须执行lapply(subfits(model),parameters),结果是一个包含一个条目的列表超帧的每一行,其中包含与每一行相关的参数。

A <- hyperframe(Bugs=waterstriders)
mfit <- mppm(Bugs ~ 1,data=A,Strauss(5))
lapply(subfits(mfit),parameters)

或者,您可以通过coef提取规范参数,并将其转换为自然参数。

您写道:

我不直接使用simulate函数,因为我希望新的模拟点模式具有simulate没有给我的灵活的点数。

这不对。函数simulate.mppm生成具有可变点数的模拟实现。尝试simulate(mfit)