Gibbs区域互动模型的效果乐趣和验证错误

时间:2019-04-24 23:33:41

标签: r spatstat

我正在使用spatstat v.1.59-0构建一些点流程模型,但是某些验证工具(特别是effectfun和残差图parres

模型的组成部分是rings_pp,它由52个考古点的点位置组成; elev是将DEM转换为spatstat像素图像。我正在尝试使用Area Interaction参数(AreaInter)和elev

评估Gibbs点过程模型的拟合度

我使用以下代码使模型适合数据:
    rr1 <- data.frame(r=seq(100, 2000, by=50)) p1 <- profilepl(rr1, AreaInter, rings_pp~elev, aic=T) ppm5 <- as.ppm(p1)

除我尝试使用effectfunparres来评估海拔协变量的效果外,其他所有方法似乎都可以正常工作(例如,其他诊断表明该模型与数据合理匹配) ,他们不会工作。

parres给出错误Error in m[, d$relevant, drop = FALSE] : (subscript) logical subscript too long,当我追溯错误时,我得到以下信息:

`> trace(parres(ppm5, "elev"))
Error in m[, d$relevant, drop = FALSE] : 
  (subscript) logical subscript too long
> traceback()
4: effectFun.can(x)
3: effectFun(xxx)
2: parres(ppm5, "elev")
1: trace(parres(ppm5, "elev"))`

effectfunse.fit=FALSE时有效,但在se.fit=TRUE时无效,并给出以下错误:Error in quadform(mm, vc) : ncol(x) == nrow(v) is not TRUE当我追溯错误时,得到以下信息:

`> trace(plot(effectfun(ppm5, "elev", se.fit=T)))
Error in quadform(mm, vc) : ncol(x) == nrow(v) is not TRUE
> traceback()
8: stop(simpleError(msg, call = sys.call(-1)))
7: stopifnot(ncol(x) == nrow(v))
6: quadform(mm, vc)
5: predict.ppm(orig.model, locations = fakeloc, covariates = fakecov, 
   se = se.fit)
4: predict(orig.model, locations = fakeloc, covariates = fakecov, 
   se = se.fit)
3: effectfun(ppm5, "elev", se.fit = T)
2: plot(effectfun(ppm5, "elev", se.fit = T))
1: trace(plot(effectfun(ppm5, "elev", se.fit = T)))`

当我拟合非均匀模型ppm1 <- ppm(rings_pp, ~elev)时,effectfunparres都可以正常工作并显示出良好的拟合度(尽管使用残差K函数Kres则表明模型是“ t考虑集群)。因此,这似乎与我如何适应Gibbs AreaInter模型有关。

任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

再次感谢您提出一个明确的问题。

这是一个错误,可以通过简单的示例进行演示

fit <- ppm(cells ~ x, AreaInter(0.07))
plot(effectfun(fit, se.fit=TRUE))
plot(parres(fit))

我会尽快调查并修复它。

后记:此问题已在the GitHub repository上的spatstat(版本1.59-0.020)的开发版本中得到解决