Опубликовано 1 марта 2026

Модель Хаффа: математика выбора магазина и пространственный анализ

Модель Хаффа: как математика решает, где вы купите хлеб

Разбираемся, как вероятностная модель, созданная в 1964 году, до сих пор помогает планировать размещение магазинов, больниц и целых районов.

Математика и статистика 8 – 12 минут чтения
Автор публикации: Профессор Ларс Нильсен 8 – 12 минут чтения
«Когда я работал над этим текстом, меня не отпускала одна мысль: как часто мы принимаем пространственные решения вслепую – строим больницы там, где удобно административно, а не там, где они нужны людям. Модель Хаффа существует с 1964 года, и всё же ощущение, что её применяют реже, чем могли бы, не покидает меня. Интересно, изменит ли что-то появление удобного открытого инструмента – или он так и останется привилегией тех, кто умеет писать на Python?» – Профессор Ларс Нильсен

Почему покупатели выбирают конкретный магазин

Почему вы едете именно в этот магазин?

Представьте утро пятницы. Вам нужно купить продукты на выходные. В вашем районе есть три супермаркета: один совсем рядом, но маленький и с унылым ассортиментом; второй покрупнее, но до него нужно ехать минут двадцать; третий – настоящий гипермаркет с широким выбором, но добираться туда придётся через весь город. Куда вы поедете?

Скорее всего, вы не будете строить уравнения в голове. Вы просто почувствуете, что один вариант лучше другого. Но если разобраться, что именно вы взвешиваете, окажется, что в вашей голове работает самая настоящая математическая модель. И у неё есть имя – модель Хаффа.

Дэвид Хафф сформулировал её в 1964 году, и с тех пор она не устарела. Более того, она стала одним из главных инструментов для всех, кто решает, где открыть магазин, поликлинику или школу. А теперь, в 2020-х годах, её реализовали в виде открытого программного пакета на языке Python, который называется huff. Именно об этом инструменте и пойдёт речь – но начнём мы, как всегда, с самого главного: с идеи.

Гравитация в мире покупок: суть модели Хаффа

Гравитация в мире покупок 🛒

Исаак Ньютон описал гравитацию так: два тела притягиваются тем сильнее, чем они массивнее, и тем слабее, чем дальше друг от друга находятся. Дэвид Хафф применил ту же логику к людям и магазинам. Звучит, может, странно, но работает удивительно хорошо.

В его модели «масса» магазина – это его привлекательность: площадь торгового зала, ассортимент, репутация. А «расстояние» – это не только километры, но и время в пути, пробки, неудобные пересадки. Чем привлекательнее магазин и чем он ближе – тем выше вероятность, что вы окажетесь именно там в эту пятницу.

Ключевое слово здесь – вероятность. Модель Хаффа не говорит: «Этот потребитель пойдёт в магазин А». Она говорит: «Этот потребитель с вероятностью 60% выберет магазин А, с вероятностью 30% – магазин Б, и с вероятностью 10% – магазин В». Это честнее, потому что реальные люди непредсказуемы. Но если взять тысячи людей, математика начинает работать безупречно: 60% из них действительно окажутся в магазине А.

Что лежит в основе формулы модели Хаффа

Что стоит за формулой

Я обещал минимум формул – и сдержу слово. Но один принцип объяснить необходимо, потому что именно он делает модель такой мощной.

Представьте, что у каждого магазина есть своего рода «притяжение» – число, которое зависит от двух вещей: насколько магазин хорош и насколько до него далеко. Привлекательность тянет потребителя к магазину, расстояние – от него. Вероятность посещения конкретного магазина – это его «притяжение», делённое на сумму «притяжений» всех магазинов в округе. То есть модель всегда оценивает не магазин сам по себе, а магазин в сравнении с конкурентами.

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

Эти параметры не выдумываются – они оцениваются по реальным данным. Если мы знаем, куда люди ездили в прошлом, модель подбирает параметры так, чтобы максимально точно воспроизвести наблюдаемое поведение. А дальше её можно использовать для предсказания: что изменится, если открыть новый магазин? Или закрыть старый? Или улучшить дорогу?

Зоны притяжения: определение реальных границ влияния

Зоны притяжения: невидимые границы на карте

Каждый магазин, каждая больница, каждая школа имеет свою «зону влияния» – территорию, жители которой с наибольшей вероятностью пользуются именно этим учреждением. Это называется зоной обслуживания, или зоной притяжения.

Интересно, что эти зоны не имеют чётких границ. В отличие от административных районов, нарисованных на карте прямыми линиями, реальные зоны влияния – размытые, пересекающиеся, похожие на облака. Житель дома на границе двух районов может с равной вероятностью ехать в любой из двух ближайших супермаркетов. Это и есть математика модели Хаффа: не жёсткие границы, а плавные вероятности.

Именно поэтому модель так полезна при планировании. Если вы рисуете жёсткие круги вокруг магазина на карте и считаете, что все внутри круга – ваши клиенты, а все снаружи – нет, вы сильно ошибаетесь. Реальность гораздо тоньше. И модель Хаффа её улавливает.

Применение модели Хаффа в здравоохранении и социальных услугах

От супермаркетов к больницам: когда математика спасает жизни

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

Представьте регион, где нужно оценить, насколько хорошо население обеспечено медицинской помощью. Где не хватает врачей? Какие районы фактически отрезаны от поликлиник из-за плохих дорог или большого расстояния? Где открыть новую больницу, чтобы она помогла максимальному числу людей, а не дублировала уже существующие?

Это задачи пространственной доступности. И модель Хаффа справляется с ними ничуть не хуже, чем с анализом розничных сетей. Только вместо площади магазина мы берём количество врачей или больничных коек, а вместо желания купить товар – потребность населения в медицинской помощи.

Для такого анализа разработан специальный подход, который называется двухшаговая плавающая зона обслуживания (англ. Two-Step Floating Catchment Area, сокращённо 2SFCA). Название звучит устрашающе, но идея проста. На первом шаге мы смотрим на каждую поликлинику и считаем, сколько людей находится в пределах досягаемости. На втором – смотрим на каждый жилой район и суммируем доступность всех поликлиник, до которых можно добраться. В результате мы получаем карту: где медицина доступна, а где люди живут в «пустыне» без нормальной помощи рядом.

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

Пакет huff: инструмент для пространственного анализа на Python

Пакет huff: инструментарий для пространственного мышления

Описанная математика существует уже шесть десятилетий. Но чтобы применить её на практике, нужны данные, вычисления и умение всё это связать воедино. Именно для этого и создан Python-пакет huff – открытый инструмент, доступный через стандартный репозиторий Python-библиотек (PyPI) и поддерживаемый в открытом репозитории на GitHub.

Давайте пройдёмся по тому, что этот пакет умеет делать – без программного кода, просто по шагам.

Шаг первый: данные о людях и местах

Для начала нужно знать две вещи: где живут люди и где находятся объекты (магазины, больницы, школы). Людей можно описать как районы города с численностью населения. Объекты – как точки на карте с указанием их привлекательности (площадь, количество врачей, любой другой показатель мощности).

Пакет huff работает с геопространственными данными в стандартном формате, совместимом с библиотекой GeoPandas – одной из самых популярных Python-библиотек для работы с картографическими данными. Это означает, что загрузить можно практически любой привычный формат геоданных: Shapefile, GeoJSON и другие.

Шаг второй: матрица затрат

Теперь нужно выяснить, как далеко каждый район от каждого объекта. На выходе получается таблица: строки – районы, столбцы – объекты, в ячейках – время в пути или километры. Её называют матрицей затрат.

Пакет huff умеет строить такую матрицу разными способами. Самый простой – прямое расстояние по прямой линии, как будто местность идеально ровная и дорог нет. Это подходит для грубых оценок. Более реалистичный способ – использовать реальную дорожную сеть из открытых данных OpenStreetMap. Тогда матрица будет учитывать реальные маршруты, объезды и тупики.

Шаг третий: запуск модели

Теперь в дело вступает собственно модель Хаффа. Пакет берёт данные о людях, данные об объектах и матрицу затрат – и вычисляет вероятности. Каждому жилому району назначается набор вероятностей: с какой долей вероятности жители этого района поедут в каждый из объектов.

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

Шаг четвёртый: визуализация результатов

Цифры в таблицах – это хорошо. Но карта убедительнее сотни таблиц. Пакет huff генерирует несколько типов карт:

  • Карты рыночных долей – показывают, какую часть потребительского потока каждый объект забирает из каждого района.
  • Карты доступности – показывают, насколько хорошо каждый район обеспечен объектами (особенно полезно для здравоохранения и социальных услуг).
  • Схемы потоков – визуализируют направление и интенсивность движения потребителей от мест проживания к объектам.

Всё это строится с помощью стандартных Python-библиотек визуализации – Matplotlib и GeoPandas, – что означает полную совместимость с привычными рабочими средами аналитиков и исследователей.

Практические примеры использования модели Хаффа

Три истории о том, как это работает в жизни

История первая: куда поставить новый магазин

Представьте розничную сеть, которая планирует открыть новую точку в крупном городе. У них уже есть несколько магазинов, и они хотят расширяться – но при этом не «съедать» собственных клиентов. Ведь если новый магазин откроется слишком близко к существующему, он просто перетянет к себе тех же людей, а не привлечёт новых. Этот эффект называется каннибализацией.

С помощью модели Хаффа можно смоделировать несколько потенциальных мест для нового магазина и сравнить, как изменится распределение клиентского потока в каждом случае. Где новый магазин добавит охват? Где он лишь перераспределит уже существующих клиентов? Результат – не гадание, а математически обоснованный выбор.

История вторая: белые пятна на медицинской карте

Региональное министерство здравоохранения хочет понять, где жители испытывают нехватку медицинской помощи. Они знают, сколько врачей работает в каждой поликлинике и где живёт население. Но как связать эти данные?

С помощью метода 2SFCA, реализованного в пакете huff, можно рассчитать индекс доступности для каждого района. На карте сразу станет видно: вот районы с хорошей обеспеченностью, а вот – «медицинские пустыни», где ближайшая поликлиника находится слишком далеко и обслуживает слишком много людей. Это прямое руководство к действию: строить новую поликлинику нужно здесь, а не там.

История третья: маркетинг с пространственным умом

Маркетологи крупного торгового центра хотят понять, как рекламная кампания повлияет на их долю рынка. Логика здесь такая: успешная реклама увеличивает воспринимаемую привлекательность объекта в глазах потребителей. Это можно смоделировать, просто повысив параметр привлекательности в модели Хаффа – и пересчитав вероятности. Результат покажет, из каких районов и за счёт каких конкурентов торговый центр выиграет в клиентском потоке.

Это не магия. Это математика, поставленная на службу здравому смыслу.

Важность пространственного мышления в анализе данных

Почему это важно: пространственное мышление как навык

Мы привыкли думать о данных как о таблицах и графиках. Но данные существуют в пространстве. Каждый человек живёт где-то. Каждый магазин стоит где-то. Расстояние между ними – не абстракция, а реальное препятствие или возможность.

Модель Хаффа и инструменты вроде пакета huff напоминают нам об этом. Они говорят: прежде чем принять решение, посмотри на карту. Не просто нарисуй круг и скажи «это наша зона охвата». Спроси, с какой вероятностью каждый человек в этом круге действительно выберет тебя, а не конкурента. Учитывай расстояние. Учитывай привлекательность. Учитывай конкуренцию.

Пакет huff – это инструмент с открытым исходным кодом, доступный любому исследователю, планировщику или аналитику. Он предназначен для специалистов в экономической географии, региональном планировании, маркетинге и здравоохранении. Но его логика универсальна: везде, где люди выбирают между местами, работает пространственная математика.

Данные не лгут. Они умеют шептать на языке, который нужно учиться слышать. А карта – один из лучших переводчиков.

Оригинальное название: huff: A Python package for Market Area Analysis
Дата публикации статьи: 19 фев 2026
Автор оригинальной статьи : Thomas Wieland
Предыдущая статья Пастух, лидер или дипломат: как робот учится управлять живой толпой Следующая статья Доминирование и упаковка в графах: математика справедливого распределения пространства

Связанные публикации

Вам может быть интересно

Войти в Лабораторию

Исследование не заканчивается одним экспериментом. Ниже – публикации, которые развивают похожие методы, вопросы или концепции.

Британское агентство Forest Research использует модель компьютерного зрения от Meta для мониторинга лесов. Это позволяет государству получать точные данные о зеленых насаждениях без огромных затрат на спутниковую съемку и лазерное сканирование.

Meta AIai.meta.com 10 фев 2026

Лаборатория

Случайная упаковка дисков: симфония третьего вириального коэффициента

Физика и космос Конденсированное вещество

Как предсказать плотность упаковки смесей дисков разного размера? Новый метод раскрывает универсальную закономерность через элегантный математический параметр – приведённый третий вириальный коэффициент.

Профессор Оливер Харрис 1 янв 2026

Разбираю по частям, как учёные XVII века изобрели математический аппарат, который сегодня используют инженеры, физики и программисты по всему миру.

Игорь Краузе 26 янв 2026

От исследования к пониманию

Как создавался этот текст

Этот материал основан на реальном научном исследовании, а не сгенерирован «с нуля». В начале работы нейросети анализируют исходную публикацию: её цели, методы и выводы. Затем автор формирует связный текст, который сохраняет научный смысл, но переводит его из академического формата в ясное и читаемое изложение – без формул, но без потери точности.

Интуитивная математика

92%

 Междисциплинарность

82%

Связь с реальностью

88%

Нейросети, участвовавшие в работе

Мы показываем, какие модели использовались на каждом этапе – от анализа исследования до редакторской проверки и создания иллюстрации. Каждая нейросеть выполняет свою роль: одни работают с источником, другие – с формулировками и структурой, третьи – с визуальным образом. Это позволяет сохранить прозрачность процесса и доверие к результату.

1.
Gemini 2.5 Flash Google DeepMind Резюмирование исследования Выделение ключевых идей и результатов

1. Резюмирование исследования

Выделение ключевых идей и результатов

Gemini 2.5 Flash Google DeepMind
2.
Claude Sonnet 4.6 Anthropic Создание текста на основе резюме Преобразование резюме в связное объяснение

2. Создание текста на основе резюме

Преобразование резюме в связное объяснение

Claude Sonnet 4.6 Anthropic
3.
Gemini 2.5 Flash Google DeepMind Редакторская проверка Исправление ошибок и уточнение выводов

3. Редакторская проверка

Исправление ошибок и уточнение выводов

Gemini 2.5 Flash Google DeepMind
4.
DeepSeek-V3.2 DeepSeek Подготовка описания для иллюстрации Генерация текстового промпта для визуальной модели

4. Подготовка описания для иллюстрации

Генерация текстового промпта для визуальной модели

DeepSeek-V3.2 DeepSeek
5.
FLUX.2 Pro Black Forest Labs Создание иллюстрации Генерация изображения по подготовленному промпту

5. Создание иллюстрации

Генерация изображения по подготовленному промпту

FLUX.2 Pro Black Forest Labs

Хотите знать о новых
экспериментах первыми?

Подписывайтесь на наш Telegram-канал – там мы делимся всем самым
свежим и интересным из мира NeuraBooks.

Подписаться