Сборник демографических рассказов в одной карте

    fig0


    В свежем номере журнала The Lancet опубликована моя статья — любопытная карта и небольшое к ней пояснение. Решил рассказать об этом на Хабре, поскольку есть надежда, что реализованный способ визуализации данных может пригодиться еще кому-то.


    Kashnitsky, I., & Schöley, J. (2018). Regional population structures at a glance. The Lancet, 392(10143), 209–210. https://doi.org/10.1016/S0140-6736(18)31194-2

    Собственно, вот карта в высоком разрешении (кликабельно).


    fig1


    Карту можно воспроизвести точь-в-точь за несколько минут, код на гитхабе.


    Данные создают цвета


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


    Одна карта может поведать нам бесконечное количество демографических историй. Курдистан, юго-восточная часть Турции, еще не завершил демографический переход, Восточная Европа переживает последние годы демографического дивиденда, в то время как западная Европа стремительно стареет. Столичные регионы стягивают население трудоспособного возраста, пристоличные регионы – молодые семьи с детьми, а в провинции остаются доживать старики. Приблизите карту, и вы увидите явственную границу между двумя Бельгиями – Фландрией и Валлонией. А знаете что это за яркое сиреневое пятно в Финляндии? Оказывается, там живут лестадианцы, крайне традиционные протестанты, предпочитающие в вопросах планирования семьи благочестивую позицию «сколько Бог пошлет» – рассказали мне финские демографы на Европейской конференции по изучению народонаселения. А посмотрите на Испанию, береговые регионы которой вместе со столичным регионом получили в нулевые годы невероятный приток международной миграции, в отличие от внутренней периферии страны.


    tricolore


    Цвета созданы с помощью нашего R пакета tricolore. Этот пакет, как мы надеемся, позволит исследователям из разных областей науки с легкостью отображать цветом троичные композиции данных. Чтобы "пощупать" возможности метода, можно поиграться со встроенным интерактивным примером, приложением shiny.


    install.packages("tricolore")
    library(tricolore)
    DemoTricolore()

    Весь код на гитхабе





    UPD 2018-07-24: Разместил вчера карту на реддите (r/dataisbeautiful). За сутки 450К+ просмотров, 11.5К+ рейтинг, 365 комментариев. И дискуссия, порой, очень толковая. [ссылка на пост]

    Поделиться публикацией
    Комментарии 40
      +2
      Да демографическая проблема сейчас на самом деле основная в мире. есть ли подобный карты для других частей мира?
        +2

        Пока нет. Но метод совершенно генерализованный, можно запросто кинуть любые данные на карту. Сделаю на досуге Россию и США.

        • НЛО прилетело и опубликовало эту надпись здесь
            +2

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

              0
              А как это сделать для конкретного региона и Росии самостоятельно? Статистические данные есть, границы регионов тоже.
              0
              неужели нет публичных дата сетов по итогам последних переписей?
              ООН ЮНИСЕФ или кто там ведь ведут такую статистику…
              какие именно данные нужны и в каком формате?
                0
                Сделайте, пожалуйста.
                Очень интересна такая визуализация.
                +3
                Поддерживаю.
                Хотелось бы данные по всей Европе, а не только её части
                  +1

                  Я использовал данные Eurostat для всех стран, которые приняли систему административного деления NUTS.

                +1
                Как интересно на фоне остальных выделяется Ирландия, хотя вот Турция с такими же цветами нет.
                  +1
                  в Ирландии традиционно высокий (для Западной Европы) суммарный коэффициент рождаемости (СКР). Там более сильное влияние религии на менталитет
                    +1
                    И аборты разрешили только в этом году.
                    0
                    Наверное из-за уровня в жизни. Помнится, Ирландия держалась в топе по ИРЧП довольно долго.
                  +2
                  С ума сойти, у вас есть публикация в Lancet — мои поздравления!
                  Таким не грех хвастаться и просто так, не говоря уж о том, что рассказать публике о том, как опубликоваться в ланцете.
                    +2

                    Спасибо! Думаю, что "рассказать публике" нечего (см. картинку в подвале). Это очень нестандартная публикация для Ланцета, тем более для формата писем. Пожалуй, один вывод можно сделать уверенно: красивая визуализация нравится всем, в том числе и редакторам журналов. Нет, еще вывод: стоит пытаться.


                    Как опубликоваться в The Lancet
                    +2
                    Интересно бы взглянуть на национальный состав. Возможно население трудоспособного возраста имеет заметную долю мигрантов.
                      +1

                      Несомненно. Но тут значительно сложнее с данными. Качество данных о миграции традиционно отвратительно. Исследователи прибегают к косвенным методам оценивания. Вот пример:
                      Wilson, C., Sobotka, T., Williamson, L., & Boyle, P. (2013). Migration and intergenerational replacement in Europe. Population and Development Review, 39(1), 131–157. https://doi.org/10.1111/j.1728-4457.2013.00576.x
                      Это одна из моих самых любимых статей. В студенческие годы я ее даже перевел на русский. Очень рекомендую, если интересна миграция.
                      Уилсон, К., Соботка, Т., Уильямсон, Л., & Бойл, П. (2015). Миграция и замещение поколений в Европе. Демографическое Обозрение, 2(1), 56–88. https://demreview.hse.ru/article/view/1789


                      Пара картинок из статьи
                        0
                        There are three kinds of lies: lies, damned lies, and statistics. :) особенно, если вопросы как-то касаются политики.
                      0
                      Слишком много цветов на карте и по легенде частенько сложно сказать, что они означают. Есть ли возможность сгруппировать в, например, 9 групп с отдельным цветом для каждой? Как по мне — это наглядней. Текущая карта — слишком детально. К тому же данные по населению, скорее всего, примерные. Например, для меня Норвегия — полная загадка, что у них происходит, если просто сравнить карту и легенду.
                      Javian
                      Интересно бы взглянуть на национальный состав. Возможно население трудоспособного возраста имеет заметную долю мигрантов.
                      Лучше нац. состав на другой карте и просто накладывать, при желании, ибо если еще эти данные внести, то получится такой винегрет, что не разберешь.
                        0

                        Есть такая возможность в нашем пакете tricolore. Но, конечно, надо делать отдельно.


                        пример (другие данные)
                        install.packages("tricolore")
                        library(tricolore)
                        DemoTricolore()
                        +1
                        А не лучше было использовать чистые цвета RGB?
                        То есть например, Working Age — это чистый 0, 0, 255.
                        Young — 255, 0, 0.

                        Тогда области со сбалансированным населением были бы просто белыми, а не имели этого сложного грязного цвета.
                          +1

                          Была такая попытка. Все сотрудничество с Йонасом у меня началось с идеи применения здесь perceptionally balanced color scheme.


                          RGB

                          image

                            0
                            А почему от этого варианта отказались?
                              0

                              Теоретически CYMK цвета правильнее для отображения композиций.
                              Schöley, J., & Willekens, F. (2017). Visualizing compositional data on the Lexis surface. Demographic Research, 36(21), 627–658. https://doi.org/10.4054/DemRes.2017.36.21

                              +1
                              А по-моему понятнее так. Красное — старое население, красное цвет проблемы. Зеленое — «можно идти» (работать), синее — юность.
                                +1

                                Худший вариант для людей с нарушениями цветовосприятия. Только создав эту карту, я с удивлением понял, как же их много

                                  0
                                  Демографические проблемы отображались бы при делении на «дети и студенты / трудоустроенные / безработные и пенсионеры», а не тупо по возрасту.
                                  Что-то мне подсказывает, что 64-летний британец куда как экономически активнее 64-летнего курда.
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                      +1
                                      Если учесть:
                                      1. что британец выходит на пенсию в 65 лет,
                                      2. что курд выходит на пенсию в 60 лет (это возраст выхода на пенсию в Турции и Иране)
                                      то ваше утверждение не корректно.
                                      У британца — просто денег больше.
                                      Думаю зависимость обратная.
                                      Чем экономически активнее человек, тем у него денег больше.
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                +1
                                Всё равно цвета будут грязно серыми, а не чисто белым. Надо еще яркость на максимум cтавить. А вообще тут дело привычки скорее. Так как в оригинальном просто используется базис голубой, пурпурный и жёлтый, удобней для печати.
                                  0

                                  https://twitter.com/jschoeley/status/1001503122873872385


                                  install.packages("tricolore")
                                  library(tricolore)
                                  DemoTricolore()
                                    0
                                    Тут вопрос был в том что смешивание цветов происходит с уменьшением их яркости. Видимо типа при 33% каждого компонента, яркость компоненты снижается на 66% и в сумме получается темносерый цвет. Но возможно было бы красивее повышает общую яркость наибольшей компоненте до максимума и остальные пропорционально. Тогда при равных пропорциях получился бы белый цвет, а на гифке в центре всегда темно серый при любых значениях цвета в углах.
                                      0

                                      Что-то вроде этого вам хочется?


                                      tricolore::DemoTricolore()

                                      image

                                        0
                                        Да, так гораздо лучше! Сбалансированное население — это ведь отсутствие проблемы, значит, логичней всего оставить белым. Чем темнее фон, тем больше дисбаланс. Ну а сам цвет уже показывает, в какую сторону этот дисбаланс.
                                        Гораздо логичней, чем первоначальный вариант с каким-то сложным серобуромалиновым для сбалансированных областей.
                                          +1

                                          Проблема в том, что нам хочется сохранить максимальное визуальное разнообразие оттенков цвета. А это, чисто теоретически, достигается при идеально сером цвете центра ("grey50")

                                            +1
                                            Среднее по европе — не значит идеально сбалансировано. Вот если было бы теоретическое исследование оптимума по таким категориям возрастным, тогда можно было бы центрировать серый на нём, и посмотреть где проблемы есть, а где всё чётко.
                                  0
                                  хм, мой R пишет радостное «plot.tag» is not a valid theme element name.
                                    0

                                    Да, мне писал на почту еще один человек с той же ошибкой. Пока могу предположить, что проблемы возникают из-за: 1) обновления ggplot2 (использована версия 2.2.1); 2) обновления R (использована версия 3.4.3)

                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                  Самое читаемое