我正在使用spatstat v.1.59-0构建一些点流程模型,但是某些验证工具(特别是effectfun
和残差图parres
模型的组成部分是rings_pp
,它由52个考古点的点位置组成; elev
是将DEM转换为spatstat
像素图像。我正在尝试使用Area Interaction参数(AreaInter
)和elev
我使用以下代码使模型适合数据:
rr1 <- data.frame(r=seq(100, 2000, by=50))
p1 <- profilepl(rr1, AreaInter, rings_pp~elev, aic=T)
ppm5 <- as.ppm(p1)
除我尝试使用effectfun
和parres
来评估海拔协变量的效果外,其他所有方法似乎都可以正常工作(例如,其他诊断表明该模型与数据合理匹配) ,他们不会工作。
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"))`
effectfun
在se.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)
时,effectfun
和parres
都可以正常工作并显示出良好的拟合度(尽管使用残差K函数Kres
则表明模型是“ t考虑集群)。因此,这似乎与我如何适应Gibbs AreaInter
模型有关。
任何建议将不胜感激。
答案 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
)的开发版本中得到解决
。