Летом прошлого года я в команде из шести человек поучаствовал в конкурсе «Исследуй город». Мы три месяца пытались оценить вакантность жилья в Москве, заняли предпоследнее место, а потом ещё год пробовали уже вне конкурса, на чистом энтузиазме, улучшить сделанное. Получилось все равно не очень, но отрицательный результат — тоже результат, поэтому делимся им: быть может, кто-то прочитает, вдохновится и сможет нас превзойти.

Как всё началось

Однажды мне написала знакомая — Юлия Родикова, урбанист и CEO бюро Урбан Хелпер. Она прислала ссылку на исследовательский конкурс Института Генплана Москвы и спросила, интересно ли. Я в целом за науку, поэтому решил, что интересно. На конкурсе было пять задач — выбрали первую. Называлась она поэтично: «Свет в окне: определение вакантности жилого фонда». Я позвал ещё одну свою знакомую, Балтыжакову Татьяну, преподавателя и исследователя, а Юлия — ещё троих: Палич Валерию, архитектора и CEO бюро ПИПЛ, Елизавету Еврасову, urban-аналитика и кадастрового оценщика, и Вячеслава Иванись, студента-урбаниста. Итого — разношёрстная команда из шести человек. Отправили заявку и стали ждать. Думали, что не пройдём отбор — внезапно прошли. Рассчитывали, что будем соревноваться с десятком других команд в решении выбранной задачи — оказалось, что команд всего пять, и каждый решает свою задачу. Приуныли, но решили не сдаваться.

Что такое вакантность жилья и зачем её знать

Страница конкурса была лаконична и содержала довольно обобщённое описание задачи. Из описания можно было сделать вывод, что вакантное жильё — это пустующие квартиры.

Города испытывают проблему неиспользуемого жилья уже давно. Так, согласно Росстату, в столице пустующие квартиры составляют 10% от всей жилой площади города. В среднем по России этот показатель почти в два раза больше — 19%.

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

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

explorethecity.genplanmos.ru

На первом созвоне с генплановскими кураторами мы поняли, что «техническое задание» сформулировано максимально широко: в рамках заявленного направления можно делать почти всё, до чего додумаемся, теми способами, которыми сумеем. Примерный план работы — общий для всех задач, определение вакантности формулируем сами, данные ищем сами, методы разрабатываем и тестируем сами.

Почему оценка вакантности жилья важна для городского развития и урбанистики? Дело в том, что городскую инфраструктуру делают исходя из количества проживающих, а оно связано с числом фактически заселённых квартир. Если где-то пустует много жилья, то и объектов инфраструктуры должно быть поменьше. Возможен и обратный вариант: найти «проблемные» районы с высокой вакантностью, понять, почему она такая и что с этим делать. Может, как раз инфраструктуры не хватает, чтобы люди начали селиться активнее. Ещё при большом числе незанятых квартир растут удельные расходы на коммуналку. Одним словом, чтобы развивать город по-умному, лучше знать, сколько квартир и домов реально заселено.

Может показаться, что уж про Москву-то все всё знают, но это не так. Мы поискали исследования по теме и нашли только одно — монографию социологов РАН. Там сказано, что в Москве где-то 5–10% «квартир, не используемых под основное жильё», а в среднем по стране — 17%. Возможно, это те же 10% пустующих квартир по данным Росстата, о которых говорилось в описании задачи, так как социологии ссылаются на статистическую информацию. Есть ещё книга специалистов Высшей школы экономики с хитрой оценкой «тенденций формирования вакантного жилищного фонда и дефицита квартир при реализации целевых показателей генеральных планов», но Москвы там нет.

Нашу команду на конкурсе выбрали, по-видимому, за оригинальные методы, которые мы описали в заявке. Мол, никто не знает, как считать, а вы предлагаете крутые штуки — давайте их попробуем. Всё так, вот только заявку мы писали в ожидании чего-то похожего на хакатон: будет ТЗ, будут данные, будут конкуренты, и там уже сделаем что сможем, а что не сможем, то не сделаем. Когда оказалось, что команда на задаче по вакантности ровно одна, и это мы, стало ясно: придётся опробовать все «оригинальные методы», о которых мы так бодро заявили.

Попытка №1: смотрим на окна

Название «Свет в окне» наводило на мысль, что для оценки вакантности надо как-то использовать окна. Например, так, как это сделали китайские исследователи в статье Estimation of Urban Housing Vacancy Based on Daytime Housing Exterior Images—A Case Study of Guangzhou in China. Они собирали фото домов и по внешнему виду фасадов пытались понять, какие квартиры заселены, а какие пустуют. Логика довольно простая: если на балконах сушится бельё, стоят домашние вещи, в окнах видны шторы или предметы обихода и тому подобное, то квартира заселена. Выглядит немного наивно, но, похоже, работает.

Иллюстрация из статьи про определение вакантности по фасадам. Всё очевидно: синие прямоугольники — заселено, красные — пустует
Иллюстрация из статьи про определение вакантности по фасадам. Всё очевидно: синие прямоугольники — заселено, красные — пустует

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

Во-первых, собрать изображения фасадов по всей Москве — задача, мягко говоря, нетривиальная. Китайцы брали фото с панорам Baidu Maps, а если на них чего-то не было, то шли фотографировать сами. Фотографировать самим нам было несподручно; панорам Baidu по Москве нет, зато есть панорамы Яндекса и Гугля. У гугловских даже есть нормальное АПИ, а у яндексовских мы его не нашли. Парсить панорамы Яндекса слишком сложно, а получить гугловские по АПИ слишком дорого и тоже не слишком просто, если нужно покрыть весь город. Нужно понимать, что в Москве около 35 тысяч многоквартирных домов, поэтому полное покрытие — это минимум 35 тысяч фото, а скорее всего, 350 тысяч или больше, ведь одним фото на дом вряд ли отделаешься. К тому же снимки идут за разные годы, на них часто куча зелени, а этажи начиная с пятого обычно видны слишком плохо.

Во-вторых, хотя по картинке с примером разметки фасада кажется, что китайцы применили какой-то хитрый ML для сегментации «заселено — пустует», в самой статье ни о чём подобном не говорится. Наоборот, там сказано, что вакантность была оценена путём ручной разметки. А значит, даже если бы мы собрали сотни тысяч фото, то, следуя зарубежной методике, пришлось бы вручную их разметить. Готовой модели машинного обучения, как мы думали в начале, нет, и её обучение — это тоже куча времени на разметку данных плюс ресурсы на тренировку.

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

Чтобы хотя бы минимально «отработать» методику, мы решили сделать очень ограниченный тест: нашли несколько однотипных домов серии 1-515/5, нарезали с панорам 300 изображений отдельных окон или балконов, по-быстрому разметили на «заселено — пустует», скормили двум моделям и оценили результат. Идея была такова: чтобы оценить вакантность по фасадам, надо в качестве «атомарной» задачи научиться определять по окну или балкону, есть ли там признаки разумной жизни. В терминологии машинного обучения это бинарная классификация. Если с ней не получится, то дальнейшие действия вряд ли принесут хороший результат. Следовательно, учим классификатор, смотрим его качество и отбрасываем методику как непроходную решаем, как быть дальше.

Слева кто-то живёт, справа — нет. Во всяком случае, нам так показалось, потому что слева в окне есть живые цветы
Слева кто-то живёт, справа — нет. Во всяком случае, нам так показалось, потому что слева в окне есть живые цветы
Аналогично для балконов: слева кто-то есть, справа — никого нет, потому что слева жалюзи приподняты, а справа как будто всё наглухо закрыто всерьёз и надолго
Аналогично для балконов: слева кто-то есть, справа — никого нет, потому что слева жалюзи приподняты, а справа как будто всё наглухо закрыто всерьёз и надолго

Первым делом опробовали известную модель Segment Anything. Она не классифицирует картинки, а сегментирует их. Можно предположить, что модель выделит вещи в окнах и на балконах в качестве сегментов, а значит, чем больше сегментов, тем больше шанс, что изображение соответствует заселённой квартире. Для надёжности взяли ещё фото гарантированно пустых окон из недавно построенных, но не сданных домов, и прогнали модель на них. Предположение о сегментах, по-видимому, оказалось небессмысленным, так как в гарантированно пустых окнах сегментов меньше, чем в заселённых. К сожалению, на остальных примерах классификатор работал примерно как монетка, а если точнее, то accuracy была 52.7%.

В качестве альтернативы обучили end-to-end-классификатор на базе EfficientNet, но и его точность была едва выше случайного угадывания. Возможно, сказалось качество исходных фото: они порой мутные, часто искажённые из-за угла съёмки, с многочисленными бликами из-за остекления, нередко закрытые растительностью. Возможно, точность в тренировочных данных тоже была так себе: мы смотрели исключительно по внешним признакам и не ходили проверять, действительно ли в квартире живут. Возможно и то, что обучать модель надо было другую и по-другому: я не специализируюсь на компьютерном зрении, и недостаток опыта мог сказаться.

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

Попытка №2: смотрим на свет

На окна посмотрели — можно посмотреть на свет. На свет до нас уже смотрели, например, другие китайские исследователи, опубликовавшие статью Monitoring House Vacancy Dynamics in The Pearl River Delta Region: A Method Based on NPP-VIIRS Night-Time Light Remote Sensing Images. Идея проста: в темноте окна заселённых квартир светятся, и там, где таких квартир больше, света будет больше, и тогда по ночному снимку со спутника можно понять, где заселённых квартир больше, а где меньше. Наверное, ещё лучше было бы взять ночные снимки не со спутника, а с земли: так можно сразу окна делить на «заселено — пустует» без сложных классификационных моделей, вот только собрать такие снимки ещё сложнее, чем панорамы.

Центр Москвы с наложенным поверх него слоем среднегодовых значений VIIRS Nighttime Light за 2024 год. Красноватые козявки — это дома. Видно, что в одном пикселе снимка их может быть несколько, да и в целом засветка слабо связана в застройкой
Центр Москвы с наложенным поверх него слоем среднегодовых значений VIIRS Nighttime Light за 2024 год. Красноватые козявки — это дома. Видно, что в одном пикселе снимка их может быть несколько, да и в целом засветка слабо связана в застройкой

К сожалению, быстро выяснилось, что с ночными спутниковыми снимками всё ещё хуже, чем с фасадами домов. В отличие от дневных спутниковых снимков, которых много на любой вкус, цвет и кошелёк, провайдер относительно доступных ночных спутниковых снимков по большому счёту один. Снимки у него идут с горизонтальным разрешением в 15 географических секунд — на широте Москвы это примерно соответствует пикселям 500×250 метров. Для красивых обзорных картинок вида «Северная vs Южная Корея из космоса ночью» этого более чем достаточно, а вот для анализа плотной городской застройки — так себе. В городах ночью светится много чего помимо окон, и в полукилометровых квадратах разница в засветке, которую дадут вакантные квартиры, должна быть на уровне погрешности. Китайцы, впрочем, рискнули попробовать, а мы решили даже не пробовать.

Попытка №3: смотрим на счётчики

Если подумать, то весьма простой и в то же время изящный способ понять, живёт ли кто-то в квартире — это изучить показания счётчиков электричества или воды. Счётчики расскажут не только о том, пустует ли квартира, но и о том, в какие именно периоды времени там никого нет, и даже о том, сколько человек в ней, вероятно, живёт. Для оценки вакантности это очень удобно, потому что помогает разобраться с граничными случаями. Скажем, часто бывает, что в квартире никто не живёт, но только летом. Ежемесячные данные счётчиков позволят это увидеть, в отличие от прочих методов.

К сожалению, нормальных источников информации по счётчикам у нас не было. Покопавшись, нашли ненормальный — чат-бот на сайте Мосэнергосбыта. Если знать адрес, то бот скажет лицевой счёт, а по лицевому счёту — долг и показания счётчиков. Собирать данные пришлось бы долго и сложно: запросы проходят только с нужными cookie, которые генерируются на клиенте, поэтому простым requests из Python не обойдёшься — нужен «безголовый» браузер. На каждую квартиру нужно несколько запросов — на квартиру уйдёт, наверное, минуты, а квартир в Москве миллионы. Ответ бота не структурирован — для извлечения данных, вероятно, понадобится платное АПИ большой языковой модели. Истории нет, поэтому, чтобы собрать сведения, скажем, за год, нужно парсить ежемесячно в течение года. В других городах такого бота нет, поэтому метод не масштабируется. Наконец, законность такого парсинга сомнительна: если органы решат, что показания счётчиков — это персональные данные, то можно сесть всерьёз и надолго. Возможно, кто-то более азартный и возьмётся за это, если Мосэнергосбыт не прочитает нашу статью и не закроет лазейку. Мы решили не браться.

Попытка №4: математика на открытых данных

После трёх неудач мы были готовы сдуться сдаться, но вдруг родилась мысль, которая показалась без малого гениальной: можно всё как-то прикинуть по открытым данным. Идея незамысловата: если мы знаем число жителей в доме P, число квартир в доме N и среднее число жителей в одной заселённой квартире k, то мы легко выйдем на число вакантных квартир V. Оно будет высчитываться по формуле V = N - P / k. Скажем, если у нас в доме 100 квартир и 270 жителей, а в одной заселённой квартире в среднем живут трое, то вакантных квартир в таком доме получится 100 - 270 / 3 = 10. Если же у нас в таком доме всего 80 квартир, то пустующих окажется 80 - 270 / 3 = -10, но об этом лучше не думать.

Большой плюс метода — входных переменных всего три, и две из них можно найти в открытых данных ФРТ. Число жителей есть в отчёте по капремонту (КР 1.1), а число квартир — в реестре домов. Загвоздка только с коэффициентом k, ведь нам нужно не среднее число жителей в квартирах вообще, а среднее число жителей именно в заселённых квартирах. Выкрутились так: у Росстата в итогах переписи 2020 года нашлась табличка с зубодробительным названием «Жилые помещения по их типам, числу комнат и числу проживающих в них частных домохозяйств». В этой табличке сказано, сколько в Москве есть квартир с определённым числом комнат, сколько в этих квартирах проживает домохозяйств, и сколько в этих домохозяйствах суммарно людей. Например, однокомнатных квартир с одним домохозяйством из одного человека — 265613. Важно, что Росстат в переписи по определению учитывает только постоянно проживающих и только заселённые квартиры, так как если в квартире никого нет, то переписчик в неё не попадёт. А значит, если по-хитрому сложить и поделить числа из таблички, то можно получить искомое значение k. Детализация в итогах переписи идёт по муниципальным образованиям: это, конечно, не дома, но можно предположить, что k в пределах одного муниципалитета примерно одинаковое.

Реализация алгоритма вышла более сложной, чем описание: пришлось повозиться с геокодированием адресов и чисткой данных. Кроме того, мы решили учитывать число комнат в квартирах: его можно легко найти в веб-интерфейсе ГИС ЖКХ, но нельзя оттуда легко выгрузить, поэтому высчитывали косвенно по площади квартир, а для этого пришлось залезть ещё и в отчёты о государственной кадастровой оценке. Тетрадки с кодом, ссылками на все данные и пояснениями к основным шагам опубликованы в репозитории, поэтому нет смысла описывать детали методики — можно перейти к результатам.

Медианная вакантность жилья по районам Москвы
Медианная вакантность жилья по районам Москвы

Метод дал неожиданный результат: вакантных квартир по Москве аж 30% — в три раза выше, чем у Росстата и социологов РАН. Вакантность отличается от района к району примерно так, как показано на картинке. Вполне объяснимо, например, что в Новой Москве с многочисленными новостройками вакантность повыше, чем в других местах: тут, пожалуй, можно и в половину пустующих квартир поверить. Низкий процент вакантного жилья — это спальные районы на периферии. В центре города ситуация разная: где-то пустующих квартир немного, где-то — побольше. Возможно, там часть жилья выкуплена в качестве инвестиций, поэтому в квартирах никто не живёт.

Картинка показывает, как выглядели бы две карты США, если бы значения на них были распределены случайно, то есть с нулевой пространственной автокорреляцией. Источник оригинала
Картинка показывает, как выглядели бы две карты США, если бы значения на них были распределены случайно, то есть с нулевой пространственной автокорреляцией. Источник оригинала

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

Кластеры локальной пространственной автокорреляции по медианной вакантности жилья в районах Москвы
Кластеры локальной пространственной автокорреляции по медианной вакантности жилья в районах Москвы

С автокорреляцией получилось отдалённо похоже на карту с медианами: тоже чувствуется, что высокая вакантность или в целом какие-то «необычности» смещены на запад или в сторону Новой Москвы. Правда, в отличие от медиан, где районы визуально тоже группируются, здесь кластеры подсвечены с учётом статистической значимости: районов меньше, но если они попали в какую-то группу, то эта группа математически важна. Почти вся основная часть города при таком подсчёте попадает в зону без явных закономерностей: где-то пустых квартир больше, где-то — меньше, но эта разница плюс-минус случайна. Некоторые периферийные районы и часть Новой Москвы уверенно попали в «high-high», так что там и правда кластер высокой вакантности. В других местах, наоборот, подсветилась неоднородность: районы с большой долей пустующих квартир в окружении районов с низкой вакантностью, и наоборот.

Сглаженная медианная вакантность в зависимости от года постройки жилья
Сглаженная медианная вакантность в зависимости от года постройки жилья

Из любопытного — заметили несколько «пиков» и «провалов» вакантности по году постройки дома. Доля пустующих квартир ожидаемо растёт в новостройках — это, кстати, хорошо согласуется с высокими показателями Новой Москвы. В домах 1980–90 гг. вакантность, наоборот, низка. Неплохо заселены, похоже, и «сталинки» 1930-х, а вот дома, построенные в начале 1920-х или начале 1950-х, напротив, пустуют чаще. Есть всплеск вакантности на хрущёвках — может быть, люди не хотят попадать под реновацию и заранее уезжают.

Реакция сообщества архитекторов и градостроителей

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

Не обошлось без забавных организационных моментов: я удалённо подключился к выступлению, чтобы рассказать про алгоритм, и мои слова транслировали без видео через динамики где-то сверху — недолго думая, присутствующие окрестили меня «голосом свыше». Записи, увы, не сохранилось.

Если убрать эмоции, то критика свелась к трём моментам: что мы считали, как считали и что насчитали. «Что считали» — это проблема с определением вакантности. По словам жюри, вакантность необходимо понимать по-другому, а по нашей методике выходит, что если человек живёт на две квартиры, то они обе пустуют, и пора вызывать красных комиссаров из прокуратуры. «Как считали» — это претензия к данным: у профильных специалистов нет доверия переписи-2020, да и в целом подход грубый и неточный. «Что насчитали» — это те самые 30% пустующих квартир: если так и есть, то весь московский Генплан десятилетиями работает неправильно, и пора вызывать красных комиссаров из прокуратуры. Порой мне кажется, что именно пресловутые «30 процентов» произвели наибольшее впечатление: насчитай мы в два раза меньше, впечатление было бы другим.

Критика, пожалуй, справедлива. Наше исследование во многом свелось к «сделать хоть что-нибудь», и отсюда его ключевые проблемы. Мы понимали, что подход получился формализованным, но неточным, что перепись 2020 года в Москве откровенно рисовали, что даже 30% вакантного жилья — это перебор. Очевидно и то, что вакантность надо изучать более прицельно и глубоко: разделять сценарии использования жилья, учитывать намерения собственников. Впрочем, понимали мы и то, что до нас подобного почти никто не пытался делать, что с данными всё крайне трудно и что любой, даже слабый результат, будет в научном плане полезен.

Попытка №5: классический ML на открытых данных

После конкурса мы попытались продолжить исследование, чтобы как минимум для себя понять, сколько же на самом деле в Москве вакантных квартир и где они находятся. Опробовали несколько вариантов, обдумали и обсудили ещё больше, но прорыва, к сожалению, так и не случилось. Тем не менее, полагаю, что о ещё одном методе стоит рассказать, так как он продолжает «попытку №4» и, на мой взгляд, даёт результат, чуть более близкий к истинному.

«Математика на открытых данных» опиралась на волшебный коэффициент k — среднее число жителей в одной непустующей квартире. Этот коэффициент средний, а значит, концептуально неточный, к тому же относится к неким «непустующим» квартирам. А что, если попытаться максимально точно угадать число жителей в отдельно взятой квартире по её «паспортным» характеристикам? Интуиция проста: если мы возьмём квартиры площадью 40, 55 и 70 квадратных метров в хрущёвке, то логично предположить, что в первой, вероятно, живут 1–2 человека, во второй — может быть, трое, ну а в последней — все четверо. Это, конечно, тоже очень грубые прикидки, но можно попытаться набрать много признаков, натренировать классификатор и оценить его точность. Если же мы знаем примерное число жителей каждой квартиры, то мы можем виртуально «заселять» дом до тех пор, пока не наберём ровно P жителей. Те квартиры, которые в такой симуляции останутся незаселёнными, считаем вакантными.

Реализация алгоритма, как и в предыдущем случае, чуть сложнее, чем краткое описание. «Паспортные характеристики» квартир берутся из данных государственной кадастровой оценки, ГИС ЖКХ и ФРТ; для тренировки классификатора используются данные КОУЖ; вместо простого числа классификатор выдаёт распределение вероятностей, из которого потом многократно выбирается то или иное значение, и результат всех симуляций усредняется. Тетрадки с кодом, пояснениями и указаниями на источники данных есть в том же репозитории, поэтому более подробно описывать методику нет смысла: на словах все равно будет непонятно, а заинтересованные пройдут по ссылке и разберутся.

Вакантность по районам Москвы, посчитанная обновлённым методом
Вакантность по районам Москвы, посчитанная обновлённым методом

Основной результат нового способа — оценка вакантности уменьшилась в два-три раза: медиана была 30%, а стала 12%. Пространственное распределение, как видно по карте, тоже поменялось, хотя некоторые общие детали сохранились. Кажется, что 12% пустующих квартир — это более реалистично, чем 30%, и можно было бы радоваться такому итогу. Тем не менее, точность базового классификатора невелика: всего около 0.4. Кроме того, получилось очень много нулевых значений вакантности: около трети от общего числа домов. Всё это мешает назвать полученную оценку достаточно надёжной.

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

Так сколько вакантных квартир в Москве?

Краткий и честный ответ: мы так и не знаем.

По моим впечатлениям, основанным на годе работы над темой, их вряд ли 30% и тем более уж не 50%, но, пожалуй, не меньше 10%, но вряд ли больше 20%. Оценка 12% в среднем по городу, полученная «новым» методом, кажется мне достаточно адекватной, но, к сожалению, проверить её мы не можем, и полагаться на надёжность метода — тоже.

Важно понимать, что 12%, даже если они верны — это «формальная» вакантность. Иными словами, это объективно пустующие квартиры, примерно как если бы кто-то походил, посмотрел, ни с кем не разговаривал и отметил все квартиры, где никого не увидел, как «пустующие». В реальности человек может жить в квартире часть года, тогда в остальное время она будет формально вакантной, хотя по сути — нет. Или же человек может использовать вторую квартиру как склад вещей или место для встреч по особым поводам. Соответственно, реальная вакантность — когда квартира пустует и не используется — видимо, ниже формальной.

Можно оценить нижний порог вакантности, воспользовавшись опросом Банка России. У людей спрашивали, есть ли у них другое жильё, и если да, то в том же регионе страны оно находится. Взяв результаты по Москве, можно посчитать, что у опрошенных 622 квартиры, из них 33 никак не используются. Ответ «никак не используется» соответствует «минимальной истинной вакантности», и она в таком случае равна примерно 5.3%.

Как правильно посчитать вакантность

Мы не смогли точно оценить вакантность, но приобрели опыт, который может помочь будущим исследователям. Сама эта статья, данные и код по ссылкам — это попытка изложить этот опыт в максимально открытом и задокументированном виде.

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

  1. Похоже, что наиболее точный и единственный реально надёжный способ — это использовать непубличные поквартирные данные, свидетельствующие о заселённости: расход электроэнергии, воды, объём интернет-трафика. Не исключено, что можно по-хитрому приспособить и мобильные данные, если координаты достаточно точны и если знать поэтажную планировку домов, но это уже задача «со звёздочкой». Думаю, что те, у кого есть легальный доступ к таким данным, могли бы без особого труда провести нужное исследование.

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

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

Тема вакантности жилья сложна, запутанна, и в случае с Россией малоисследованна, но при этом важна и актуальна. Мы попытались чуть-чуть её разобрать, и у нас получилось далеко не всё задуманное. Быть может, кто-то пойдёт по нашим стопам и сможет пройти дальше.

P. S. Академическим читателям, возможно, будет интересно, что помимо хабровской статьи у нас готовится полноценная академическая публикация в сборнике InterCarto. InterGIS. Там есть почти всё, что есть здесь, кроме «попытки №5». Статья выйдет ориентировочно в декабре 2025 года. Когда это произойдёт, поставим здесь ссылку.

Комментарии (2)


  1. aborouhin
    30.09.2025 07:49

    Данные по потреблению энергии и воды можно, IMHO, было и попросить у коммунальщиков. Пусть не в разбивке по квартирам, а суммарно по домам (точно не персональные) - это даст средний расход на квадратный метр, отклонения от которого (с учётом коэффициентов на уровень жилья, наличие газа и т.п.) будут свидетельствовать о вакантных квартирах.

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


  1. sergeyns
    30.09.2025 07:49

    Присоединяюсь к вышенаписанному комментарию. ИМХО, данные по потреблению электричества и воды - вот ключ к определению живут/не живут. При этом данные потребления электричества, наверно, более надежны (по данным водоканала, еще примерно 10% жилья не имеют счетчиков). Кстати, данные водоканала показывают что в рамках "старой" Москвы население (потребление воды) не растет примерно так с 2020 года...