我正在找一个特殊的案子。在我的道路形状文件,我有属性速度和%的重型车辆在每条道路上。据观察,在速度较快和车辆较重的道路上,可能会发生严重事故(因为道路没有得到适当控制,行人过马路)。我们知道事故发生的速度(每5公里)。
什么是最好的方式来模拟这两个方面来做一个小的概念证明?我读过一些关于协变量对强度的影响的文献和章节,但这对我来说还不清楚。
谢谢
发布于 2016-10-31 05:23:06
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)https://stackoverflow.com/questions/40316215
复制相似问题