2014-02-25 57 views
1

我在分析STATS19道路事故數據,由UK government向公衆公開提供。我想看看如何聚集不同類型的事故。可以使用「G函數」(描述here)來測量來自完全空間隨機性「CSR」的情況的點模式的偏差。限制在路網中的R中的聚類功能

spatstat很好地處理了這種問題,envelope函數提供了模式從不同距離的CSR偏離的程度的可視化。然而,正如我的同事Dan Olner所指出的那樣,結果(如下所示,顯示與CSR有很大的分歧)並不一定表現出聚類 - 可能很簡單,我們正在檢測道路網絡的自然分組,大部分道路交通事故都發生該圖下方可以通過克隆我GitHub repo和運行下面的被複制(運行後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 function for accidents

這個問題實際上是由阿德里安·巴德利(spatstat的開發者)自己形容在package's documentation

在一名維

點可能是位置(記錄道路網絡上的諸如 道路交通事故)

這正是我所面臨的情況,但我不知道如何修改上面提到的分析來限制CSR(或者更好,接近 - 因爲並非所有事故都在路上 - 請參閱下文)公路網。 (見數據here)。

accidents and the road network

一個建議是從路網採取隨機點和計算G功能,這和它與我的事故數據進行比較,但不會產生明顯的(統計上顯著)邊界框。有什麼建議麼?

回答

2

你是絕對正確的感知聚類可能是由於道路網絡發生的事故。這必須考慮在內。 在spatstat中,道路網絡由「linnet」對象表示,因此您需要將您的道路網絡轉換爲此格式。我不知道箇中詳情,但我猜你應該看看在spatstat的「shape文件」暗角(您可能需要經過線段類「PSP」進口的東西):

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

線性網絡上的點模式屬於「lpp」類,因此這是您最終需要的數據格式。如果您已成功地將您的網絡作爲紅雀對象「我的網」,你應該能夠做這樣的事情:

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

這會自動展現​​了你點到網絡上。現在您可以查看網絡上的彙總統計信息。我不認爲G函數是在這個設置中實現的,但我知道K函數是(函數「linearK」),所以你可以使用它。您在代碼中使用的通用函數包絡現在調用envelope.lpp,它確保CSR模擬也在網絡上生成。

我希望有一些這是有用的,儘管不是很詳細。看一看在spatstat相關的幫助文件,瞭解更多詳情:

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

做報告回你如何從這裏取得進展,那麼我(或者更可能阿德里安 - 巴德利)也許能夠給你一些更多的指針。

+0

非常感謝Ege - 確實需要網絡實現聚類算法。這是關於線性K函數的原始論文http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.201.3884&rep=rep1&type=pdf正在轉向實現linearK和linearKcross! – RobinLovelace