Для определения горячих точек лучше использовать 2D-оценку плотности ядра . Ниже приведен пример смертности в результате дорожно-транспортных происшествий на портале данных для штата Вашингтон . Для определения «горячих точек» были использованы график contour
и функция kde2d
. Пожалуйста, смотрите код ниже:
library(lubridate)
mort <- read.csv("https://data.wa.gov/api/views/mcp7-tcwf/rows.csv?accessType=DOWNLOAD", stringsAsFactors = FALSE)
ll <- t(sapply(mort$Location, function(x) na.omit(as.numeric(unlist(strsplit(x, "\\(|\\,| |\\)"))))))
rownames(ll) <- NULL
colnames(ll) <- c("lat", "lon")
mort2 <- cbind(mort, ll)
mort2$Salvage.Date.Time2 <- mdy_hms(mort2$Salvage.Date.Time)
mort2$month <- month(mort2$Salvage.Date.Time2)
mort2$year <- year(mort2$Salvage.Date.Time2)
mort2 <- mort2[mort2$year> 2016, ]
mort3 <- mort2[with(mort2, lat > 45.5 & lat < 49.& lon > -125 & lon < -116), ]
f1 <- with(mort3, kde2d(lat, lon, n = 100))
plot(mort3$lat, mort3$lon, pch = 18, col = "lightblue")
contour(f1, levels = c(0.01, 0.05, 0.1, 0.2), add = TRUE, labcex = 1)
Выход: