У меня проблема с параметром оценки для Zipf. Моя ситуация следующая:
У меня есть набор образцов (измеренный из эксперимента, который генерирует вызовы, которые должны следовать распределению Zipf). Я должен продемонстрировать, что этот генератор действительно генерирует вызовы с распределением zipf. Я уже читал эти вопросы и ответы. Как рассчитать коэффициент закона Ципфа из набора верхних частот? но я достигаю плохих результатов, потому что я использую усеченный дистрибутив. Например, если я устанавливаю значение «s» на «0,9» для процесса генерации, если я пытаюсь оценить значение «s», как написано в сообщенных вопросах и ответах, я получаю «s», равный 0,2 ca. Я думаю, это связано с тем, что я использую дистрибутив TRUNCATED (мне нужно ограничить zipf точкой усечения, он усекается вправо).
Как я могу оценить параметры с усеченным распределением zipf?
Ответы:
Обновление : 7 апреля 2011 г. Этот ответ становится довольно длинным и охватывает несколько аспектов проблемы. Однако до сих пор я сопротивлялся, разбивая его на отдельные ответы.
В самом низу я добавил обсуждение производительности Пирсона для этого примера.χ2
Брюс М. Хилл написал, пожалуй, «основополагающую» статью об оценке в Zipf-подобном контексте. В середине 1970-х он написал несколько статей на эту тему. Тем не менее, «оценщик Хилла» (как он теперь называется) по существу полагается на статистику максимального порядка выборки, и поэтому, в зависимости от типа присутствующего усечения, это может привести к некоторым проблемам.
Основная статья:
Б. М. Хилл, простой общий подход к выводу о хвосте распределения , Ann. Стат. 1975 г.
Если ваши данные изначально являются Zipf, а затем усечены, то хорошее соответствие между распределением степеней и графиком Zipf может быть использовано в ваших интересах.
В частности, распределение степеней - это просто эмпирическое распределение числа раз, когда просматривается каждый целочисленный ответ,
Если мы построим это против на графике log-log, мы получим линейный тренд с наклоном, соответствующим коэффициенту масштабирования.i
С другой стороны, если мы строим график Zipf , где мы сортируем выборку от наибольшего к наименьшему, а затем наносим значения на их ранги, мы получаем другой линейный тренд с другим наклоном. Однако склоны связаны между собой.
Если является коэффициентом закона масштабирования для распределения Zipf, то наклон на первом графике равен а наклон на втором графике равен . Ниже приведен пример графика для и . Левая панель - это распределение степеней, а наклон красной линии равен . Правая часть - это график Зипфа, с наложенной красной линией, имеющей наклон .- α - 1 / ( α - 1 ) α = 2 n = 10 6 - 2 - 1 / ( 2 - 1 ) = - 1α −α −1/(α−1) α=2 n=106 −2 −1/(2−1)=−1
Таким образом, если ваши данные были усечены, так что вы не видите значений, превышающих некоторый порог , но в противном случае данные распределяются по Zipf, а достаточно велик, тогда вы можете оценить по распределению степеней . Очень простой подход состоит в том, чтобы подогнать линию к графику log-log и использовать соответствующий коэффициент.τ ατ τ α
Если ваши данные усечены так, что вы не видите маленьких значений (например, как много фильтрации выполняется для больших наборов веб-данных), то вы можете использовать график Zipf для оценки наклона в масштабе log-log и затем " отступить "показатель масштабирования. Скажите, что ваша оценка наклона на графике Zipf равна . Тогда одной простой оценкой коэффициента закона масштабирования является ; & alpha ; =1-1β^
@csgillespie дал одну недавнюю статью, написанную в соавторстве с Марком Ньюманом в Мичигане на эту тему. Похоже, он публикует много похожих статей на эту тему. Ниже приведено еще несколько ссылок, которые могут представлять интерес. Ньюман иногда не делает ничего разумного статистически, поэтому будьте осторожны.
MEJ Newman, Степенные законы, распределения Парето и закон Ципфа , Современная физика 46, 2005, с. 323-351.
Mitzenmacher, краткая история генеративных моделей для степенного закона и логнормальных распределений , Internet Math. том 1, нет. 2, 2003, с. 226-251.
К. Найт, простая модификация оценки Хилла с приложениями к устойчивости и снижению смещения , 2010.
Приложение :
Вот простая симуляция в чтобы продемонстрировать, что вы можете ожидать, если вы взяли выборку размером из своего дистрибутива (как описано в вашем комментарии ниже вашего исходного вопроса).10 5R 105
Получившийся сюжет
Из графика видно, что относительная погрешность распределения степеней для (или около того) очень хорошая. Вы могли бы сделать формальный критерий хи-квадрат, но это не строго сказать вам , что данные следуют предуказанных распределения. Это только говорит вам, что у вас нет доказательств, чтобы сделать вывод, что они этого не делают .i≤30
Тем не менее, с практической точки зрения, такой сюжет должен быть относительно убедительным.
Приложение 2 : Давайте рассмотрим пример, который Маурицио использует в своих комментариях ниже. Предположим, что и , с усеченным распределением Zipf, имеющим максимальное значение .n = 300α=2 х м а х = 500n=300000 xmax=500
Мы рассчитаем статистику Пирсона двумя способами. Стандартный способ - через статистику где - это наблюдаемые значения значения в образце и .X 2 = 500 ∑ i = 1 ( O i - E i ) 2χ2 OiiEi=npi=ni-α/∑ 500 j = 1 j-α
Мы также вычислим вторую статистику, сформированную первым объединением счетчиков в ячейках размером 40, как показано в электронной таблице Маурицио (последняя ячейка содержит только сумму из двадцати отдельных конечных значений.
Давайте нарисуем 5000 отдельных выборок размера из этого распределения и вычислим используя эти две разные статистики.рn p
Гистограммы значений приведены ниже и выглядят достаточно однородными. Эмпирические коэффициенты ошибок типа I составляют соответственно 0,0716 (стандартный метод без объединения) и 0,0502 (метод с сортировкой), и ни один из них статистически значимо не отличается от целевого значения 0,05 для размера выборки 5000, который мы выбрали.p
Вот кодR
источник
Бумага
Clauset, A и др , степенные распределения в эмпирических данных . 2009
содержит очень хорошее описание того, как подходить к модели степенного закона. На соответствующей веб-странице есть примеры кода. К сожалению, он не дает код для усеченных дистрибутивов, но может дать вам указатель.
Кроме того, в статье обсуждается тот факт, что многие "степенные наборы данных" могут быть смоделированы одинаково хорошо (а в некоторых случаях лучше) с помощью нормального или экспоненциального распределения Log!
источник
После подробного ответа пользователя кардинала я выполнил тест хи-квадрат на моем предположительном усеченном распределении zipf. Результаты теста хи-квадрат представлены в следующей таблице:
Где StartInterval и EndInterval представляют, например, диапазон вызовов, а Observed - это количество вызывающих абонентов, генерирующих от 0 до 19 вызовов и т. Д. Тест хи-квадрат хорош до достижения последних столбцов, они увеличивают окончательный расчет, иначе до этого момента «частичное» значение хи-квадрат было приемлемым!
С другими тестами результат тот же, последний столбец (или последние 2 столбца) всегда увеличивает конечное значение, и я не знаю почему, и я не знаю, используют ли (и как) другой проверочный тест.
PS: для полноты, чтобы рассчитать ожидаемые значения ( Ожидаемые ), я следую совету кардинала следующим образом:
где X_i «s используются для расчета:
x <- (1:n)^-S
, то P_i » S , чтобы вычислитьp <- x / sum(x)
и , наконец, e_i (ожидаемый Н.Р. пользователей для каждого пг вызовов) получаетсяP_i * Total_Caller_Observed
а со степенью свободы = 13 добродетель хи-квадрата всегда отвергает гипотезу о том, что набор выборок следует распределению Zipf, потому что статистика тестов (в данном случае 64,14) больше, чем в таблицах хи-квадрат, "demerit" для последнего столбца. Графический результат сообщается здесь:
хотя точка усечения установлена на 500, максимальное значение получается равным 294. Я думаю, что окончательная «дисперсия» является причиной провала теста хи-квадрат.
ОБНОВИТЬ!!
Я пытаюсь выполнить тест хи-квадрат на предполагаемой выборке данных zipf, сгенерированной с помощью кода R, о котором сообщалось в ответе выше.
Связанный сюжет следующий:
Результаты теста хи-квадрат представлены на следующем рисунке:
и статистика теста хи-квадрат (44,57) слишком высока для проверки с выбранной степенью свободы. Также в этом случае окончательная «дисперсия» данных является причиной высокого значения хи-квадрат. Но есть процедура для проверки этого распределения zipf (независимо от моего «неправильного» генератора, я хочу сосредоточиться на образце данных R) ???
источник