Объедините соседние области вместе, если tm_fill для одной области слишком мала

Я сделал карту с почтовыми индексами города. Заполнение - это отношение случая или не случая. Но некоторые почтовые индексы имеют очень мало цифр, поэтому выбросы искажают карту.

Есть ли способ автоматически объединить полигоны и данные двух соседних областей на основе их n?

И если это невозможно, как я могу объединить строки моего sf / df без потери идентификатора?

И я думаю, что самым простым было бы просто установить почтовые индексы в NA.

1 ответ

Зависит от того, что вы подразумеваете под "автоматически". Вот простой алгоритм.

repeat:
 Find the region with the smallest population.
 If that's more than your threshold, stop
 Find that region's neighbours, pick one (at random, or smallest population).
   merge that neighbour with that region

Найти соседей и объединить их можно либо с помощью sf пакет или sp пакет и друзья (как spdep а также rgeos).

Точно так же это можно считать алгоритмом кластеризации, использующим метрику расстояния, основанную на смежности. Вы можете выполнить полную иерархическую кластеризацию, а затем вырезать дерево в такой точке, чтобы все кластеры имели N>threshold,

Теперь вопрос о том, является ли это хорошая идея статистически, - это другой вопрос, который зависит от вашей цели. Если вы беспокоитесь о том, является ли основной риск, скажем,> 0,5, и вы получаете положительные результаты, потому что у вас есть случайные группы из 3 и 2 положительных результатов из небольшой выборки (из 3), то вам необходимо смоделировать свои данные. и рассчитать вероятность превышения 0,5 с учетом данных. Затем сопоставьте это с учетом малого размера выборки.

Другие вопросы по тегам