Вычисление локального Морана на основе расстояния для набора данных с точкой 527k + с использованием библиотеки spdep - PullRequest
1 голос
/ 17 апреля 2019

Как видно из заголовка, я пытаюсь вычислить Local Moran для набора данных из 527 тыс. Точек, используя пакет spdep, создавая окрестности на основе расстояния.Обобщенный процесс, который я делаю, следующий:

library(spdep)
# Convert coordinates to matrix
matrix_pts <- as.matrix(coordinates)
# Generate neighbors    
neighbors <- dnearneigh(matrix_pts, 
                       d1 = 0, 
                       d2 = range)
# Get weight matrix
wm <- nb2listw(neighbors, 
               zero.policy = T, 
               style = style) 
# Get moran statistics
moran_stat <- localmoran(value, 
                        wm,
                        zero.policy = T)

Но я столкнулся с проблемой, когда я не могу создать окрестности, используя dnearneigh, так как набор данных слишком велик, иокрестности состоят из 200-1000 точек.

Я попробовал решение, изображенное Здесь , и я получил себе фрейм данных с первой строкой с идентификаторами и второй строкой со списком, содержащим идентификаторысоседние точки (т. е.):

   id       int_ids
1: 239226 239226,242762,339386,444833,243000,240521,...
2: 242762 239226,242762,339386,444833,243000,240521,...
3: 339386 239226,242762,339386,444833,243000,240521,...
4: 444833 239226,242762,339386,444833,243000,240521,...
5: 243000 239226,242762,339386,444833,243000,240521,...
6: 240521 239226,242762,339386,444833,243000,240521,...

Однако я не знаю, как создать nb объект, необходимый для nb2listw, и рытье вокруг мне не сильно помогло.

Есть ли способ преобразовать этот фрейм данных в nb объект?Если бы мне удалось это сделать, было бы так сложно создать матрицу весов, как соседи?Есть ли другой способ вычислить локальный моран для набора данных этого объема?

...