Найти в Дзене

Матрицы связности или при чем тут соседи

Этот пост про базовый компонент пространственного анализа - Connectivity Matrix ( Матрица связности) - W. Пост навеян недавним открытием. Два дня назад я с удивлением обнаружила, что большинство моих коллег,которые занимаются геоанализом уже 4 года, не знают про пространственные матрицы связности. Правда, поразмыслив над этим, я поняла почему. Но обо всем по-порядку. Какая у вашего друга машина? Представьте, что вы идете в гости к вашему другу, который живет в многоквартирном доме.Он недавно купил машину и предлагает вам угадать, какая это машина. Вы знаете, что ваш друг тим-лид в успешном IT-стартапе, у него двое детей до 10 лет, машину он использует для поездок за город, в жизни предпочитает комфорт красоте. Вы кидаете эти данные в ChatGPT, и алгоритм делает вывод, что машина ваша это Subaru Outback или Toyota Highlander. Но друг говорит, что ChatGPT ошибся - и у него Tesla Model X. Как так? - спрашиваете вы. Дело в том, что ближайший сосед вашего друга недавно купил BMW X5. И чтобы

Этот пост про базовый компонент пространственного анализа - Connectivity Matrix ( Матрица связности) - W. Пост навеян недавним открытием. Два дня назад я с удивлением обнаружила, что большинство моих коллег,которые занимаются геоанализом уже 4 года, не знают про пространственные матрицы связности. Правда, поразмыслив над этим, я поняла почему. Но обо всем по-порядку.

Какая у вашего друга машина?

Представьте, что вы идете в гости к вашему другу, который живет в многоквартирном доме.Он недавно купил машину и предлагает вам угадать, какая это машина. Вы знаете, что ваш друг тим-лид в успешном IT-стартапе, у него двое детей до 10 лет, машину он использует для поездок за город, в жизни предпочитает комфорт красоте. Вы кидаете эти данные в ChatGPT, и алгоритм делает вывод, что машина ваша это Subaru Outback или Toyota Highlander. Но друг говорит, что ChatGPT ошибся - и у него Tesla Model X. Как так? - спрашиваете вы. Дело в том, что ближайший сосед вашего друга недавно купил BMW X5. И чтобы не проигрывать ему на парковке, ваш друг решил купить Теслу.

А теперь, представьте, что BMW X5 купил не ближайший сосед, а сосед 2 этажами ниже, чье место на парковке находится в другом конце от места вашего друга. Повлияло бы это на выбор машины вашим другом? Вряд ли.

Теперь о матрице

Что нам рассказывает это ситуация? Бывают случаи когда собственных признаков объекта недостаточно, чтобы предсказать или объяснить явление - нужны еще данные о соседях. За это отвечают пространственные регрессии. А вот каких соседей учитывать определяет Матрица связности.

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

Например, матрица содержит информацию о связи 4х елементов A,B,C,D. Согласно матрице, важными соседями являются A с B, B с C и C с D, то есть, например, A и C не являются важными соседями друг друга. Значения в ячейках называют "весами".
Например, матрица содержит информацию о связи 4х елементов A,B,C,D. Согласно матрице, важными соседями являются A с B, B с C и C с D, то есть, например, A и C не являются важными соседями друг друга. Значения в ячейках называют "весами".

ОСНОВНЫЕ ТИПЫ МАТРИЦ СВЯЗНОСТИ

Вот тут интересно. Есть классические типы, а есть производные от них - которые используют прошаренные академики

Классические

1.Матрица Связности по Королевским Соседям (Queen Contiguity Matrix):

Определение: Пространственные единицы считаются соседями, если они имеют общую сторону или вершину.

Значения: Заполнена 0(нет связи) или 1 (есть связь)

2.Матрица Связности по Ладейным Соседям (Rook Contiguity Matrix):

Определение: Пространственные единицы считаются соседями, если они имеют только общую сторону. Именно такая матрица связности была в примере с соседями.

Значения: Заполнена 0(нет связи) или 1 (есть связь)

3.Матрица Связности k-соседей (k-nearest neighbors):

Определение: Пространственные единицы считаются соседями, если они входят в число k ближайших соседей.

Значения: Заполнена 0(не входит) или 1 (входит)

4. Матрица Связности по Расстоянию (Distance-based Matrix):

Определение: Пространственные единицы считаются соседями, если расстояние между ними меньше заданного порога.

Значения: в отличие от 3х предыдущих может быть заполнена как 1/0 так и непрерывной величиной - чаще всего используют вес 1/d^2 - обратное расстояние.

Вот так матрицы смежности по Королевским и Ладейным Соседям выглядят на карте.
Вот так матрицы смежности по Королевским и Ладейным Соседям выглядят на карте.

Производные

Производные матрицы включают в себя классические, но с небольшими изменениями. Их список бесконечен, ограничен только вашим воображением. Приведу пару примеров.

1.Матрица Связности по Расстоянию, где учитываются только n-ближайших соседей.

Пример: веса раздаются соседям по формуле 1/d^2, но после 6 соседа, веса у всех =0

2. Матрица Связности по Королевским Соседям, с весами пропорциональными некоторому индикатору

Пример: пусть матрица связности указывает наличие общей границы у районов города. При этом у каждого района известно его население. Тогда веса матрицы связности будут равны = 1/0 * население.

3. Матрица Связности по Королевским Соседям, с весами пропорциональными длине общей границы

Пример: пусть матрица связности указывает наличие общей границы у стран СНГ. Тогда веса матрицы связности будут равны = 1/0 * размер общей границы.

Что делать с этой информацией

Повторюсь, что основная идея матрицы связности: найти соседей и раздать им веса. Глобально, это полезно в трех случаях:

- пространственная кластеризация

- пространственная автокорреляция

- пространственная регрессия

Про кластеризацию я уже писала ранее. Напомню, что ее задача пространственно разделить поверхность на участки максимально похожие друг на друга. Матрица связности же позволяет понять отношение объектов в пространстве - кто может оказаться в 1-ом участе. Пример задачи: разделить страну на избирательные участки

Проверка на пространственную автокорреляцию - это ключевой этап во всех исследований для обоснования использования пространственных моделей. По сути похожая на временную автокорреляцию, она показывает связь соседей между собой - если ее нет, то все объекты независимы от своих соседей, если есть - то "мнение соседей" нужно учитывать.

В случае с пространственной регрессией вариаций сильно больше, поскольку и видов регрессий много и это тоже тема отдельного поста.

Обобщая, есть 2 подхода:

1. посчитать значение признаков соседей и добавить их в модель

2. добавить авторегрессию в модель

В нашем примере с прогнозом автомобиля 1-ое означает, что в доме, например, живут также пара ваших коллег, про которых вы знаете то, о чем не знаете про друга, к которому мы пришли в гости. И мы предполагаем, что раз они живут в одном доме, то во многом они похожи - например ездят на работу на машине - , а значит, то, что вы знаете про коллег релевантно и для вашего друга.

2-ое означает ситуацию в начале поста: на решение о выборе машины ( y) повлиял выбор соседа (y_lag).

Так почему же коллеги не знакомы с матрицами связности

Эта ситуация с одной стороны - пример классического разрыва между бизнесом и академией, с другой стороны - доказательство превосходства ML над эконометрикой в бизнес задачах.

Во-первых, дело в том, что мои коллеги занимаются прогнозированием, а не описанием причин, некоторых событий. А значит, их интересует не сколько точный вес каждого фактора, сколько финальный прогноз. Для ответа на вопрос они используют ML модели в основе которых нет предположения о линейной зависимости между переменными, а отбор фичей происходит на основе веса фактора в модели, а не t-statistics. Поэтому то что в пространственной эконометрике честно смоделированно как пространственный лаг, в ML модели будет учтено через огромное количество входных параметров.

Например, в случае с машиной, вместо модели машины соседа могут быть использована доля рынка моделей класса люкс в районе. Мы не узнаем, что на решение повлиял сосед, но сам прогноз будет близким.

Во-вторых, это объясняет критику пространственной автокорреляции. Часто, причина не в соседях а в общем неучтенном факторе. Например, вместо того, чтобы учитывать, что коллеги ездят на работу на машине, достаточно посчитать расстояние до остановки общественного транспорта, и обнаружить, что кроме как на машине, до работы не добраться.

Пост получился теоретический, напишите в комментариях, что вам интересно дальше: как строить матрицы в Python или примеры использования.