Yet Another Rating System

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

    Аппроксимация нормальным распределением


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

    Что такое нормальное распределени?!
    Для тех, кто прогуливал пары мат. статистики, напомню, что из себя представляет нормальное распределение, да и вообще распределение вероятностей. Допустим, мы пришли на остановку и увидели, как прямо перед нами уехал автобус. Мы знаем, что следующий приедет примерно через 15 минут (на 15й минуте). Ну, может на 16й. Или наоборот, на 14й. В принципе, водитель может поторопиться и приехать уже на 12 минуте, но вероятность этого гораздо ниже. График внизу как раз и показывает распределение вероятностей приезда автобуса в каждую минуту: скорее всего он приедет на 15й минуте, с чуть-чуть меньшей вероятностью — на 14й или 16й, и совсем с небольшой вероятностью на 12й или 18й.



    При этом следует понимать, что значение по оси Y — это не вероятность, а плотность вероятности (probability density function, PDF). Сама вероятность высчитывается как площадь под графиком между двумя значениями X1 и X2, например, вероятность, что автобус придёт между 15 и 16 минутой в данном случае равна 0.248. Но об этом позже.

    Нормальное распределение характеризуется двумя параметрами — средним значеним (mean, здесь — 15 минут) и дисперсией (variance, разброс), которая показывает степень неопределённости среднего значения: чем больше дисперсия, тем шире график, и тем меньше мы уверены в том, когда же наконец придёт этот автобус.


    Рейтинг, как правило, это просто число, какой-то конечный результат оценивания. А собственно оценивать мы будем предполагаемое качество фильма (кофемолки, статьи, пользователя — нужно подчеркнуть). На графике ниже показаны графики распределений для двух гипотетических фильмов.



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

    В принципе, нормальное распределение само по себе уже позволяет неплохо моделировать рейтинг (теоретическое обоснование для этого даёт центральная предельная теорема). Однако в статистике есть и более удобный инструмент для этого.

    Бета-распределение


    Так же, как и нормальное, бета-распределение задаётся двумя параметрами — alpha > 0 и beta > 0 (записывается как X ~ B(alpha, beta)). Одако в отличие от нормального, всегда имеющего форму колокола, бета-распределение обладает гораздо большей гибкостью. В частности, при alpha = 1 и beta = 1 данное распределение превращается в равномерное (тёмно-синяя линия на рисунке внизу), при alpha < 1 и beta < 1 функция распределения принимает форму колодца (зелёная линия), а при alpha > 1 и beta > 1 становится похожа на нормальное (красная и светло-голубая линии).



    programming exercise
    Было бы нечестно и дальше продолжать показывать графики и не рассказывать, как их нарисовать и поиграться с параметрами, поэтому здесь и ниже я буду показывать примеры кода для генерации каждого изображения. Примеры будут на Python с использованием библиотек NumPy, SciPy и matplotlib (все три доступны из pip), однако их можно элементарно перенести на R, Matlab/Octave, Java и даже JavaScript.

    Для всех примеров понадобатся следующие импорты:

    from numpy import *
    import scipy.stats as ss
    import pylab as plt
    


    Предыдущий график был сгенерирован следующим кодом:

    x = arange(101) / 100.
    plt.plot(x, ss.beta(1, 1).pdf(x))
    plt.plot(x, ss.beta(.7, .7).pdf(x))
    plt.plot(x, ss.beta(5, 5).pdf(x))
    plt.plot(x, ss.beta(10, 5).pdf(x))
    plt.show()
    



    Кроме этого, бета-распределение обладает несколькими интересными свойствами:

    1. Оно ограничено конечным интервалом. Если мы хотим «запереть» возможные значения в интервал от 0 до 1, то бета-распределение — как раз то, что надо.
    2. Оно симметрично относительно своих параметров. График B(alpha, beta) будет зеркальным отражением графика B(beta, alpha).
    3. alpha и beta действуют на разные стороны графика плотности. При увеличении alpha график смещается и наклоняется вправо, при увеличении beta — наоборот, влево.
    4. Дисперсия при увеличении любого из параметров уменьшается.


    Оценки пользователей


    А что, если использовать в качестве параметров alpha и beta соответственно количество положительных и количество отрицательных оценок пользователей? При этом изначально бета распределение можно инициализировать единицами для обоих параметров (что, вообще говоря, будет соответствовать лапласовскому сглаживанию). В этом случае изначально наша оценка относительно качества фильма будет равномерно распределена (мы ничего не знаем о нём), а каждый голос будет увеличивать один из параметров, уменьшать дисперсию и сдвигать график либо вправо (alpha параметр, положительные отзывы), либо влево (beta параметр, отрицательные отзывы). При этом наша оценка качества фильма никогда не выйдет за пределы интервала [0..1] и, по сути, будет показывать вероятность того, что фильм понравится среднестатистическому зрителю.

    Рассмотрим несколько примеров. Когда появляется новый фильм, про который ещё никто не высказал своё мнение, его параметры alpha и beta будут равны единице, а график плотности будет эквивалентен графику равномерного распределения:



    programming exercise
    # продолжая предыдущий пример
    plt.plot(x, ss.beta(1, 1).pdf(x))
    plt.show()
    



    Оказалось, что информацию о фильме загрузил сам режисёр. Сам загрузил, и сам же проголосовал. Естественно, положительно. Да ещё и пятерых своих помощников попросил помочь. Итог: alpha = 1 + 1 + 5 = 7, beta = 1.



    programming exercise
    # всё аналогично
    plt.plot(x, ss.beta(7, 1).pdf(x))
    plt.show()
    



    Бывшая жена режиссёра увидела страницу фильма и решила подпортить рейтинг, вместе с любовником проголосовав отрицательно. Итог: alpha = 7, beta = 1 + 2 = 3:



    programming exercise
    plt.plot(x, ss.beta(7, 3).pdf(x))  
    plt.show()
    



    После 8 голосов средняя оценка, с учётом лапласовского сглаживания, будет равна alpha / (alpha + beta) = 7 / 10 = 0.7. Однако из графика видно, что дисперсия получившегося распределения всё ещё высока, а значит наша уверенность в такой оценке — низкая.

    Предположим, что в течении первой недели проката за фильм проголосовало ещё 90 человек, причём так, что параметр alpha в итоге оказался равен 70, а beta — 30. Средняя оценка будет, как и раньше, равна 70 / 100 = 0.7, однако график значительно изменится:



    programming exercise
    plt.plot(x, ss.beta(70, 30).pdf(x))
    plt.show()
    



    Дисперсия на втором графике гораздо меньше. Т.е. при увеличении количества голосов наша уверененность в оценке качества фильма также увеличивается.

    Рейтинг


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

    Чтобы разговор был более предметным, возьмём для примера 2 фильма: один из предыдущего раздела с распределением B(70, 30) и другой, более популярный, с распределением B(650, 350). Графики распределений изображены на рисунке ниже:



    programming exercise
    plt.plot(x, ss.beta(70, 30).pdf(x))  
    plt.plot(x, ss.beta(650, 350).pdf(x))  
    plt.show()
    



    С одной стороны, среднее значение оценок для первого фильма выше — 0.7 против 0.65. Однако, второй фильм посмотрело гораздо больше людей, поэтому ещё неизвестно, какова была бы оценка первого фильма после такого же количества отзывов. Так как же их сравнить?

    Один из вариантов сравнения — это посчитать минимальное доверительное качество фильма, число, показывающее минимальную оценку, которую может получить фильм после бесконечного количества отзывов. В статистике не принято доводить всё до абсолюта, поэтому в качестве уровня доверия возьмём не 100%, а стандартные 95%. Это означает, что мы хотим быть на 95% уверены, что фильм не хуже, чем X. Графически это означает, что 95% площади под графиком должно находиться справа от X:



    programming exercise
    Практически все статистические библиотеки для всех реализованных распределений предоставляют функцию вероятности (cumulative probability function, CDF), которая принимает на вход значение и возвращает вероятность, что случайная величина окажется меньше этого значения. Т.е. по сути функция CDF от некоторого значения X возвращает площадь под графиком между нулём и X. Это отличается от того, что нам нужно, в двух аспектах.

    Во-первых, нам нужна площадь с другой стороны — от X до 1. К счастью, как уже говорилось выше, бета-функция является симметричной относительно своих параметров, поэтому вместо прямого бета-распределения B(alpha, beta) мы можем работать с обратным — B(beta, alpha).

    Во-вторых, нам нужна функция, которая по заданной степени уверенности (проценту от всей площади графика) вернёт искомое значение X. Чаще всего в мат. пакетах эта функция называется inverse CDF или как-то так, но в SciPy используется название PPF (percent point function, в литературе также встречается под названием quantile funtion).

    Итого, чтобы получить значение минимального доверительного качества фильма можно использовать следующий код:

    dist1 = ss.beta(70, 30)                  # распределение для первого фильма, просто для справки
    dist2 = ss.beta(650, 350)             # распределение для второго фильма, тоже просто для справки
    idist1 = ss.beta(30, 70)                 # распределение, обратное первому 
    idist2 = ss.beta(350, 650)            # распределение, обратное второму 
    
    q1 = 1 - idist1.ppf(.95)                   # минимальное качество первого фильма с уровнем уверенности 95%
    q2 = 1 - idist2.ppf(.95)                   # минимальное качество второго фильма с уровнем уверенности 95%
    ...
    
    >>> q1
    0.62272854953840073
    >>> q2
    0.62503161244929017
    
    



    После подсчётов получилось, что с 95% вероятностью первый фильм в конечном итоге понравится как минимум 0.6227 от всех зрителей, а вот второй — 0.6250 из них. Разница всего в две тысячные, но если использовать эти оценки в рейтинге, то второй фильм, даже при меньшей средней оценке, окажется выше в списке.

    Те же расчёты можно повторить и для фильмов, указанных в самом начале поста: для фильма с пропорцией 80/20 минимальное доверительное качество будет равно 0.731, а для фильма с пропорцией 9/1 — 0.717, т.е. количество голосов снова перевешивает среднюю оценку. Однако стоит добавить второму фильму всего один голос «за», и наш коэффициент для него становится равен 0.741, выводя его на первое место.

    Вариации, достоинства и недостатки


    Все коэффициенты, указанные здесь, взяты, по большому счёту, на глаз. Хотя, кажется, они и дают довольно вменяемый результат, в реальном приложении есть смысл попробовать для них разные значения. Например, при большом количестве пользователей, голосующих за фильмы, имеет смысл увеличивать параметры не на 1, а, например, на 0.5 для каждого голоса. Или даже вводить коэффициент затухания, когда каждый следующий голос имеет меньший вес, чем предыдущий — таким образом можно добиться замедления роста коэффициентов.

    Кроме того, можно улучшить и изначальную оценку относительно фильма. В данной статье я исходил из того, что изначально мы ничего не знаем ни о самом фильме, ни о других фильмах у нас в системе, поэтому в начале фильму присваивается равномерное распределение (alpha = 1, beta = 1). Однако на практике мы, как правило, что-то уже знаем о фильме заранее и можем использовать эту информацию в качестве априорной оценки. Например, мы можем посчитать среднюю оценку для предыдущих фильмов этого режиссёра и инициализировать параметры бета-распределения соответствующим образом. Даже если мы ничего не знаем о режиссёре (продюсе, сценаристе, актёрском составе), мы можем использовать среднюю оценку по всем фильмам в нашей базе данных.

    В принципе, метод можно расширить и для более градированных оценок, например, для шкалы от 0 до 10. В этом случае оценки выше 5 будут прибавляться к параметру alpha, ниже 5 — к beta, а при оценке ровно 5 — и alpha, и beta увеличиваются на 0.5 (привет Хабр!).

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

    График Beta-распределения для этой статьи

    Поделиться публикацией
    Комментарии 60
      +1
      Интересный подход. Но не вызовет ли непонимание у пользователей минимальное доверительное качество? Скажем во всех рейтингах у фильма 9 (просто среднее от 1 до 10), а у нас 8 (в теории тоже из 10). Или первый голос, ставим 10, и рейтинг становится максимум 2?
        0
        Ответил ниже.
        0
        Если мы правда хотим рассказывать пользователям, как считается рейтинг, то я бы просто описал это как какой-то коэффициент, который учитывает как среднюю оценку, так и количество голосов, и что если голосов мало, то и коэффициент будет низким. Но если всё-таки хочется пофиксить эту проблему технически, то можно просто инициализировать alpha и beta более высокими значениями, тем самым задавая контенту какую-то «историю».
          +8
          Вопрос интересный, идея интересная, но вообще-то всё-равно фуфло все эти рэйтинги. То, что «среднему человеку» (у которого, как известно, одна сиська и одно яичко) не дано понять «изюминку» определённого фильма не значит, что фильм бездарный, не редко даже наоборот.
            +3
            Рейтинг может составляться на основе голосов пользователей, вкусы которых схожих с вашими (чем больше схожести, тем выше вес голоса пользователя).
              +3
              Совершенно согласен, будущее за рекомендательными системами. Чтобы убедиться в бесполезности оценок, достаточно посмотреть фильмы из топа IMDB. Казалось бы, там должно быть лучшее из лучшего, однако любой найдёт кучу фильмов, которые он сочтёт безынтересными.

              Кстати, кто может посоветовать хорошую рекомендовалку для фильмов? В стиле «если вам нравится то, то понравится это».
                +1
                Я знаю только одну более-менее адекватную «рекомендовалку для фильмов» — jinni.com. Мне её посоветовали в своё время на славном сервисе Aardvark, ныне почившем в брюхе Гугла (кстати если вдруг кто знает альтернативы Aardvark — тоже был бы благодарен за наводки). Сайт не идеален, некоторых фильмов там нет, но ничего лучше я не видел. На тамошние рекомендации по профилю я не очень полагаюсь, лучше работает тупо по конкретным фильмам: выбираешь фильм и тебе предлагают так или иначе аналогичные. Кстати, на том же IMDB тоже есть такая система и плюс к ней система пользовательских списков — по ним я тоже несколько интересных фильмов нашёл.
                  0
                  В Джинни такие же плохие рекомендации как и везде. Похожие фильмы и на Кинопоиске неплохо работают.

                  Помимо Джинни и КП я пробовал еще 2 системы, ни одна не понравилась.
                    0
                    КП я не пробовал, не знаю, возможно стоит взглянуть.
                    0
                    От Джинни можно добиться списка рекомендаций длиннее, чем в 20 пунктов? Это несерьёзно. :(

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

                    Попробовал ещё Кинопоиск и Имхонет по советам ниже — там вообще ужас. На ИМДБ рекомендации какие-то совсем загнанные в угол. Так что, видимо, придётся довольствоваться Джинни.
                    +2
                    Imhonet, KinoPoisk
                      0
                      Кинопоиск не сумел найти юзеров с похожими вкусами. Ввод двух сотен оценок — коту под хвост. Гм. Сейчас проверил ещё раз — прососалось. Вывел мне все фильмы из своего Топ-250, которые я ещё не посмотрел. Индивидуальности — по нулям. Но в рекомендациях прослеживается хоть какая-то логика…

                      Имхонет — фейл. От и до. Ввёл около сотни фильмов, но в рекомендациях даже близко не пахнет тем, что мне может понравиться. Вываливает мне списки аниме (я давал оценку только Тетради Смерти и ещё паре анимешных работ), древние советские кукольные мультики, забугорные военные фильмы вековой давности… Ну не буду я это смотреть. Ощущение, что фильмы выбираются совершенно от балды. Кроме прочего, сайт жутко глючный и тормозной, пользоваться невозможно.

                      В общем… печально. Я надеялся, что результаты будут гораздо лучше. :(
                  +2
                  Про среднего человека полностью согласен (и даже специально повесил в посте ссылку на среднестатистического гражданина). С тем, что в большинстве случаев рекоммендательные движки работают лучше, чем general-purpose рейтинги, тоже. Но есть 2 «но».

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

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

                  Если один фильм получил 80 положительных и 20 отрицательных голосов, а другой — 9 положительных и 1 отрицательный, то какой из фильмов лучше?

                  Ответ без формул, просто вас как эксперта?

                  Можете ли вы дать на него четкий, прямой и аргументированный ответ? Если да, то придумать математическую модель, закодить ее — это уже дело техники. Если же вы считаете что какая-то мат. модель придумает его за вас, то споры будут вечны. Потому что найдутся десятки мат. моделей, результаты которых будут тоже правдоподобны. А если неизвестно «как должно быть», то как их сравнить?
                    0
                    второй должен быть выше. потому что там мало голосов а значит низкая точность. но раз рейтинг у него больше — его с большей вероятностью посмотрят и проголосуют, тем самым увеличивая точность) когда его рейтинг перестанет лихорадить — выносить его из новинок в общий рейтинг.
                      +1
                      В посте не шло речи про новинки и никак вообще не учитывался фактор времени, т.е. данные оценки могут быть получены и за одинаковое время. Считаете ли вы что 9/1 всегда лучше 80/20, либо нужно учесть дополнительные факторы, такие как время?
                      0
                      Задам вам другой вопрос: без формул, просто как эксперт вы сможете решить такую задачу: если в каждой точке нашей планеты досыпать ещё 1 метр земли, то на сколько увеличится площадь её окружности? Большинство людей по интуиции ответит, что на пару километров, может быть даже тысяч километров — всё-таки в каждом точке земли по целому метру! А между тем простые математические расчёты дают ответ всего в 6.28 метров (2*Pi*R же).

                      На мой взгляд, в таких ситуациях как раз математические модели способны дать гораздо более точный ответ, чем человеческая интуиция. Да, модели должны совпадать с интуицией на очевидных примерах (фильм с ответами 80 / 20 против фильма с ответами 20 / 80) и должны хорошо ложиться на проблему (вопрос доверия к оценке фильма), но в спорных ситуациях лучше исходить из расчётов по модели, чем из интуиции (ну или по крайнейней мере из интуиции, подкреплённой некоторыми рассчётами).
                        0
                        небольшая поправка — под площадью окружности вы что понимаете? может быть площадь сферы? тогда 4*Pi*R^2
                        или все таки длину окружности (например, вдоль экватора)?
                          0
                          Длину окружности, конечно же. Утро плохо на меня действует :) Спасибо за исправление.
                          +1
                          В случае с окружностью вы прекрасно понимаете, чего вы хотите достичь и применяете математику как инструмент чтобы достичь этого. Все верно, подход отличный.

                          Мой же вопрос выше состоит в том: а понимаете ли вы чего хотите достичь в статье? Вот выше tenshi этот вопрос натолкнул на мысль, что неплохо бы рассмотреть два случая: 9 / 1 в случае если оцениваемый объект только что появился, и когда он существует годами, но никому не нужен. Согласитесь, что это несколько различные ситуации.

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

                            Чтобы не упираться в субъективность оценок возьмём такой пример (когда-то я его видел именно в контексте бета-распределения). Допустим, вы хотите купить какой-то товар на Ebay. И есть 2 продавца, которые его предлагают. У одного 100 продаж и 99% положительных отзывов, а у другого — 10000 продаж и 98% положительных отзывов. Ваша цель абсолютно объективна — выбрать того продавца, который с большей вероятностью предоставит вам товар точно в срок и в хорошем состоянии. Но как это оценить? Лично я в такой ситуации гораздо больше доверяю рассчётам, чем интуиции, потому что, как в случае с длиной окружности земли, интуиция часто врёт.
                              +1
                              Говоря языком программиста, я предлагаю простой юнит-тест для вашей оценки:

                              9/1 > 80/20
                              81/20 > 80/20
                              X/Y < Z/A


                              Для того, чтобы его составить нужно понимать чего вы хотите от своей функции. Если бы был тест, то вы могли бы сказать что «арифметическое отражает только 50% случаев, а моя оценка — 95%» и хрен бы с этим факторм поспоришь. Однако выясняется, что вы не знаете, какой результат — правильный. Как вы покажете, что оно лучше самого примитивного среднего арифметического?
                                +1
                                То, о чём вы говорите, незывается проверкой гипотезы. Делается она на основе данных — оценок репрезентативной выборки пользователей, которых мы считаем целевой аудиторией. Это уже задача для хорошенького исследования, а у меня такой цели не было. Тем не менее, есть пара тестов, показывающая преимущество модели бета распределения перед средним арифметическим:

                                80/20 против 60/40: оба метода отдадут предпочтение первому (т.е. бета распределение ведёт себя не хуже, чем среднее арифметическое)
                                80/20 против 800/200: среднее арифметическое отранжирует их одинаково, доверительный интервал бета-распределения отдаст однозначное предпочтение второму варианту.

                                  +1
                                  Появляются какие-то факты:) Т.е. ваша теория лучше потому что позволяет выразить

                                  800/200 > 80/20

                                  в то время, как среднее арифметическое не позволяет. В то же время варианты 9/1? 80/20 остаются не определенными для вас все равно. Так?

                                  Окей, но ведь и предыдущие статьи обрабатывали этот случай, чем лучше ваш?
                                    0
                                    Алексей, при всём уважении, прочитайте последнее предложение первого абзаца статьи: это один из возможных подходов, нацеленный на решение одной специфической задачи. Подходы, которые я видел до этого, либо сводили задачу просто к какому-то среднему без учёта количества голосов, либо ставили минимальную границу количества оценок, либо сводили всё к каким-то ненастраиваемым магическим числам (исключение — доверительный интервал Вильсона, но об этом ниже). При этом всё, чем были подкреплены такие формулы — это интуиция, догадки, без грамма системного подхода. Я не хочу сказать, что такие догадки не работают, но они ничем не обоснованы, а значит их свойства плохо изучены, а значит понять их возможности и ограничения гораздо сложней. Я предложил другой, системный подход, основанный на хорошо изученной области статистики. Будет ли он лучше всех остальных методов, я не знаю — как я уже говорил, для этого надо проводить полноценное исследование, а у меня такой цели не было. Моя цель была именно в том, чтобы показать возможность системного подхода в противовес интуитивным догадкам.

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

                                    Что касается сравнения конкретно методов, то на мой взгляд бета-распределение должно дать лучший средний результат, чем биномиальное. Доверительный интервал Вильсона на уровне доверия в 95% практически идентичен аппроксимации нормальным распределением, а это приводит нас в начало этой статьи и обоснованию, почему бета-распределение для таких задач подходит лучше.
                                      0
                                      Системный анализ говорит, что качество системы — это способность удовлетворять потребность, для которой она создавалась. Соответственно, если вы уже прибегаете к методам системного анализа, то знаете, что нельзя измерять качество решения, измеряя гибкость методов, которые вы в систему вложили. Нужна характеристика того, насколько хорошо они решают задачу. Ее я вам и предложил создать, измерить ей предложенные методы и в соответствии с принципами системного анализа показать что ваш лучше (или не лучше, как получится из расчета).

                                      Если топором и микроскопом можно расколоть по 50 орехов в час, приложив одинаковые усилия и получив одинаковые результаты, то для колки орехов качество системы «топор» и «микроскоп» одинаково, даже если система «микроскоп» имеет более продвинутое устройство внутри.

                                        0
                                        Алексей, не путайте системный анализ с созданием конечной системы. И не путайте то, о чём вы хотите прочитать, с тем, о чём на самом деле написано.
                                          0
                                          Методы системного анализа применяются только к системам. По определению, система это:

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


                                          Если система обладает свойствами, которыми отдельные ее части не обладают, то как можно сравнить две системы, сравнивая эти самые части? Да, в одной есть коэффициент, в другой нет, дальше что из этого следует?
                        +2
                        Вообще попытка оценить фильм — сама по себе сомнительная. По той хотя бы причине что кино — далеко не всегда нечто художественное, часто это что то вроде попкорна для глаз. И, соответственно система оценок нравится/не нравится должна происходить с оглядкой на тех кто этот рейтинг делает.

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

                        Остальные 20% голосов, будут сделаны людьми с более адекватными художественными вкусами (и вообще с осмысленной жизненной позицией) и они честно поставят оценку фильму, собразно своим внутренним ощущениями. Здесь скорее всего не будет такого единодушия как в случае с люпменским большинством. И кривая оценок будет распределена уже более равномерно, более адекватно отображая ценность произведения.

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

                        К чему я это пишу? А к тому что когда мы переодически утыкались и утыкаемся в эту проблему. И когда делили фильмы между «фильмами» и «арт-хаусом» и когда собирались делать «рейтинг раздач» и просьбы составить всякие списки «лучших фильмов» и т.д и т.п. Часто эти рейтинги водят в заблуждение, фильм с оценкой 4.8/10 по IMDB оказывается для тебя лучшим фильмом на свете.

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

                          Если вы хотите именно подбирать лучшие фильмы для каждого пользователя, то вам прямая дорога к рекоммендательным движкам. Причём для некоторых алгоритмов из серии collaborative filtering можно задать даже свой вектор параметров, например, «фантастика», «драма», «комедия», а также «на один раз», «культовый», «не для всех» и т.д. Т.е. можно натянуть любую желаемую модель и подбирать для каждого пользователя самые интересные именно для него фильмы на основе того, что он уже посмотрел (а информации о том, что именно он смотрел, у вас более чем хватает — достаточно посмотреть историю скачанных торентов). Если интересно, могу набросать пару моделей персональных рекоммендаций.
                            0
                            Вы наверно не совсем поняли. Я немножко другое имел ввиду. Скажем грубо — как мп3 является форматом, учитывающим психоаккустические свойства уха, но при этом основанный на строгом математическом алгоритме, точно также и голосование, чтобы давать валидные результаты по идее должно учитывать «психологию толпы» согласно какой-то хитрой формуле. При этом чем больше голосов- тем больше это «влияние толпы» ощущается.

                            А рекомендательный сервис — это вообще немножко другое.
                            +1
                            Но точно не только с помощью математики.


                            Ну, я бы не был столь однозначным. Если учитывать статистику не по одному измерению, то вполне могут быть Но естественно не обзщий рейтинг, а индивидуальный.
                            +3
                            Немодерируемые пользовательские рейтинги не работают. Да и вообще пользовательские рейтинги в большинстве своем не работают. Вон на ютубе даже что-то такое начали подозревать и убрали пятибалльную систему в пользу двухбалльной (и то ничего толкового не вышло — ориентироваться по их рейтингам невозможно). Пользователи в 99.99% случаев либо неспособны осознать всю шкалу оценок либо не имеют достаточного опыта в предметной области (например видели всего 1-2 фильма за всю жизнь) либо им просто пофиг.
                            Единственный реалистичный вариант рейтингов это оценки командой экспертов либо одним человеком.
                            Ну и конечно рейтинг в одну оценку часто бессмысленный — один ставит десятку за качество, другой за ностальгию, а третий за влияние оказаное на позднейшие произведения — в итоге получается просто каша и ерунда.
                              +2
                              Вы знаете, мне часто приходится слышать, что «статистика врёт», на что я всегда отвечаю «вы просто не умеете её готовить». Пользователям не нужно быть экспертами в предметной области, чтобы решить, нравится ли им фильм. И рейтинг, в конечном итоге, показывает, скольким пользователям этот фильм понравился, а не насколько он хорош в вашем личном представлении. Любой показатель — будь то среднее арифметическое, количество голосов, вероятность или что угодно ещё — это всего лишь показатель, а как его интерпретировать и какие выводы делать — это уже ваше дело. На основе рейтинга статьи на Хабре, например, можно сделать вывод, что статья является качественной и популярной (много плюсов, мало минусов), качественной и непопулярной/узкоспециализированной (мало плюсов, минусов почти нет), популярной, но спорной (много плюсов, но много и минусов), субъективной и плохо написанной (много минусов, мало плюсов) и т.д. А если ещё и контекст добавить (например, тема статьи или фильма), то можно вообще сделать кучу выводов. Поэтому можно говорить о том, что какой-то рейтинг не выполняет какой-то конкретной задачи, но говорить, что он просто не работает будет некорректно.
                                +1
                                По бинарному ютубовскому рейтингу, мне кажется, как раз ориентироваться можно. Если у видео больше половины минусов — смотреть точно не стоит.
                                  0
                                  Для некоторых больше половины минусов — лучшая рекомендация :) Если тебе нужно то, от чего обычный человек будет зевать или блевать, то по минусам хорошо ориентироваться. Главное угадать, где одно, а где второе, что слева, а что справа от среднестатистического человека.
                                +1
                                Интересная статья. Однако использование бета-распределения не объяснено.

                                У вас число положительных(positive) и отрицательных голосов(negative). И сразу вы строите на ним бета функцию с параметрами 1+p и 1+n.

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

                                Мат. ожидание у вас получилось (1+p)/(1+p + 1+n) т.е. вы просто по 1це прибавили к обоим оценкам, тем самым сгладив оценки с 0.5.

                                По большому счету эта формула ничто иное как частный случай среднего арифметического взвешивания средней оценки конкретного фильма с 0.5. Коэффициенты при этом 2 и N(=n+p) общее число голосов:
                                (1+p)/(2+p +n)=(2* 0.5 + N*p / N)/(2 + N)

                                Из второй формулы можно зная среднюю оценку фильмов (она не обязательно равна 0.5) можно посчитать первые слагаемые параметров бета функции. Выбрав вместо двойки другую константу сглаживания. Вот в итоге мы сводим задачу к одной константе.

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

                                Опять таки, вы предлагаете упорядочивать фильмы по минимально возможной оценке. Это во-первых не физично (минимум доверительного интервала это мат. абстракция). Во-вторых он сильно зависит от точности. 95% и 90% даст огромную разницу. Мы получим еще один коэффициент. В третьих почему-бы не использовать бинарное распределение вместо бета-функций и считать их доверительные интервалы.

                                Интересно было бы если бы вы рассмотрели не бинарные шкалы, а «5 звезд» или от 1 до 10. Построили общую бета-функцию и с помощью нее, сравнивая с частной шкалой, снизили бы влияние накруток.
                                  +1
                                  Мат. ожидание у вас получилось (1+p)/(1+p + 1+n) т.е. вы просто по 1це прибавили к обоим оценкам, тем самым сгладив оценки с 0.5.

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

                                  Из второй формулы можно зная среднюю оценку фильмов (она не обязательно равна 0.5) можно посчитать первые слагаемые параметров бета функции. Выбрав вместо двойки другую константу сглаживания. Вот в итоге мы сводим задачу к одной константе.

                                  А какая разница, сразу задавать alpha и beta или выводить их из количества голосов и средней оценки?

                                  Это во-первых не физично (минимум доверительного интервала это мат. абстракция).

                                  Не большая абстракция, чем вероятность сама по себе. Но ведь использование вероятности вас не смущает?

                                  Во-вторых он сильно зависит от точности. 95% и 90% даст огромную разницу.

                                  А вот тут нужно включать полноценный hypothesis testing — брать репрезентативную выборку пользователей и сравнивать их оценки с оценкой системы, а затем подгонять параметры, пытаясь уменьшить ошибку. Вообще я не очень понимаю, почему вы стремитесь уменьшить количество параметров. Современные поисковые движки используют больше 100 подстраиваемых коэффициентов, чтобы улучшить результаты ранжирования результатов, а вы наоборот хотите уменьшить их количество и сделать систему жёсткой и не поддающейся регуляции.

                                  В третьих почему-бы не использовать бинарное распределение вместо бета-функций и считать их доверительные интервалы.

                                  В этом случае, следуя центральной предельной теореме, мы получим то же самое нормальное распределение, а оно всё-таки менее гибкое, чем бета.

                                  Что вы подразумеваете под «частной шкалой»?
                                    +1
                                    И мы опять приходим к простому среднему, которое не учитывает количества голосов.

                                    Вы путаете простое среднее и средневзвешенное (1 частный случай второго)

                                    Средневзвешенное может учитывать число голосов. Например, (sqrt(N)*p/N + 0.5)/(sqrt(N)+1).
                                    Чем больше N тем больше значимость оценок. sqrt(N) — функция взвешивания (сглаживания), 0.5 — с чем мы взвешиваем (средняя оценка).

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

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

                                    А какая разница, сразу задавать alpha и beta или выводить их из количества голосов и средней оценки?

                                    Константа осталась одна. Она приобрела смысл (чем больше тем сильнее сглаживание). И стала безопасной — при любом ее значении большем нуля значение будет между 0.5 и p/N.

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

                                    У поисковиков есть автобалансировка коэффициентов в формулах (матрикс.нет у Яши) и сотни тысяч оценок ассесоров, чтобы это сбалансировать.

                                    Не большая абстракция, чем вероятность сама по себе. Но ведь использование вероятности вас не смущает?

                                    Вероятность физична как и прогноз. Они несут явный смысл. Есть смысл сортировать фильмы по вероятности того, что они понравятся пользователю. Смысла ранжировать по «нижнему пределу доверительного интервала бета-распределения с коэффициентом значимости 0.95» нет никакого.

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

                                    В этом случае, следуя центральной предельной теореме, мы получим то же самое нормальное распределение, а оно всё-таки менее гибкое, чем бета.

                                    ЦПТ действует только на бесконечности. На практике можно ее применять к большим числам. Однако, мы рассматриваем маленькие числа (если бы число голосов было бы большим, то каким-то образом балансировать рейтинг не нужно). Для биномиального распределения есть отдельные функции.

                                    Бета и нормальное разные распределения, то что стандартное нормальное распределения частный случай бета не говорит о том, что нормальное частные случай бета, как и то что бета частный нормального. И бета и нормальное двупараметрические кривые, они не могут быть частными случаями друг-друга (разве что эквивалентами, но область значений у них разная).

                                    P.S. Биномиальное распределение характеризуется одним параметром P, откуда у вас второй параметр взялся для бета непонятно.

                                      +1
                                      Единственное что в бинарном рейтинге нам говорит об этом это число голосов. Если взять любую функцию возрастающую с N и использовать как коэффициент при среднем взвешивании, то мы получим учет достоверности.

                                      Давайте определимся, вы сейчас критикуете мой метод или рекламируете свой? Доказывать, что ваш плох, я не собираюсь — я в статье уже говорил, что можно комбинировать и среднее с дисперсией (которая обратнопропорциональна количеству оценок), так что я уже изначально подтвердил, что это возможно. Однако зачем это делать, если есть другие, более хорошо изученные и теоретически обоснованные инструменты, мне непонятно.

                                      Константа осталась одна. Она приобрела смысл (чем больше тем сильнее сглаживание). И стала безопасной — при любом ее значении большем нуля значение будет между 0.5 и p/N.

                                      Т.е. вы сознательно ограничиваете возможные оценки интервалом [0.5..p/N]. Ну и зачем?
                                      При бета-распределении (да и любом другом распределении, о котором говорилось раньше) есть какая-то опасность?

                                      Смысла ранжировать по «нижнему пределу доверительного интервала бета-распределения с коэффициентом значимости 0.95» нет никакого.

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

                                      Вы сами себе отвечаете, я даже не знаю, нужен ли я в этом разговоре.

                                      А почему сортировать по пессимистичному прогнозу? Почему не по обычному прогнозу, который можно получить взвесив среднюю оценку по статье со средней по сайту?

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

                                      ЦПТ действует только на бесконечности.

                                      ЦПТ даёт теоретическое обоснование для оценки положения мат. ожидания биномиального распределения. И оценка эта выражена в виде нормального распределения. Для дейстивтельно бесконечных чисел ЦПТ не имеет смысла, т.е. положение мат. ожидания для них однозначно известно.

                                      Для биномиального распределения есть отдельные функции.

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

                                      Бета и нормальное разные распределения, то что стандартное нормальное распределения частный случай бета [...]

                                      Стандартное нормальное распределение распределено вокруг начала координат, бета-распределение замкнуто в интервал от 0 до 1. Так что SND никак не может быть частным случаем бета-распределения.

                                      P.S. Биномиальное распределение характеризуется одним параметром P

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

                                      откуда у вас второй параметр взялся для бета непонятно.

                                      Объясните мне дураку, каким боком параметры одного распределения действуют на другое? Вы, вероятно, ставите между оценками пользователей и биномиальным распределением знак равенства. Так вот, спешу вас разочаровать: оценки пользователей — это просто оценки пользователей, а биномиальное распределение — это модель, которой мы пытаемся описать эти оценки. И я не вижу ни одной причины, почему бета-распределение должно описывать эти оценки хуже, чем биномиальное. Особенно в контексте составления рейтинга.
                                        0
                                        Давайте определимся, вы сейчас критикуете мой метод или рекламируете свой?

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

                                        Т.е. вы сознательно ограничиваете возможные оценки интервалом [0.5..p/N]. Ну и зачем?

                                        Про интервал я не говорил, поскольку не известно что больше 0.5 или p/N. Если хотите, чтобы я выразил в кванторах, то:
                                        {0.5<=p/N, [0.5,p/N]
                                        {0.5>p/N, [p/N,0.5]


                                        При бета-распределении (да и любом другом распределении, о котором говорилось раньше) есть какая-то опасность?

                                        Вы не согласны, что прогноз рейтинга (результирующий, сглаженный, итоговый рейтинг) статьи должен быть между средним рейтингом всех статей (допустим 0.5) и средним рейтингом этой статьи.

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

                                        Обычный прогноз это который не пессимистичный и не оптимистичный, а между ними. У нас не номенклатурный спор.

                                        Для дейстивтельно бесконечных чисел ЦПТ не имеет смысла, т.е. положение мат. ожидания для них однозначно известно.

                                        Вы не правы. ЦПТ начинается так: «Есть бесконечная последовательность независимых одинаково распределённых случайных величин».

                                        мат. ожидания для них однозначно известно

                                        Да? Поделитесь…

                                        ЦПТ даёт теоретическое обоснование для оценки положения мат. ожидания биномиального распределения.

                                        Набор слов. Вы сами поняли, что написали? Если вы говорите про то, что есть нормальная аппроксимация биномиального распределения. Да она есть, но использовать ее можно только при большом числе голосов (больше 30). И ее использует не для «оценки положения мат. ожидания», а для построения доверительных интервалов.

                                        И я не вижу ни одной причины, почему бета-распределение должно описывать эти оценки хуже, чем биномиальное.

                                        Полнейший бред.

                                        Прочитайте первые абзацы из вики и поймете.

                                        Бе́та-распределе́ние в теории вероятностей и статистике — двухпараметрическое семейство абсолютно непрерывных распределений. Используется для описания случайных величин, значения которых ограничены конечным интервалом.

                                        Биномиа́льное распределе́ние в теории вероятностей — распределение количества «успехов» в последовательности из n независимых случайных экспериментов, таких, что вероятность «успеха» в каждом из них постоянна и равна p.

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

                                        Аксиоматика применения бета функции. Вариант 1.

                                        В этом случае, следуя центральной предельной теореме, мы получим то же самое нормальное распределение, а оно всё-таки менее гибкое, чем бета.

                                        1. Предположим, что эксперименты независимы
                                        2.Предположим, что с течением времени вероятность того, что случайный пользователь поставит плюс не меняется со временем.
                                        3. Предположим, что число голосований у нас достаточно большое (чтобы можно было ЦПТ применять).
                                        4. Предположим, что нормальное распределение можно описать бета распределением.

                                        На 3 шаге мы часть голосований отсеиваем. С числом голосов менее 30. И теряем точность. От 4ого волосы дыбом встают.

                                        Аксиоматика применения бета функции. Вариант 2.
                                        И я не вижу ни одной причины, почему бета-распределение должно описывать эти оценки хуже, чем биномиальное.

                                        1. Презумпция невиновности можно экстраполировать и на распределения.
                                        2. Очевидных доказательств того, то бета функция плохо описывает сабж нету.

                                          0
                                          Ок, давайте закрывать дыры в понимании статистики. И начнём с ЦПТ. Читать русскую Википедию, чтобы разобраться в математических темах, — занятие дурное, поэтому сразу пойдём на английскую статью про ЦПТ. И чтобы не терять времени, сразу перейдём к описанию классической теоремы. А оно начинается так (я буду немного упрощать, но вы обязательно проверяйте — вдруг я вам вру или просто я дурак и не разбираюсь в статистике): «Пусть {X1, ..., Xn} — набор n независимых переменных, полученных из распределений мат. ожиданий». Т.е. само по себе мат. ожидание рассматривается как случайная величина. Т.е. для бинарного распределения это считается так: 10 раз бросили монетку, 6 раз упала орлом (обозначим единицей), 4 раза решкой (обозначим нулём) — среднее 6/10 = .6, и это мы получили одну случайную переменную для нашего набора; бросили монетку ещё 10 раз — получилось 5 на 5, т.е. среднее — .5; и ещё раз бросили, получилось снова 5 на 5 и среднее .5. Так делаем n раз и получаем n переменных. Далее в Википедии зачем-то идёт объяснение через sample average, я же попробую объяснить чуть попроще (но вы обязательно потом перечитайте Википедию и убедитесь, что объяснения эквивалентны, а то опять потом скажете, что я несу «полнейший бред» и «не понимаю, что говорю»). Итак, у нас есть n случайных переменных (каждая из которых является мат. ожиданием сэмпла из 10 бросков монетки), а также некоторое mu — настоящее среднее для монетки, т.е. по сути реальная вероятность того, что монетка упадёт орлом вверх. Так вот, ЦПТ говорит о том, что при n стремящемся к бесконечности (т.е. если мы будем раз за разом бросать партии по 10 монеток бесконечное количество раз) получающиеся случайные переменные X (мат. ожидания партий по 10 монеток) будут аппроксимировать нормальное распределение с центром в mu. Т.е. если мы не знаем, чему равно mu, то мы можем оценить это с помощью n вот таких сэмплов. Если это перефразировать, то получим именно то, что я сказал в предыдущем комментарии: «ЦПТ даёт теоретическое обоснование для оценки положения мат. ожидания биномиального распределения».

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

                                          Дальше у вас идёт ещё пара интересных фраз (я не буду обсуждать всё, что вы сказали, ибо обсуждение и так очень растянулось, а только пройдусь по вопросам статистики):

                                          Если вы говорите про то, что есть нормальная аппроксимация биномиального распределения. Да она есть, но использовать ее можно только при большом числе голосов (больше 30). И ее использует не для «оценки положения мат. ожидания», а для построения доверительных интервалов.

                                          Во-первых, выше я допустил неточность, сказав, что биномиальное распределение аппроксимируется нормальным, а вы эту неточность подхватили и развиваете. При рассчёте некоторых метрик биномиального распределения его можно условно аппроксимировать нормальным (как раз на основе ЦПТ и связанных с ней рассуждений), но в целом это всё ещё разные распределения с разным поведением. Например, случайная переменная, сгенерированная из биномиального распределения, никогда не сможет быть равна .3 — только 0 или 1, орёл или решка.
                                          Во-вторых, откуда вы взяли эту границу — 30 наблюдений? Вы опять опираетесь на свою интуицию. 20 мало, а 30 уже нормально, вот это нельзя, а вот это можно. Потому что вам так кажется.
                                          Ну и в-третьих, обясните мне, каким образом вы собираетесь считать доверительный интервал биномиального распределения на основе аппроксимации нормальным распределением, но при этом игнорируя mean этого самого нормального распределения? Не зная форму нормального распределения вы ну никак не сможете посчитать confidence interval, а форма задаётся именно через mean (на пару с variance, конечно).

                                          Дальше у вас тоже весело. Вот это понравилось:

                                          1. Предположим, что эксперименты независимы
                                          2.Предположим, что с течением времени вероятность того, что случайный пользователь поставит плюс не меняется со временем.
                                          3. Предположим, что число голосований у нас достаточно большое (чтобы можно было ЦПТ применять).
                                          4. Предположим, что нормальное распределение можно описать бета распределением.

                                          Насколько я понял ваш посыл, смысл в том, что для применения биномиального распределения нужно всего 2 условия, а вот для бета нужно аж 4. Конечно, первый вопрос — и чё? Какая разница, сколько условий? Если уж и говорить про условия, то считать нужно то, насколько хорошо они выполняются. А выполняются они всегда только примерно, начиная с самого первого — независимость голосов. Но и с этим как-то живут.

                                          Первые два пункта, насколько я понимаю, вас не интересуют — они общие для обоих распределений. Третий пункт, как я уже говорил, основан на вашей интуиции и не имеет ничего общего с реальностью. Ну а четвёртый повеселил: несмотря на то, что я несколько раз явно указал на то, что бета-распределение не зависимо от нормального, вы всё равно настаиваете на аппроксимации одного другим. Ну и зачем это вообще делать? Для биномиального распределения нет понятия PDF (только PMF), а значит и прямого выражения доверительного интервала, поэтому его аппроксимируют нормальным. Зачем вы связываете нормальное и бета-распределения, мне вообще не понятно.
                                            0
                                            ЦПТ даёт теоретическое обоснование для оценки положения мат. ожидания биномиального распределения

                                            ЦПТ говорит лишь о том, что при N стремящемся бесконечности мат. ожидание будет стремиться к некоторому числу.

                                            Дальше у вас тоже весело.

                                            Весело у вас. Я ваши же утверждения разложил на допущения модели. Если даже вам весело, значит вы ошиблись.

                                            Какая разница, сколько условий?

                                            Это не условия, а допущения модели. Или аксиомы. Вопрос в том адекватные они или нет. Если 3тье можно считать более или менее адекватным, то 4ое никак не адекватно.

                                            Третий пункт, как я уже говорил, основан на вашей интуиции и не имеет ничего общего с реальностью.

                                            Значит, по вашему ЦПТ действует для любого N? Даже для 1 или 2? В английской вики написано про то, что 30 минимум, чтобы можно было использовать нормальную аппроксимацию.

                                            Ну а четвёртый повеселил: несмотря на то, что я несколько раз явно указал на то, что бета-распределение не зависимо от нормального, вы всё равно настаиваете на аппроксимации одного другим.

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

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

                                            Для биномиального распределения нет понятия PDF (только PMF), а значит и прямого выражения доверительного интервала, поэтому его аппроксимируют нормальным.

                                            Не всегда есть еще 3-4 способа аппроксимации намного точнее.

                                            Объясните как вы к бете перешли?
                                              0
                                              Уважаемый, перечитайте ещё раз тред. Вам не понравилось, что я использовал бета-распределение, и вы предложили использовать бинарное распределение. Ваша цитата:

                                              В третьих почему-бы не использовать бинарное распределение вместо бета-функций и считать их доверительные интервалы.

                                              На что я ответил, что при использовании бинарного распределения для подсчёта доверительного интервала всё равно придётся аппроксимировать его нормальным. От бета к нормальному я никогда не переходил, я их использовал как независимые модели.

                                              ЦПТ говорит лишь о том, что при N стремящемся бесконечности мат. ожидание будет стремиться к некоторому числу.

                                              Я вам уже и ссылку дал, и разжевал, и примеры привёл, а вы всё упираетесь в свою личную версию ЦПТ. Поскольку вы проигнорировали все мои примеры и объяснения из Википедии (в том числе формулу, лежащую в основе теоремы), дальнейшие выпады в сторону ЦПТ с вашей стороны считаю тупо троллингом. Если есть что сказать, согласуйте это сначала достоверным источником, а не только со своими предположениями.

                                              Не всегда есть еще 3-4 способа аппроксимации намного точнее.

                                              Например какие? Особенно меня интересует часть «намного точнее».

                                              В английской вики написано про то, что 30 минимум, чтобы можно было использовать нормальную аппроксимацию.

                                              Цитата? Конкретно про то, что можно или нельзя.
                                                0
                                                Вы не ответили на мой вопрос «Объясните как вы к бете перешли?»
                                                Отвечу за вас. Вам просто картинка вам понравилась. Нет никаких оснований применять Бету к задаче. Вы не привели ни одного.

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

                                                Например какие? Особенно меня интересует часть «намного точнее».


                                                Например, Вильсон.

                                                дальнейшие выпады в сторону ЦПТ с вашей стороны считаю тупо троллингом.

                                                В сторону ЦПТ? Я ничего не говорил. Я говорил о вашей ее интерпретации, что ее можно применять для любого n. ЦПТ НЕЛЬЗЯ ПРИМЕНЯТЬ ДЛЯ МАЛЫХ N.

                                                Цитата? Конкретно про то, что можно или нельзя

                                                Even for quite large values of n, the actual distribution of the mean is significantly nonnormal

                                                For very extreme probabilities, though, a sample size of 30 or more may still be inadequate.

                                                The normal approximation interval is the simplest formula… This formula, however, is based on an approximation that does not always work well. Several competing formulas are available that perform better...


                                                  0
                                                  Вы не ответили на мой вопрос «Объясните как вы к бете перешли?»

                                                  Как я к бета-распределению пришёл или перешёл (от нормального распределения). На второй вопрос я уже несколько раз ответил — никак, я использовал их как разные модели. Если вас интересует мысленный путь от задачи к решению, то его я тоже описывал в статье: необходимость учитывать среднее и дисперсию голосов -> нормальное распредление -> бета-распределение. Почему я считаю бета-распределение лучшим способом представления голосования, я тоже уже неоднократно описывал. Так что я не знаю, на какой ещё вопросы вы ждёте от меня ответа.

                                                  Например, Вильсон.

                                                  Вильсон — это не распределение, если что. Интервал Вильсона — это улучшение интервала нормального распределения. Это по вашей же ссылке написано, ага. А ещё там дальше про то, что на стандартном 95% интервале интервал Вильсона практически идентичен нормальному.

                                                  Если что, я не спорю с тем, что если уж мы решили использовать доверительные интервалы биномиального распределения, то лучше использовать более точные формулы. Я спорю с тем, что это кардинально улучшит оценку, тем более по сравнению с бета-распределением.

                                                  For very extreme probabilities, though, a sample size of 30 or more may still be inadequate.

                                                  Ай-ай-ай, как некрасиво выдирать фразу из контекста. А полная версия выглядит так:

                                                  The central limit theorem applies well to a binomial distribution, even with a sample size less than 30, as long as the proportion is not too close to 0 or 1. For very extreme probabilities, though, a sample size of 30 or more may still be inadequate.

                                                  Конечно, если 10 человек пришли и все вместе проголосовали одинаково, то получится very extreme probability, но покажите мне фильм, за который все так однозначно будут голосовать. К тому же, стандартный лапласовский сдвиг, который я уже упоминал, легко решает эту проблему.

                                                  Even for quite large values of n, the actual distribution of the mean is significantly nonnormal

                                                  А по-моему, вполне:



                                                  Как говорится, достаточно близко для любого практического использования ;) Кстати, сравните с распределением голосов по пятизначной шкале, на основе которой вы не так давно предлагали обрезать накрутки.
                                                    0
                                                    нормальное распредление -> бета-распределение

                                                    Как вы перешли от нормального к бете. Назовите несколько допущений, которые не бредовые и которые позволяют к бете перейти.
                                                      0
                                                      Вы понимаете разницу между ассоциативным рядом и математическим доказательством? Судя по всему, нет.
                                                        0
                                                        Мы разве играем в игру ассоциации?
                                                          0
                                                          Как же интересно слушать спор двух умных людей, касающийся той сферы науки, в которой ты ничего не смыслишь. :)
                                                    0
                                                    Кстати да, прежде чем обвинять мою модель голосования в неадекватности и необоснованности, попробуйте к своей модели обрезания накруток применить те же вопросы и критерии. Интересно будет послушать, как вы там к бета-распределению перешли ;)
                                                      0
                                                      эмпирически
                                                        0
                                                        Нееет, это не серьёзно. На протяжении всей ветки вы требуете от меня доказательства каждой мелочи, обоснования всех допущений, каждой детали. Так вот, обоснуйте возможность применения бета-распределения в вашем методе. Каким допущениям это соответствует? Почему вы считаете эти допущения адекватными для модели? А почему вы не использовали бинарное? Или нормальное?
                                                          0
                                                          Есть два научных подхода эмпирический и аналитический.
                                                          более того здесь мы обсуждаем вашу статью
                                    0
                                    Это все конечно очень круто (рейтинги, фильмы, статистика), но как вы делали эти графики? Я имею ввиду программный продукт, который это рисовал.

                                    Просто сейчас нужно тоже что-то порисовать такое, не подскажите?
                                      0
                                      Matlab?
                                        +1
                                        См. спойлеры с заголовком programming exercise в статье. А вообще, SciPy, R, Matlab, flot.js, D3.js, Weka, RapidMiner… да много чего. Другое вопрос, что именно вы хотите рисовать, чтобы не получилось так, что данные для графика прийдётся генерировать в чём-то ещё, что гораздо менее удобно по сравнению с полноценными математическими и статистическими пакетами.
                                          0
                                          Я собираюсь рисовать бенчмарки приложения на разных отрезках времени его выполнения.
                                            0
                                            Тогда наверное лучше найти аналогичную библиотеку для того же языка, на котором написано само приложение. Ну или генерировать CSV файлы и отображать графики в R.
                                              0
                                              Спасибо. Так наверное и сделаю.

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

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