Метод / инструмент для определения расстояния между локациями - PullRequest
1 голос
/ 16 апреля 2020

Я работаю в медицинской компании и располагаю информацией о местонахождении пациента (адрес, город, штат, почтовый индекс). Я пытаюсь определить, какой процент пациентов живет ближе всего к 5 конкретным c местам. Ответ, который я ищу, будет примерно таким: «25% пациентов живут ближе всего к месту №1, 10% ближе к # 2 и т. Д. c». Я надеюсь, что кто-то может указать мне правильное направление (приложение использовать / подход, чтобы взять).

Данные хранятся в экстракте таблицы, но работают с данными в Excel.

Приложения в моем распоряжении в порядке комфорта: - Tableau - Excel - Alteryx - Python - R

Ответы [ 3 ]

2 голосов
/ 17 апреля 2020

Существует несколько задач для решения этой проблемы. Возможно, вы захотите разделить обязанности между различными инструментами на разных этапах, скажем, с помощью Python или R, чтобы выполнить предварительную работу по подготовке и обогащению данных, после чего Tableau сделает некоторую интерактивную визуализацию в дальнейшем.

В дополнение к инструментам, о которых вы упомянули, я рекомендую потратить некоторое время на знакомство с пространственными базами данных, такими как PostGIS с открытым исходным кодом. Oracle и Microsoft также имеют пространственные расширения для своих баз данных. С пространственной базой данных вы можете хранить пространственные данные, такие как точки, многоугольники и пути, вместе с реляционными данными, и они также имеют встроенные пространственные функции.

Основные задачи для рассмотрения:

  • Геокодирование - преобразование адресов в пространственные координаты. Вы захотите использовать для этого веб-сервис геокодирования, возможно, позвонив ему по номеру Python или R. Это то, что вы хотели бы сделать один раз заранее при подготовке новых данных для анализа, а затем сохранить результат для повторного использования. на более поздних этапах.

  • Вычисление вороных многоугольников. Этот алгоритм разбивает плоскость на многоугольники так, чтобы все точки внутри многоугольника находились ближе всего к определенной точке. Поэтому, если вы хотите узнать, какие области находятся ближе всего к каждой из 5 больниц, диаграмма вороной разделит карту на непересекающиеся регионы, с одним полигоном для каждой больницы, содержащей области, которые находятся ближе к этой больнице, чем любая другая. Поэтому, если ваши больницы не перемещаются, вы должны один раз вычислить полигоны Вороного и сохранить результат для повторного использования. В Python и R есть библиотеки, которые могут это сделать. PostGIS также имеет функцию для вычисления вороного многоугольника.

  • Тестирование попаданий. Этот шаг проверяет, попадает ли точка в многоугольник. Вы можете выполнить проверку попадания, вызвав выделенные функции R или Python, но я рекомендую вместо этого использовать пространственную базу данных, такую ​​как PostGIS. Затем вы можете выполнить проверку попадания, вызвав функцию или используя оператор пространственного соединения INTERSECTS. Вы можете оптимизировать производительность, создав пространственный индекс для своих полигонов после загрузки их в базу данных.

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

Более поздние версии Tableau имеет еще большую поддержку пространственных данных и может вычислять расстояния и буферы, хотя это может все же быть быстрее, чем pu sh, которые работают в пространственной базе данных.

Этот момент, вероятно, очевиден для многих людей, но только для быть ясным ... Описанный выше подход хорошо работает, когда точки, по которым вы измеряете, скажем, больницы, имеют стационарные местоположения c, поэтому стоит потратить время на предварительное вычисление полигонов Вороного и создание любых пространственных индексов, а также когда у вас есть много точек, которые вы sh должны проверить. В этих случаях предварительно вычисленные многоугольники и пространственные индексы могут окупиться приростом производительности.

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

1 голос
/ 17 апреля 2020

Есть несколько способов сделать это в Alteryx, используя их Пространственные инструменты. Некоторые общие методы, которые вы могли бы рассмотреть, - это вычисление расстояния каждого «адреса» до каждого «местоположения» с помощью инструмента «расстояние», ранжирование каждого «адреса» и «расстояния» от каждого «местоположения», затем с помощью инструмента суммирования вы можете сгруппировать их по рангу и затем "местоположение" и посмотрите различные статистические данные.

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

Вы можете рассчитать эти расстояния в Excel с гораздо большим количеством хлопот , Если у вас есть широта и долгота, формула для расстояния между двумя точками:

=ACOS(COS(RADIANS(90-Lat1)) *COS(RADIANS(90-Lat2)) +SIN(RADIANS(90-Lat1)) *SIN(RADIANS(90-Lat2)) *COS(RADIANS(Long1-Long2))) *6371
0 голосов
/ 16 апреля 2020

Я думаю, вы могли бы написать это в Alteryx, Python и, возможно, в R. Затем визуализируйте в Tableau. Я сделал нечто подобное с английскими школами, использующими Alteryx. Посмотрите этот пост в блоге, чтобы узнать больше об инструментах Alteryx, которые я использовал и как они работали. https://tarsolutions.co.uk/blog/alteryx-tableau-display-uk-schools-data/

...