首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有协变量- spatstat的点过程权值强度

具有协变量- spatstat的点过程权值强度
EN

Stack Overflow用户
提问于 2016-10-29 05:04:23
回答 1查看 147关注 0票数 0

我正在找一个特殊的案子。在我的道路形状文件,我有属性速度和%的重型车辆在每条道路上。据观察,在速度较快和车辆较重的道路上,可能会发生严重事故(因为道路没有得到适当控制,行人过马路)。我们知道事故发生的速度(每5公里)。

  1. 我想用这个速度产生一个随机的中毒,但要考虑到在高速(或高%卡车)的道路上更多地发生点。
  2. 如果可能的话,也包括卡车的第二个变量

什么是最好的方式来模拟这两个方面来做一个小的概念证明?我读过一些关于协变量对强度的影响的文献和章节,但这对我来说还不清楚。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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。)

接下来,执行以下操作:

代码语言:javascript
复制
Zfun <- linfun(function(x,y,seg,tp) { z[seg] }, L)

这在线性网络(linfun类)上创建了一个函数,用于在L上的任何空间位置计算协变量。要检查它的构建是否正确,输入plot(Zfun)

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

代码语言:javascript
复制
lam <- function(x,y,seg,tp) { exp(3 * z[seg] + 2) }
lambda <- linfun(lam, L)

(不用说,你可以在括号中写出任何数学表达式;你可以有多个协变量,等等)

最后生成随机点:

代码语言:javascript
复制
X <- rpoislpp(lambda, L)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40316215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档