我最近对空间点模式的尝试让我开始研究 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 对象。
感谢想法和建议。
mppm
目前不支持 Cox 流程。
您可以执行以下操作
使用
mppm
将模型的趋势部分拟合到复制的点模式数据,例如 m <- mppm(Y ~ X, data=G)
使用
predict.mppm
提取每个点模式的拟合强度
对于每个点模式,使用从模型获得的相应强度,使用
Kinhom
(带有参数 ratio=TRUE
)计算非齐次 K 函数
使用
pool
组合 K 函数
通过将
lgcp.estK
应用于池化 K 函数来估计 LGCP 的簇参数。
(可选)在步骤 4 之后,您可以使用
pcf.fv
将池化 K 函数转换为配对相关函数,然后使用 lgcp.estpcf
拟合聚类参数。
此方法假设相同的聚类参数将应用于每个点模式。如果您的数据由多个不同的模式组组成,并且您希望模型为不同的模式组分配不同的聚类参数值,则只需对每个组分别应用步骤 4 和 5。
上述方法似乎没有产生预期的结果。这是一个最小的工作示例,其中我们从具有恒定均值的 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