点过程的强度 - 协变量的权重 - spatstat

intensity of point process - weights with covariate - spatstat

我正在针对特定情况尝试使用 spatstat。在我的道路 shapefile 中,我有属性速度和每条道路上重型车辆的百分比。据观察,在高速和重型车辆的道路上很可能发生严重事故(因为道路没有适当的访问控制和行人横穿马路)。我们知道事故的发生率是一定的(每 5 公里)。

  1. 我想生成一个具有该速率的随机泊松,但考虑到这些点更多地发生在高速道路(或高百分比卡车)上
  2. 如果可能,还包括卡车的第二个变量 %

对这两个方面进行建模以进行小型概念验证的最佳方法是什么?我已经阅读了(部分)spatstat 书和关于协变量对强度影响的部分,但这对我来说仍然不清楚。

谢谢

spatstat 函数 rpoislpp 在网络上生成具有给定强度的泊松随机点模式。在这种情况下,您需要空间变化的强度,可以通过空间位置的函数指定。也就是说,您需要类似 rpoislpp(f, L) 的东西,其中 L 是线性网络,f 是强度函数。

我假设您已获得每条道路的协变量值(如限速和货车比例)。然后您需要构建一个函数来查找网络上任何空间位置的这些值。一旦你有了这个,你就可以用它来写强度函数。

首先,假设您有一个网络 L(class linnet 的对象)。网络段可以按照您指定它们时给定的原始顺序进行索引:或者您可以通过 S <- as.psp(L) 提取这些段。我们需要一个向量 z 给出每个片段的协变量值(因此这将是一个长度为 n=nsegments(S) 的数字向量)。那么 z[i] 是沿线段 i 的协变量值。 (注意:如果你有每个 道路 的协变量值,其中一条道路由 L 的多个路段组成,那么你首先需要找出 [=16= 的哪些路段]属于每条路,构造z.)

接下来执行以下操作:

Zfun <- linfun(function(x,y,seg,tp) { z[seg] }, L)

这会在线性网络 (class linfun) 上创建一个函数,用于评估 L 上任何空间位置的协变量。要检查它是否正确构建,请键入 plot(Zfun)

现在假设您希望点处理强度为 lambda = exp(3*Z+2)。然后做

lam <- function(x,y,seg,tp) { exp(3 * z[seg] + 2) }
lambda <- linfun(lam, L)

(不用说了,大括号里可以写任何数学表达式;而且可以有多个协变量等)

最终生成随机点:

X <- rpoislpp(lambda, L)