问题描述
我正在使用 R 中的 spatstat 库。
我有几个根据自己的dataset
构建的点模式对象。点模式仅包含其中点的x和y坐标。我想通过 Strauss互动使点模式适合 Gibbs流程,以建立模型并模拟类似的点模式。如果我一次使用一个点模式,就可以使用 ppm 功能。我在从ppm
函数返回的ppm对象上使用了 rmhmodel 函数。 rmhmodel
函数为我提供了参数beta
,gamma
和r
,我需要在 rStrauss 函数中使用它们来进一步模拟新的点模式。仅供参考,我不是直接使用 simulate 函数,因为我希望新的模拟点模式具有灵活的模拟点数,而这些点不会给我提供
现在,如果我想使用自己拥有的所有点模式,可以按照{{1的复制点模式”一章中的描述构建hyperframe
点模式。 }}教科书,但是它需要 mppm 函数而不是ppm函数来适应模型,并且在我试图找出模型参数时Baddeley
与mppm
不兼容{ {1}},rmhmodel
和beta
。
如何从gamma
对象中提取合适的r
,beta
和gamma
?
解决方法
有几种方法可以做到这一点。
如果仅通过键入对象名称print
(从ppm
或mppm
获得的拟合模型,则打印输出将包含对拟合模型的描述,包括模型参数。
如果将函数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)
。