Страница 1 из 1
R: Moran-автокорреляция <==> Geary-автокорреляция?
Добавлено: 16 окт 2015, 16:55
nickleb
Здравствуйте. Кто просветит безграмотного: чем Moran-автокорреляция отличается от Geary-автокорреляции?
Нашёл такой вот пример:
Код: Выделить всё
library(raster)
r <- raster(nrows=10, ncols=10)
r[] <- 1:ncell(r)
### Moran
Moran(r) #this is the global index of autocorrelation
x1 <- MoranLocal(r) #local measure of autocorr as a raster object that can be plotted
plot(x1) #this will plot the autocorrelation raster results
### Geary
Geary(r) #this is the global index of autocorrelation
x1 <- GearyLocal(r) #local measure
plot(x1)
Re: R: Moran-автокорреляция <==> Geary-автокорреляция?
Добавлено: 17 окт 2015, 08:18
gamm
nickleb писал(а):Здравствуйте. Кто просветит безграмотного: чем Moran-автокорреляция отличается от Geary-автокорреляции?
1) оба индекса на растре считать не принято (хотя теоретически и возможно - но непонятно, зачем), на растре есть методы и получше, та же вариограмма. Индексы используют, когда точки распределены произвольно.
2) для подсчета индекса на произвольном множестве маркированных точек (координаты+значение) задается соседство точек, например с помощью триангуляции или порога расстояния. Точка и ее соседи образуют пары значений, помещаемые в выборку. Соседство точек i,j принято выражать через вес W_ij, который равен нулю, если они не соседи, и больше нуля (обычно 1), если соседи. Этот вес используется в формулах.
3) для полученной выборки либо считается коэффициент корреляции (получается Моран), либо некий аналог вариограммы (получается Джири). Считать можно для точки и ее соседей (локальный индекс), или для всех пар (глобальный),
подробнее - тут, учтите, что значения центрованные, как там и указано
Re: R: Moran-автокорреляция <==> Geary-автокорреляция?
Добавлено: 17 окт 2015, 09:03
nickleb
gamm писал(а):nickleb писал(а):Здравствуйте. Кто просветит безграмотного: чем Moran-автокорреляция отличается от Geary-автокорреляции?
1) оба индекса на растре считать не принято (хотя теоретически и возможно - но непонятно, зачем), на растре есть методы и получше, та же вариограмма. Индексы используют, когда точки распределены произвольно.
2) для подсчета индекса на произвольном множестве маркированных точек (координаты+значение) задается соседство точек, например с помощью триангуляции или порога расстояния. Точка и ее соседи образуют пары значений, помещаемые в выборку. Соседство точек i,j принято выражать через вес W_ij, который равен нулю, если они не соседи, и больше нуля (обычно 1), если соседи. Этот вес используется в формулах.
3) для полученной выборки либо считается коэффициент корреляции (получается Моран), либо некий аналог вариограммы (получается Джири). Считать можно для точки и ее соседей (локальный индекс), или для всех пар (глобальный),
подробнее - тут, учтите, что значения центрованные, как там и указано
Уважаемый gamm, огромное спасибо за - как и всегда - краткое, ёмкое и чёткое разъяснение...
Re: R: Moran-автокорреляция <==> Geary-автокорреляция?
Добавлено: 23 окт 2015, 13:17
nickleb
nickleb писал(а):gamm писал(а):nickleb писал(а):Здравствуйте. Кто просветит безграмотного: чем Moran-автокорреляция отличается от Geary-автокорреляции?
1) оба индекса на растре считать не принято (хотя теоретически и возможно - но непонятно, зачем), на растре есть методы и получше, та же вариограмма. Индексы используют, когда точки распределены произвольно.
2) для подсчета индекса на произвольном множестве маркированных точек (координаты+значение) задается соседство точек, например с помощью триангуляции или порога расстояния. Точка и ее соседи образуют пары значений, помещаемые в выборку. Соседство точек i,j принято выражать через вес W_ij, который равен нулю, если они не соседи, и больше нуля (обычно 1), если соседи. Этот вес используется в формулах.
3) для полученной выборки либо считается коэффициент корреляции (получается Моран), либо некий аналог вариограммы (получается Джири). Считать можно для точки и ее соседей (локальный индекс), или для всех пар (глобальный),
подробнее - тут, учтите, что значения центрованные, как там и указано
Уважаемый gamm, огромное спасибо за - как и всегда - краткое, ёмкое и чёткое разъяснение...
а по точкам регулярного растра посчитать и построить
"треки"-ломанные линии, каждый из отрезков которой соединяет пару точек: центральную и "румбовую" (из восьми максимум - окрестных ближайших "румбовых" в коипАсной нотации относительно центральной)
с максимальным коэффициентом корреляции, - это в
R - какой package лучше задействовать? и как правильно и грамотно в вариографии и пространственном анализе таковые
"треки" называть? - позвольте мне - несведущему - спросить

Re: R: Moran-автокорреляция <==> Geary-автокорреляция?
Добавлено: 23 окт 2015, 15:26
gamm
nickleb писал(а):а по точкам регулярного растра посчитать и построить
"треки"-ломанные линии, каждый из отрезков которой соединяет пару точек: центральную и "румбовую" (из восьми максимум - окрестных ближайших "румбовых" в коипАсной нотации относительно центральной)
с максимальным коэффициентом корреляции, - это в
R - какой package лучше задействовать? и как правильно и грамотно в вариографии и пространственном анализе таковые
"треки" называть? - позвольте мне - несведущему - спросить

боюсь, что готового пакета нет. Более того, если брать соседей с небольшой окрестностью, то выборка ненадежная, особенно для малых окрестностей типа 3х3.
Но если считать, то я бы считал руками, и не в R (для скорости). Если растр небольшой то можно и в R, для этого нужно уложить раст столбцом, и рядом столбцы со сдвигом, что должно дать соседство (сдвиг +1 - сосед справа, сдвиг -1 - сосед слева, сдвиг +nx - сосед снизу, и т.д.). Тогда все локальные окна уложены по строкам, и можно посчитать корреляции по румбам (сдвиг для строк для каждого румбы - фиксированный, см. выше, что позволяет генерировать пары строк, и по ним гнать итератор apply() - фнкуция получает пару номеров, вытаскивает строки, и выдает назад корреляцию). А потом рисовать их палочками, толщина - пропорциональна корреляции, будет красиво ...
Re: R: Moran-автокорреляция <==> Geary-автокорреляция?
Добавлено: 23 окт 2015, 15:51
nickleb
боюсь, что готового пакета нет. Более того, если брать соседей с небольшой окрестностью, то выборка ненадежная, особенно для малых окрестностей типа 3х3.
Но если считать, то я бы считал руками, и не в R (для скорости). Если растр небольшой то можно и в R, для этого нужно уложить раст столбцом, и рядом столбцы со сдвигом, что должно дать соседство (сдвиг +1 - сосед справа, сдвиг -1 - сосед слева, сдвиг +nx - сосед снизу, и т.д.). Тогда все локальные окна уложены по строкам, и можно посчитать корреляции по румбам (сдвиг для строк для каждого румбы - фиксированный, см. выше, что позволяет генерировать пары строк, и по ним гнать итератор apply() - фнкуция получает пару номеров, вытаскивает строки, и выдает назад корреляцию). А потом рисовать их палочками, толщина - пропорциональна корреляции, будет красиво ...
Спасибо,
gamm, за дельный ответ!