在对Cox空间点过程进行建模时,例如thomas、LGCP、MatClust等,如何验证拟合的模型?

问题描述 投票:0回答:1
library(spatstat)

# Definir a janela espacial
Window <- owin(c(0, 10), c(0, 10))

# Definir uma função de intensidade espacial
intensity_function <- function(x, y) {
  # Intensidade aumenta com a distância da origem
  intensity <- 1 + 0.2 * sqrt(x^2 + y^2)
  return(intensity)
}

# Gerar um processo de Poisson não homogêneo
process <- rpoispp(intensity_function, win=Window)

# Plotar o processo
fit <- kppm(process, ~1,"Thomas")    
fit1 <- kppm(process, ~1,"MatClust")  
fit2 <- kppm(process, ~1,"LGCP")  

我确实使用了AIC,但他们返回了错误,我确实测试了残差,但功能诊断不可用,我确实使用了qqplot,但也返回了错误。

spatial spatstat
1个回答
0
投票

您似乎想要同时进行模型选择(使用AIC或

anova
等工具)和模型验证(使用残差和诊断)。

对于型号选择

我尝试使用AIC,但他们返回错误

提示:发布问题时,请包含您键入的命令和返回的错误消息。)

您输入的命令大概是

AIC(fit)
。当我尝试此操作时,错误消息显示

错误:logLik 仅适用于配备 method='palm' 或 method='clik2' 的 kppm 对象

这表明,在对

kppm
的调用中,您应该设置
method='palm'
method='clik2'

如果您在错误消息后立即键入

traceback()
,则会打印函数调用的嵌套序列。我们可以看到命令
AIC(fit)
被分派到方法
AIC.kppm
AIC.kppm
的帮助文件特别提到了

这些方法仅适用于通过最大化 复合可能性:Palm 可能性(Tanaka 等人, 2008)或二阶复合似然(Guan,2006),通过 使用参数“method=”palm“”调用“kppm”或 分别是‘method="clik2"’。

因此,获取拟合模型的 AIC 值的方法是使用参数

method="palm"
method="clik2"
来拟合模型。示例:

fitT <- kppm(redwood ~ 1, "Thomas", method="p")
AIC(fitT)

当一个模型是另一个模型的特例时,您还可以执行诸如

anova
之类的操作来比较两个模型。

对于模型验证,恐怕可用的工具仅限于

kppm
对象。你可以用

diagnose.ppm(as.ppm(fitT), compute.sd=FALSE)

获得趋势分量的标准非正式诊断,忽略聚类分量。拟合集群过程模型的非正式验证仍然是一个研究领域。

顺便说一下,

diagnose
不是
spatstat
中定义的泛型,所以
diagnose(fitT)
不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.