Эксперимент: возникает ли финансовое неравенство при случайной раздаче денег



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

    Задача: как распределяются деньги при случайной раздаче


    Издание Decision Science News опубликовало материал с описанием необычного эксперимента:

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

    У большинства из тех, кто столкнулся с этой задачей, само собой возникло предположение, что в итоге все получат примерно поровну денег. Даже пять докторов наук, опрошенные Decision Science News, пришли к тому же первоначальному выводу. Но так ли это на самом деле?

    Как выглядит распределение


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

    image

    Инфографика охватывает временной интервал в 5000 секунд. Ось Y показывает количество денег, которое есть у каждого из участников мысленного эксперимента. Отсчёт начинается с 45 долларов. На оси Х показано количество людей в комнате — 45 человек.

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

    Проверить результаты эксперимента самостоятельно можно с помощью следующего кода (понадобятся R, tidyverse и gganimate):

    library(tidyverse)
    library(gganimate)
    
    NUMPLAYERS = 45
    ROUNDS = 5000
    INITWEALTH = 45
    
    #initialize the bank
    #columns wealths of the NUMPLAYERS players
    #rows show wealths of each of the ROUNDS ticks of the clocks
    bank = matrix(0, nrow = ROUNDS, ncol = NUMPLAYERS)
    bank[1,] =  c(rep(INITWEALTH, NUMPLAYERS))
    
    #function to give a dollar to someone other than oneself
    get_recipient = function(player) {
      sample(setdiff(1:NUMPLAYERS, player), 1)}
    
    #execute trades and update the ledger 
    for (i in 2:ROUNDS) {
      #every player with wealth chooses another person to receive a buck
      recipients = sapply(which(bank[i - 1,] > 0), get_recipient)
    
      #table of the dollars owed each person
      count_table = table(recipients)
      
      #get the indices of the people owed money
      indices = as.integer(names(count_table))
      
      #everyone gives up a dollar, unless they are at zero
      bank[i,] = ifelse(bank[i - 1,] > 0, bank[i - 1,] - 1, bank[i - 1,])
      
      #selected people receive dollars
      bank[i, indices] = bank[i, indices] + count_table
    }
    
    ####################Animate it
    #Make a suitable long data frame
    df = as.data.frame(bank)
    names(df) = 1:NUMPLAYERS
    df = df %>%
      mutate(frame = 1:ROUNDS) %>%
      gather(person, wealth, 1:NUMPLAYERS) %>%
      mutate(person = as.numeric(person)) %>%
      arrange(frame) %>%
      group_by(frame) %>%
      mutate(rank = rank(wealth, ties.method = "random")) %>%
      ungroup() %>%
      gather(histtype,playerid,c(person,rank)) %>%
      mutate(histtype = sprintf("Ordered by %s", histtype))
    
    p <- ggplot(df, aes(x = playerid, y = wealth, frame = frame, fill=histtype)) +
      theme_minimal() +
      theme(panel.grid.major.x = element_blank(),
            panel.grid.minor = element_blank()) +
      geom_rect(aes( xmin = playerid - .4, xmax = playerid +.4, ymin = 0, ymax = wealth)) +
      scale_x_continuous(breaks = 1:NUMPLAYERS) +
      coord_cartesian(xlim = c(0, NUMPLAYERS), y = c(0, 5 * INITWEALTH)) +
      theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
      labs(x='players',y='dollars') +
      facet_wrap( ~ histtype,ncol=1) +
      theme(legend.position = "none")
    p
    
    #set options for the animation package. Need ImageMagick installed on your computer
    animation::ani.options(nmax = ROUNDS,
                           convert = 'C:\\Program Files\\ImageMagick-7.0.6-Q16')
    #save the movie
    gganimate(p, "dollar_stacked.mp4", interval = .01)

    Как видно, неравенство возникает даже при самом казалось бы безобидном сценарии. Поэтому необходимо следить за распределением финансов.

    Останутся ли богатые вечно богатыми?


    Математик Джордан Элленберг поясняет, что многие считают, будто при случайной раздаче все получат приблизительно поровну денег. На самом деле оказывается, что неравенство в распределении финансов появляется почти сразу же. Более того, оно сохраняется, пока люди продолжают раздавать друг другу деньги случайным образом.

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

    Таким образом, в долгосрочной перспективе все варианты распределения денег одинаково вероятны. Наблюдатели эксперимента смогут увидеть и ситуацию, в которой у одного человека в руках 9 901 доллар, а у прочих — по одному доллару, и распределение всех средств поровну, как в самом начале эксперимента.

    Другие материалы по теме финансов и фондового рынка от ITinvest:


    ITI Capital 224,84
    Лучший онлайн-брокер для работы на бирже
    Поделиться публикацией
    Комментарии 30
      +12
      Не та картинка.
      image
        +3
        Вот каков алгоритм заложен у функции Рандомизации(помним да, что функция random так же работает по определённому алгоритму), таков и получится результат, но чисто по человечески, в одном из случаев, понимаем и допускаем, что в конечном счёте лишь у одного человека сосредоточатся практически вся сумма денег, а у остальных оставшаяся — незначительная сумма.
          0
          Не такое уж и большое неравенство возникает: в моем тесте (100 человек, 10 млн+ эпох) медиана стабильно получается от 50 до 100% от изначальной суммы денег, в среднем, около двух третей.
            0
            В этом посте не хватает ссылки на какое-нибудь описание распределения порядковых статистик. Вообще вопрос довольно криво поставлен, все-таки интуиция говорит, что распределения количества денег у двух любой людей комнате должно быть одинаковое, а вот форму самого распределения из данного описания задачи очень сложно представить.
              0
              Попробую восполнить недостатки заметки — я читал про этот эксперимент исходную заметку на английском (плюс кое-что по ссылкам в обсуждении).

              1. Распределение богатства, которое устанавливается после достаточно большого количества итераций (и независимо от начального распределения) — распределение Гиббса, и этот факт выводится тем же способом, как в термодинамике. Краткое пояснение на английском этого вывода приводится в разделе 2 вот этой статьи (ну, там пересказ термодинамического вывода, варианты которого есть в википедии и много где ещё на русском). Я идею вывода поверхностно понимаю, но не уверен, что хорошо перескажу в коротком комментарии, так что решил не пересказывать. Форма распределения — обрезанный и нормированный в соответствии с постановкой эксперимента график экспоненты.

              2. Конечно, среднее количество денег у каждого участника — одно и то же, 100 долларов в исходной постановке с 100 участниками. Распределение же показывает, какую долю времени в среднем он проводит с такой-то суммой в кармане — более часто с меньшей, менее часто с большей. При этом, фиксированный шаг по абсциссе (деньги) даёт уменьшение среднего времени пребывания в этом состоянии (значение ординаты) в фиксированное количество раз — экспонента!
                0
                Да, ещё один момент — по-моему, в теорвере соответсвующее распределение вероятностей называется геометрическим: рассматривая его как дискретное (а не непрерывное, как в термодинамике), мы видим геометрическую прогрессию.
                +1
                Откуда взялось 9901 в конце, если всего денег в эксперименте 45*45=2025?
                  0

                  Тут два разных эксперимента смешались. В визуализации 45 по 45, а в начале в тексте 100 по 100.


                  При 100 по 100, деньги могут в какой-то момент распределится так, что у 99 человек по рублю, а у одного всё остальное, 9901. Мне кажется вероятность такого состояния меньше, чем у состояния, когда вообще все деньги у одного. Но что-то ресурсы мозга на сегодня закончились.


                  Поэтому необходимо следить за распределением финансов.
                  По-моему либо это математический призыв к революции, либо попытка оправдать запрет криптовалют :)
                    0
                    Моего похоже тоже… Перечитал вроде, но всё равно упустил!
                      0
                      Напротив, их благосостояние всё время меняется: каждый человек со временем то богатеет, то беднеет.
                      0
                      На графиках 45*45, а в тексте 100*100
                      +1
                      Визуализируйте более насущную ситуацию. Абсолютно по теме обсуждаемой задачи.
                      Коллектив в котором традиционно на день рождения все скидываются имениннику складывая в конверт фиксированную сумму от каждого. В идеальных условиях за год каждый человек сколько скинулся, столько и получил на свой праздник от других. В реальности фактором случайности выступают болезни, отпуска, командировки, отгулы, текучка кадров. Давайте исключим такой глобально подбивающий фактор, как отсуствие на празднике именинника (пусть он празднует позже, но каждый год подарок в конверте получает). Но все равно волею случая одним скидываются больше, другим меньше. Чувствую что не везет рожденным в сезон отпусков (глобально), сезонных эпидемий и командировок (если у фирмы периодические выезды привязанные к определенным датам ежегодно).
                        0

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

                          0
                          В сезон отпусков и проставляться меньше))
                          Поэтому всё очень индивидуально.
                            0
                            Как бы поступил настоящей скряга: он бы положил деньги на депозит, в конце года у него бы остались проценты, а тело депозита он бы раздал обратно.
                              +2
                              Превысит ли прибыль транзакционные расходы? К тому же, если ставка по депозиту ниже ставки дисконтирования для конкретного агента, становится выгоднее сегодня потратить, а потом заново собрать
                              0
                              Мне не везёт. Не помню случая, чтобы мне на ДР дарили конверт, хотя я исправно всем вкладываюсь.
                              +5
                              Такая длинная гифка — это очень неудобно. Ни перемотать ни ускорить. Не делайте так, пожалуйста :)
                              –1
                              Модель не имеют отношения к реальному распределению денег, ибо богатый гораздо легче получит денег с бедного, чем наоборот.
                                +1
                                > Таким образом, в долгосрочной перспективе все варианты распределения денег одинаково вероятны.

                                Тяжело в это поверить.

                                Например такой вариант: [10000, 0, 0, 0, ..., 0] имеет нулевую вероятность, потому что в него прийти невозможно ни из какого состояния.

                                Такой [9999, 1, 0, 0, ..., 0] возможен, но в него можно прийти только из одного конкретного состояния только одним способом, поэтому я всё же думаю его вероятность меньше чем других распределений.
                                  0
                                  Например такой вариант: [10000, 0, 0, 0, ..., 0] имеет нулевую вероятность, потому что в него прийти невозможно ни из какого состояния.

                                  Не написано, что себе нельзя передавать, поэтому состояние возможно.

                                  +1
                                  Я все понял, что бы стать богатым, нужно меньше отдавать и больше получать. КО. )
                                    0
                                    Дык классика же теорвера, что если случайным образом распределять что-то, то распределится не идеально равномерно.

                                    Вот и статья тут была подобная https://habrahabr.ru/post/163621/
                                      0
                                      Я тоже сразу вспомнил про ту статью и хотел написать комментарий, но решил сначала просмотреть все комментарии, что кто-нибудь должен почувствовать ассоциацию.
                                      И не ошибся, что приятно :)
                                      И та статья намного интереснее.
                                      0
                                      Сделаем предположение, что:
                                      1. у участников достаточно много денег и они никогда не уходят в минус;
                                      2. реципиенты выбираются случайно, независимо и с равномерным распределением вероятности получения доллара от каждого участника;
                                      Заметка — в такой постановке начальное количество долларов и факт отдачи доллара на результат не влияют.
                                      Тогда распределение количества денег, полученных каждым участником на очередном ходе будет стремиться к нормальному при увеличении числа участников. И уж тем более, при значительном количестве ходов сумма денег, полученных каждым участником, будет случайной величиной с нормальным распределением.
                                      Именно это мы можем наблюдать на картинках.
                                      Код в Wolfram Mathematica:
                                      populationSize = 45;
                                      len = 5000;
                                      res = Sort[
                                      Tally[Flatten[
                                      RandomChoice[
                                      Range[populationSize], {len, populationSize}]]]][[All, 2]] -
                                      5000;
                                      ShapiroWilkTest[res]
                                      ListPlot[Sort[res]]
                                      Histogram[res]
                                        0
                                        А почему с нормальным? Выше про Гиббса писали
                                          +1

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

                                        0
                                        я знаю что когда раздаёшь, смотрят на тебя сначала как на и… та, потом и делают им, ударом по голове, а потом ты теряешь заработок как правило.
                                          –2
                                          На основе этой байды можно построить детерминированную модель распределения, если вместо random использовать hash.

                                          И еще забава для гиков — разработать свой блок-чейн на основе N транзакций для описанной в статье задачи.

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

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