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

时间:2016-10-29 05:04:23

标签: spatstat

我正在为特定情况尝试spatstat。在我的道路形状文件中,我有每条道路上的属性速度和重型车辆的百分比。据观察,在高速和重型车辆的道路上可能发生严重事故(因为道路没有适当的出入控制和行人过马路)。我们知道有一定的事故率(每5公里伸展)​​。

  1. 我想生成一个具有该速率的随机泊松,但是给予重量更高的道路上的点数(或者高卡车率)
  2. 并且如果可能还包括第二个变量%of truck
  3. 对这两个方面进行建模以制作小概念证明的最佳方法是什么?我已阅读(部分)spatstat书和关于协变量对强度影响的部分,但这对我来说仍然不清楚。

    由于

1 个答案:

答案 0 :(得分:1)

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

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

首先,假设您有一个网络L(类linnet的对象)。网络的各个部分可以按指定时给出的原始顺序编制索引:或者您可以按S <- as.psp(L)提取这些细分。我们需要一个向量z给出每个段的协变量值(所以这将是一个长度为n=nsegments(S)的数字向量)。然后z[i]是沿i段的协变量值。 (注意:如果您有每个道路的协变量值,其中道路由多个L段组成,那么您首先需要确定L的哪些段属于每条道路,并构建z。)

接下来执行以下操作:

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

这会在线性网络(类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)