Функция кластеризации в R ограничена дорожной сетью

Я анализирую данные STATS19 о дорожно-транспортных происшествиях, которые, к счастью, предоставлены общественности правительством Великобритании. Я хотел бы посмотреть, насколько сгруппированы различные типы несчастных случаев. «Функция G» (описанная здесь) может использоваться для измерения отклонение точечных паттернов от случаев полной пространственной случайности «CSR».

spatstat хорошо справляется с подобными проблемами с помощью функции envelope. обеспечение визуализации степени отклонения паттерна от CSR на разных расстояниях.

Однако, как указал мой коллега Дэн Олнер, результаты (показанные ниже, демонстрирующие большое расхождение с CSR) не обязательно отражают кластеризацию - это может быть просто то, что мы обнаруживаем естественную кластеризацию дорожной сети, на которой большинство дорог случаются несчастные случаи. Приведенный ниже график можно воспроизвести путем клонирования моего репозитория GitHub и выполнения следующего (после запуска частей WY. Р):

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 для аварий

Эта проблема фактически описана самим Адрианом Баддели (разработчиком spatstat) в документация по пакету:

точки могут быть местоположениями в одном измерении (например, дорожно-транспортные происшествия, зарегистрированные в дорожной сети)

Это именно та ситуация, с которой я столкнулся, но я не знаю, как изменить анализ, представленный выше, чтобы ограничить CSR (или, лучше, близко - поскольку не все аварии происходят именно на дороге - см. Ниже) дорожной сети. (см. данные здесь).

аварии и дорожная сеть

Одно из предложений заключалось в том, чтобы взять случайные точки из дорожной сети, вычислить для этого функцию G и сравнить ее с моими данными о дорожно-транспортных происшествиях, но это не привело бы к созданию четкой (статистически значимой) ограничивающей рамки. Какие-либо предложения?


person RobinLovelace    schedule 25.02.2014    source источник


Ответы (1)


Вы абсолютно правы в том, что предполагаемая кластеризация может быть связана с авариями, происходящими на дорожной сети. Это необходимо учитывать. В spatstat дорожная сеть представлена ​​объектом "linnet", поэтому вам необходимо преобразовать дорожную сеть в этот формат. Я не знаю подробностей об этом, но я предполагаю, что вам следует взглянуть на виньетку "shapefiles" в spatstat (вам, возможно, придется пройти через класс линейного сегмента "psp", чтобы импортировать вещи):

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

Точечный образец в линейной сети относится к классу «lpp», так что это именно тот формат данных, который вам нужен в конечном итоге. Если вам удалось сохранить вашу сеть как объект linnet «mynet», вы сможете сделать что-то вроде:

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

Это автоматически проецирует ваши точки в сеть. Теперь вы можете посмотреть сводную статистику в сети. Я не думаю, что функция G реализована в этой настройке, но я знаю, что K-функция (функция "linearK"), так что вы могли бы ее использовать. Конверт универсальной функции, который вы использовали в своем коде, теперь вызывает envelope.lpp, который гарантирует, что моделирование CSR также генерируется в сети.

Я надеюсь, что кое-что из этого будет полезно, хотя и не очень подробно. Для получения дополнительных сведений ознакомьтесь с соответствующими файлами справки в spatstat:

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

Сообщите, как вы продвигаетесь отсюда, тогда я (или, что более вероятно, Адриан Баддели), возможно, смогу дать вам еще несколько указателей.

person Ege Rubak    schedule 25.02.2014
comment
Большое спасибо Эге - сетевые реализации алгоритмов кластеризации действительно нужны. Это оригинальная статья о линейной K-функции citeseerx.ist.psu.edu/viewdoc/ с нетерпением жду возможности внедрения linearK и linearKcross! - person RobinLovelace; 26.02.2014