使用 mppm 将非均匀 Cox LGCP 拟合到复制点过程

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

我最近对空间点模式的尝试让我开始研究 LGCP Cox 过程。就我而言,我实际上有一系列点模式,我想将它们拟合到单个模型中。我之前的一项询问让我使用 mppm 来训练此类模型(感谢 Adrian Baddeley!)。我的下一个问题涉及在 mppm 的背景下使用这种类型的 Cox 模型。

是否可以使用 mppm 将非均匀 LGCP Cox 过程(或其他类型的 Cox 过程)拟合到复制点模式?我看到了一些关于拟合吉布斯过程的信息,但并不是真正适合考克斯过程的信息。 通过对“随机”论点的一些创造性运用,答案似乎是“可能”的。

为了举例,假设我正在使用点模式 Y 与单个协变量 X(这是单个 im)进行拟合。对 kppm 的调用将是:

myModel = kppm(Y ~ X,"LGCP")

如果我将一个简单的非齐次泊松过程拟合到超帧 G 中的复制点模式和相关协变量,我相信调用将如下所示:

myModel = mppm(Y ~ X, data=G)

在阅读了 SpatStat 书的第 16 章后,我认为可以通过使用调用 rLGCP 的模拟强度来拟合复制的 LGCP Cox 模型,也许像这样......

myLGCP = rLGCP(model="exp",mu=0,saveLambda=TRUE,nsim=2,win=myWindow)
myIntensity = lapply(myLGCP,function(x) attributes(x)$Lambda)
G$Z = myIntensity

myModel = mppm(Y ~ X, data=G, random=~Z|id)

上述方法“运行”没有错误......但我不知道我是否距离实际完成我想做的事情还很遥远。还有一点不清楚如何使用拟合对象来模拟模型的实现,因为simulate.kppm 需要 kppm 对象。

感谢想法和建议。

r spatstat
2个回答
0
投票

mppm
目前不支持 Cox 流程。

您可以执行以下操作

  1. 使用

    mppm
    将模型的趋势部分拟合到复制的点模式数据,例如
    m <- mppm(Y ~ X, data=G)

  2. 使用

    predict.mppm

    提取每个点模式的拟合强度
  3. 对于每个点模式,使用从模型获得的相应强度,使用

    Kinhom
    (带有参数
    ratio=TRUE
    )计算非齐次 K 函数

  4. 使用

    pool

    组合 K 函数
  5. 通过将

    lgcp.estK
    应用于池化 K 函数来估计 LGCP 的簇参数。

(可选)在步骤 4 之后,您可以使用

pcf.fv
将池化 K 函数转换为配对相关函数,然后使用
lgcp.estpcf
拟合聚类参数。

此方法假设相同的聚类参数将应用于每个点模式。如果您的数据由多个不同的模式组组成,并且您希望模型为不同的模式组分配不同的聚类参数值,则只需对每个组分别应用步骤 4 和 5。


0
投票

上述方法似乎没有产生预期的结果。这是一个最小的工作示例,其中我们从具有恒定均值的 LGCP 生成 100 个复制点模式,并表明我们无法学习正确的参数。如果我误解了上面的算法,请帮助我理解。

reps = 100
W = owin(c(0,1),c(0,1))
cox.sim = spatstat.random::rLGCP(model='gauss',mu = 2,var=.1,scale=1/4,win = W,nsim = reps)
G = spatstat.geom::hyperframe(Y = cox.sim)
trend = spatstat.model::mppm(Y ~ 1, G, W=W)
lambda = predict(trend, type='all')
Ki = lapply(1:reps, function(i) spatstat.explore::Kinhom(cox.sim[[i]],lambda = lambda$cif[[i]],W = W,ratio = T))
Kpool = do.call(spatstat.explore::pool,Ki)
cox.mod = spatstat.model::lgcp.estK(Kpool, startpar = c('var'=.1,'scale'=1/4),covmodel =  list('gauss'))
cox.mod$modelpar
© www.soinside.com 2019 - 2024. All rights reserved.