2

我正在分析 STATS19 道路事故数据,值得称道的是由英国政府向公众提供。我想看看不同类型的事故是如何聚集在一起的。“G 函数”(此处描述)可用于测量点模式与完全空间随机性“CSR”情况的差异。

spatstat 很好地处理了这类问题,该envelope函数提供了一个可视化,显示模式与 CSR 不同距离的偏离程度。

然而,正如我的同事 Dan Olner 所指出的那样,结果(如下所示,与 CSR 存在很大差异)并不一定显示出聚类 - 可能只是我们正在检测道路网络的自然聚类,大多数道路发生事故。可以通过克隆我的GitHub存储库并运行以下命令(在运行 WY.R 的部分内容之后)来复制下图:

r <- seq(0, sqrt(2)/6, by = 0.005)
acB1 <- elide(acB, scale = TRUE)
# acB1 <- acB1[1:50,] # for tiny subset
acB1 <- SpatialPoints(acB1)
# Calculate the G function for the points
envacB <- envelope(as(acB1, "ppp"), fun = Gest)
# Calculate the G function for the points
plot(envacB)

事故 G 功能

这个问题实际上是由 Adrian Baddeley(spatstat 的开发者)自己在包的文档中描述的:

点可以是一维的位置(例如道路网络上记录的道路事故)

这正是我面临的情况,但我不知道如何修改上述分析以将 CSR 限制在(或者更好的是,靠近 - 因为并非所有事故都恰好在道路上 - 见下文)道路网络。(请参阅此处的数据)。

事故和道路网络

一个建议是从道路网络中获取随机点并为此计算 G 函数并将其与我的事故数据进行比较,但这不会创建一个清晰的(具有统计意义的)边界框。有什么建议么?

4

1 回答 1

3

您完全正确,感知到的聚类可能是由于道路网络上发生的事故造成的。必须考虑到这一点。在 spatstat 中,道路网络由“linnet”对象表示,因此您需要将道路网络转换为这种格式。我不知道细节,但我猜你应该看一下 spatstat 中的“shapefiles”小插图(你可能必须通过线段类“psp”来导入东西):

vignette("shapefiles", package="spatstat")

线性网络上的点模式属于“lpp”类,因此这是您最终需要的数据格式。如果您设法将网络存储为 linnet 对象“mynet”,您应该能够执行以下操作:

X <- as(acB1, "ppp")
X <- lpp(X, mynet)

这会自动将您的点投射到网络上。现在您可以查看网络上的汇总统计信息。我不认为 G 函数是在这个设置中实现的,但我知道 K 函数是(函数“linearK”),所以你可以使用它。您在代码中使用的通用函数信封现在调用信封.lpp,它确保 CSR 模拟也在网络上生成。

我希望其中一些有用,尽管不是很详细。查看 spatstat 中的相关帮助文件以获取更多详细信息:

help(lpp)
help(linnet)
help(linearK)

请报告您从这里的进展情况,然后我(或更可能是 Adrian Baddeley)可能会给您更多的指导。

于 2014-02-25T22:52:40.193 回答