Вопрос-ответ: история цен на авиабилеты
Спрашивает Андрей:
Есть интересная задача — визуализировать историческую стоимость билета (авиа, жд и т. п.) в зависимости от даты его покупки. Наиболее простым кажется следующий вариант: пользователь выбирает направление (откуда и куда), авиакомпанию-перевозчика, выбирает дату отправления и на графике ему показывается стоимость в зависимости от даты покупки.
Но это не удобно для пользователя, так как придется перебирать авиакомпании/перевозчики. Для этого можно несколько графиков рисовать сразу. Но даже этот подход не решает самую главную задачу: если пользователь может изменить дату поездки (например, плюс/минус неделя), то чтобы найти наиболее удобный вариант, ему придется перебирать и дату отправления.
Как бы вы предложили показать на одном графике (возможно, интерактивном) изменение цены в зависимости от даты покупки билета, даты отправления и перевозчика?
Давайте для простоты рассуждений сузим задачу до авиабилетов. Предложенный вами график цены билета на определённую дату вылета в зависимости от даты покупки — это первый шаг в решении задачи. Именно такой тренд интересно изучать и сравнивать для разных дат и сезонов вылета, перевозчиков, направлений. Это идеальный элементарный кирпичик визуализации: графики удобно сравнивать между собой (сравнимость) и складывать друг с другом для получения глобальных картин (аддитивность). Глобальные картины, полученные суммированием графиков, в свою очередь тоже можно сравнивать.
Чтобы проиллюстрировать свою мысль я воспользуюсь данными, любезно предоставленными туристическим сервисом «Туту.ру». Это усреднённые данные по покупкам: 5384 цены на билеты Аэрофлота в направлении Москва → Симферополь, 1480 усреднённых по различным авиакомпаниям цен в направлении Москва → Берлин и 1035 усреднённых по авиакомпаниям цен Москва → Тиват. Данные не совсем полные и однородные, тем не менее интересные для изучения.
Чтобы отличать графики между собой используем цветной градиент для разных дат вылета:
Живой прототип: https://ticket-prices.datalaboratory.ru/
В целом подтверждается гипотеза, что чем ближе вылет, тем дороже билеты: в правой части графика дорогих покупок больше, сеть плотнее. Но и исключений из этого правила — нисходящих графиков с заблаговременными дорогими покупками — довольно много.
Изучим внимательно наиболее подробные и однородные данные о перелёте Москва → Симферополь (только Аэрофлот):
Билеты в прошлом летнем сезоне покупались и заранее, и накануне вылета, в среднем за 5 тыс. руб со случайными отклонениями до 7—10 тыс. Осенью плотность «хвоста» слева уменьшилась, покупки совершались ближе к дате вылета, при этом ранняя цена в среднем чуть меньше поздней. Зимой билеты никто не покупал раньше, чем за полтора месяца до вылета, зато цены покупок в последние дни заметно скачут — до 10—15 тыс. Весной проявились ярко выраженные ступеньки (фиксированные тарифы): синие мартовские ступеньки до снижения цен по указанию президента, зелёные апрельские — после.
Интересно, какие закономерности найдут на визуализации внимательные читатели :-)
Присылайте вопросы о визуализации данных на почту: data@datalaboratory.ru, ответы публикуются ежемесячно. При участии Кирилла Беляева и Сергея Долинина. Спасибо Никите Иванову и Наталье Анисимовой за данные для эксперимента.