Как сделать тепловую карту цен для недвижимости

в Excel без программирования.

Тепловая карта цен (aka heatmap)
Тепловая карта цен (aka heatmap)

Считается, что Data Mining — это магическое снадобье из SQL, Python, Power BI и других волшебных компонент. Мало кто знает, что при правильном подходе с Data Mining может совладать офисный планктон с помощью одного лишь Excel.

Если вы абсолютно далеки от Data Mining, но хотите причаститься его таинств, это руководство в картинках по шагам сделано для вас. Особенно полезно тем, кто никогда бы даже не подумал сделать подобное самостоятельно.

Карта цен недвижимости в Excel
Карта цен недвижимости в Excel

В качестве практического вопроса будем рассматривать визуализацию данных из объявлений на популярных сайтах продажи квартир. Визуальный анализ — основа основ Data Mining, а при отсутствии специальных знаний — и вовсе единственный способ для понимания смысла, содержащегося в большом количестве данных. Это настолько фундаментальный навык, что ему посвящена целая народная мудрость:

Лучше один раз увидеть, чем сто раз услышать

Это все, что нужно знать о достоинствах визуального анализа

Термины

Тепловая карта (heat map) – обозначение какого-либо показателя цветом:

Как сделать тепловую карту цен для недвижимости

Как правило, более высокие значения обозначаются красными оттенками, более низкие – синими. Обычная цветовая шкала выглядит так:

Как сделать тепловую карту цен для недвижимости

Географическая тепловая карта – обозначение показателя цветом на географической карте. Более высокие значения температуры показаны более красными оттенками в привязке к географическим точкам:

Как сделать тепловую карту цен для недвижимости

Географическая тепловая карта цен – обозначение цветом цен в разных географических местах.

В нашем случае это будут цены на квартиры.

Данные

Цены на квартиры будем брать с общеизвестных досок объявлений А и Ц. Для сбора объявлений без программирования нужно воспользоваться готовым парсером. В данном случае выберем наиболее доступный по причине его бесплатности и наиболее удобный из-за простоты установки в три клика в Excel.

Парсеру надо дать понять какие объявления нужно скачивать. Для этого используется ссылка на доску объявлений.

Для подготовки ссылки для скачивания объявлений с доски объявления А открываем браузер, в браузере открываем сайт доски объявлений, выбираем регион (для примера → Брянск) и раздел → квартиры. В адресном поле браузера получаем ссылку: https://www.avito.ru/bryanskaya\_oblast/kvartiry. В последней части ссылки видим раздел → kvartiry, перед ней расположен регион → bryanskaya_oblast. Вместо Брянска можно указать свой регион, а вместо раздела квартир можно указать дома-дачи-коттеджи или земельные-участки. Также можно использовать фильтры (например новостройки или вторичка, количество комнат) и они отобразятся в составе ссылки. Скажем спасибо доске объявлений А за такой понятный порядок формирования ссылок.

Для подготовки ссылки с доски объявлений Ц придется сделать дополнительный шаг: после выбора региона, раздела, фильтров и нажатия кнопки «Найти» нужная ссылка еще не будет готова. Для завершения подготовки ссылки нужно перейти на вторую страницу списка объявлений. После этого ссылка в адресной строке браузера примет вид https:// cian.ru/cat.php?deal_type=sale&engine_version=2&offer_type=flat&p=2®ion=4562&room1=1&room2=1. Раздел квартир здесь будет в offer_type=flat, а регион – в region=4562. Скажем «фу» доске объявлений Ц за не самый удобный порядок формирования ссылок.

Готовые ссылки как есть копируем из адресной строки браузера (нажатием кнопок Ctrl+A и Ctrl+C) и вставляем в парсере нажатием кнопки Добавить ссылку. Для обеих ссылок можно указать один и тот же новый файл Excel, в который будут сохраняться объявления.

Чтобы код для парсинга доски объявлений А загрузился в Excel → в настройках парсера (расположены в Excel на вкладке Надстройки) ставим галочку у парсера доски объявлений А и выключаем галочки у сохранения фотографий из объявлений, у сохранения копии объявлений, у открывания номера телефона и у других ненужных опций. То же самое повторяем с настройками парсера доски объявлений Ц.

Теперь ссылки полностью готовы для загрузки объявлений. Нажимаем в меню парсера кнопку Старт и ждем около 20 секунд до загрузки первого объявления. Да, процесс совсем не быстрый и займет время. Можно уменьшить интервал запросов в настройках парсера до 10 или 5 секунд и иногда это даже прокатывает. Но обычно доски объявлений очень не любят ботов и сразу закрывают доступ к данным (бан). Конечно, эти ограничения можно обойти и загружать данные в 100 раз быстрее, но это дороже.

Загружаемые объявления выглядят примерно так:

Фрагмент листа Excel c загруженными парсером объявлениями Авито и ЦИАН
Фрагмент листа Excel c загруженными парсером объявлениями Авито и ЦИАН

Таких строк может быть несколько тысяч. В нашем примере это около 5000 объявлений для Брянской области в октябре 2021.

Из множества данных нам понадобятся только широта, долгота, цена, общая площадь и офер:

Как сделать тепловую карту цен для недвижимости

Это сырые данные, которые требуют подготовки.

Подготовка

Отделим аренду от продажи. Для этого добавим фильтр по полю «офер» и выделим только предложения продажи. Можно и наоборот – оставить только предложения аренды и работать дальше с ними.

Фильтр Excel
Фильтр Excel

Выделим отфильтрованные данные, Ctrl+G → только видимые:

Как сделать тепловую карту цен для недвижимости

Копируем их Ctrl+C:

Как сделать тепловую карту цен для недвижимости

и вставим на новый лист Ctrl+V:

Как сделать тепловую карту цен для недвижимости

Если показывать цены на многокомнатные квартиры одним цветом и цены однушек другим цветом, в результате получим карту размещения жилья по числу комнат. Для анализа цен этот показатель слишком сырой. Вместо него используем среднюю цену за квадратный метр.

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

Как сделать тепловую карту цен для недвижимости

Теперь проведем стандартные процедуры проверки заведомо ошибочных данных.

У нас есть две группы данных: географическое положение и цена. Для проверки обеих групп используем визуальный контроль.

Поместим имеющиеся географические точки на обычную диаграмму Excel:

Ошибочные данные выглядят так
Ошибочные данные выглядят так

Посмотрим координаты крайних точек Брянской области. Широта должна быть от 51,5039 до 54,021, долгота от 31,1432 до 35,1917. Некоторые наши точки выходят за эти пределы. Опустим здесь рассмотрение причин появления испорченных данных и возможных путей их восстановления, т.к. это не относится прямо к цели визуализации данных и противоречит принятому ограничению квалификации пользователя. По этой же причине используем грубый, но простой способ избавления от испорченных данных.

Заменим нулями строки, где долгота и широта выходят за границы региона → с помощью простой формулы:

Обнуление ошибочных данных
Обнуление ошибочных данных

Затем добавим фильтр и уберем отображение строк с нолями:

Фильтр выбора ненулевых данных
Фильтр выбора ненулевых данных

Выделим все строки отфильтрованных колонок данных, затем Сtrl+G → только видимые:

Повторенье — мать ученья
Повторенье — мать ученья

Копируем их Ctrl+C и вставим в новое место (рядом) Ctrl+V.

Очищенные таким образом долготы и широты точек отправляем на новую диаграмму Excel и видим результат очистки:

Данные без географических ошибок
Данные без географических ошибок

Теперь также с помощью визуального анализа очистим данные о ценах.

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

Как сделать тепловую карту цен для недвижимости

Почему график именно такой

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

Присутствие на гистограмме длиннющего тощего хвоста и асимметрия основной части распределения являются характерными признаками логнормального распределения. То есть в данном случае практика соответствует теории.

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

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

Те же данные в другом горизонтальном масштабе
Те же данные в другом горизонтальном масштабе

Теперь количество данных в разных частях более-менее сопоставимо. Количество карманов здесь посчитано Excel автоматически и оно явно избыточно для того, чтобы каждый уровень цены обозначать своим цветом. Поэтому в дальнейшем перестроим гистограмму по количеству карманов в соответствии с количеством цветов, которые будут использованы на карте. В нашем случае будем использовать 7 цветов.

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

Как сделать тепловую карту цен для недвижимости

На более мелких масштабах эти метки полностью сольются и станут неразличимы.

Чтобы избавиться от излишней в данном случае детализации данных проведем их усреднение. Для усреднения данных воспользуемся следующим приемом.

Обычная точность указания координат использует 6 знаков после запятой. Например, широта 52,549374 и долгота 31,897056. Четвертый знак после запятой соответствует масштабу придомовой территории. В нашем примере в диапазон долготы от 31,8965 до 31,8974 попадают все объявления, относящиеся к одному строению. Используем это обстоятельство для группировки данных в процессе усреднения.

Добавляем к имеющимся данным столбцы с округленными до 3 знака широтой и долготой. Еще одним столбцом добавляем символьную сумму этих двух последних столбцов:

Формулы округления координат
Формулы округления координат

Что в результате дает:

Результат округления координат
Результат округления координат

После чего сортируем все столбцы по колонке с текстом и применяем Промежуточный итог:

Стандартный инструмент Excel на вкладке Данные → Структура
Стандартный инструмент Excel на вкладке Данные → Структура

В результате данные разбиваются на группы близколежащих точек, для которых вычисляются средние цены и координаты:

В строке 5 среднее строк 2 - 4
В строке 5 среднее строк 2 - 4

Для замены групп на точки со средними значениями → сворачиваем все группы, выделяем колонки координат и цены:

Выделяем только нужные колонки
Выделяем только нужные колонки

Затем выделяем только видимые ячейки Ctrl+G → только видимые, копируем Ctrl+C:

Так выглядят скопированные только видимые ячейки
Так выглядят скопированные только видимые ячейки

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

Одна точка вместо шести в результате их усреднения
Одна точка вместо шести в результате их усреднения

С помощью такого приема можно провести усреднение цен на уровне группы зданий или по кварталу.

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

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

Гистограмма усредненных данных
Гистограмма усредненных данных

Данные из первого левого столбца гистограммы будут синего цвета, из последнего правого — красными, а из расположенных между ними — оттенками зеленого:

Те же данные в боевой раскраске
Те же данные в боевой раскраске

Цвет получается смешиванием красного (R), зеленого (G) и синего (B). Интенсивность каждого цвета находится в диапазоне от 0 до 255. Смешивание для получения показанных цветов приведено в следующей таблице.

Как сделать тепловую карту цен для недвижимости

Обозначения из столбца Код будут использованы для окрашивания данных на карте.

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

Обработка

Имеющиеся цены разделим на 7 равных интервалов. (В этой области знаний интервалы синонимы диапазонов, и еще их называют карманами.)

Для определения ширины интервала разницу максимальной и минимальной цен нужно разделить на количество карманов. В нашем случае данные такие:

И карманы:
И карманы:
Как сделать тепловую карту цен для недвижимости

Для получения данных первого кармана нужно скопировать данные широты и долготы для цен от 3999 до 19035 и вставить в новое место. Цены копировать не нужно, они использовались только для разбивки данных по карманам и больше не пригодятся. Аналогично для второго кармана копируем широты и долготы для цен от 19035 до 34071 и вставляем их рядом с данными из первого кармана. Повторив семь раз получим в результате:

Данные разложены по карманам
Данные разложены по карманам

В каждом кармане две колонки: левая — широта и правая — долгота. Количество строк в каждом кармане разное, как было показано на последней гистограмме.

Теперь данные полностью готовы для их помещения на карту.

Карта

Для построения карты нужно сделать три шага:

Добавить шаблон карты → Заполнить шаблон данными → Показать результат

Шаблон карты добавляется кнопкой Добавить в меню парсера. Если в меню парсера нет кнопок для работы с картой, то в настройках парсера нужно включить опцию Excel → График на карте.

Шаблон тепловой карты Excel
Шаблон тепловой карты Excel

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

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

Фрагмент данных первого кармана
Фрагмент данных первого кармана

Для примера это диапазон Q4:R582 на листе По карманам в файле Брянск 10(октябрь)-21.xlsx.

Вставить ссылку на этот диапазон можно с помощью функции Ссылка(диапазон).

В ячейке А3 шаблона пишем название функции:

Пользовательская функция =Ссылка()
Пользовательская функция =Ссылка()

В качестве единственного аргумента функции Ссылка указываем диапазон Q4:R582 на листе По карманам:

Использование функции Ссылка
Использование функции Ссылка

В результате получаем:

Результат функции Ссылка
Результат функции Ссылка

Точки данных первого кармана ранее условились обозначать синим цветом с кодом 0,171,255. Для примера формулы ниже: таблица с кодами цветов находится на листе Палитра. Код синего цвета находится в ячейке Е3:

Как сделать тепловую карту цен для недвижимости

Для вставки ссылки на ячейку в Excel не требуется использовать специальную функцию, поэтому в ячейке шаблона В3 вставляем ссылку на ячейку кода синего цвета обычным способом:

Как сделать тепловую карту цен для недвижимости

В результате:

Как сделать тепловую карту цен для недвижимости

Размер точек определяется из субъективных соображений. Для примера примем размер 10:

Как сделать тепловую карту цен для недвижимости

а этом шаблон карты полностью готов для отображения данных из первого кармана.

Посмотрим что получилось. Для этого нажимаем кнопку Отобразить в меню парсера, после чего открывается новое окно:

Слишком крупный масштаб карты
Слишком крупный масштаб карты

Метки на карте отсутствуют из-за масштаба. Зумим колесом мышки и получаем:

Визуализация данных первого кармана
Визуализация данных первого кармана

Закрываем окно с картой, добавляем данные из второго кармана:

Шаблон карты с данными двух первых карманов
Шаблон карты с данными двух первых карманов

Данные из второго кармана отображаются поверх данных первого кармана:

Визуализация данных двух первых карманов
Визуализация данных двух первых карманов

После добавления всех оставшихся карманов:

Полностью заполненный шаблон карты для всех карманов
Полностью заполненный шаблон карты для всех карманов

На карте:

Как сделать тепловую карту цен для недвижимости

Это и есть визуализация цен на географической карте, сделанная в Excel без программирования. Ее можно зумить и двигать как обычную карту в браузере. Для копирования карты в буфер в парсере есть специальная кнопка Копировать.

В завершение отметим на карте какое-нибудь место, например Аграрный университет. Координаты широты и долготы БГАУ возьмем по указанной ссылке и вставим в ячейки J3 и К3. Ссылку на ячейки с координатами вставим в ячейку шаблона Н3:

Заполненный шаблон метки на карте
Заполненный шаблон метки на карте

Увидим БГАУ на карте и оценим его влияние на цену недвижимости:

Метка на карте в Excel
Метка на карте в Excel

Файл Excel с примером можно скачать здесь.

6060 показов
1.7K1.7K открытий