Сравнение степенного закона с другими распределениями

Я использую пакет Powerlaw Python Джеффа Олстотта, чтобы попытаться подогнать мои данные к степенному закону. Пакет Джеффа основан на статье Clauset et al, в которой обсуждается Powerlaw.

Во-первых, некоторые подробности о моих данных:

  1. Он дискретный (данные о количестве слов);
  2. Он сильно смещен влево (высокая асимметрия)
  3. Это лептокуртик (избыточный эксцесс больше 10)

Что я уже сделал

df_data — это мой фрейм данных, где word_count — это серия, содержащая данные о количестве слов примерно для 1000 токенов слов.

Сначала я создал объект fit:

fit = powerlaw.Fit(data=df_data.word_count, discrete=True)

Затем я сравниваю степенное распределение для своих данных с другими распределениями, а именно: логарифмически нормальное, экспоненциальное, логарифмически нормальное_положительное, растянутое_экспоненциальное и truncated_powerlaw с помощью метода fit.distribution_compare(distribution_one, Distribution_two).

В результате применения метода Distribution_compare я получил следующие кортежи (r,p) для каждого из сравнений:

  • fit.distribution_compare('power_law', 'lognormal') = (0,35617607052907196, 0,5346696007)
  • fit.distribution_compare('power_law', 'exponential') = (397.3832646921206, 5.3999952097178692e-06)
  • fit.distribution_compare('power_law', 'lognormal_positive') = (27,82736434863289, 4,2257378698322223e-07)
  • fit.distribution_compare('power_law', 'stretched_exponential') = (1,37624682020371, 0,2974292837452046)
  • fit.distribution_compare('power_law', 'truncated_power_law') =(-0,0038373682383605, 0,83159372694621)

Из документации по степеням:

Р : поплавок

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

р : плавающий

Значимость знака R. Если значение ниже критического (обычно 0,05), знак R считается значимым. Если выше критического значения, знак R считается обусловленным статистическими флуктуациями.

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

Будет ли это правильной интерпретацией/предположением о результатах теста? Или, возможно, я что-то упускаю?


person born to hula    schedule 13.03.2018    source источник


Ответы (1)


Во-первых, хотя методы могли быть разработаны мной, Космой Шализи и Марком Ньюманом, наша реализация находится в Matlab и R. Я думаю, что реализация Python, которую вы используете, может быть от Джеффа Алстотта или Хавьера дель Молино Матамала или, может быть, от Джоэла. Ornstein (все это доступно на моем веб-сайте).

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

Чтобы оценить, является ли само степенное распределение статистически правдоподобной моделью, вы должны вычислить значение p для подобранной степенной модели, используя полупараметрический бутстрап мы описываем в нашей статье. Если p>0,1, и степенная модель предпочтительнее альтернатив LRT, то вы можете заключить относительно сильную поддержку ваших данных, следуя степенному закону распределения. .

Вернемся к вашим конкретным результатам: каждое из ваших LRT-сравнений дает пару (r,p), где r — нормализованное логарифмическое отношение правдоподобия, а p является статистической значимостью этого отношения. Здесь проверяется значение p, имеет ли смысл знак r. Если p‹0,05 для LRT, положительный знак указывает на то, что предпочтение отдается степенной модели. Глядя на ваши результаты, я вижу, что экспоненциальная и lognormal_positive альтернативы хуже подходят для данных, чем степенная модель. Однако логнормальный, растянутый_экспоненциальный и усеченный_степенной_закон нет, а это означает, что эти альтернативы так же плохо подходят к данным, как и ваша степенная модель.

Без значения p из проверки гипотезы для самой степенной модели результаты LRT не могут быть полностью интерпретированы. Но даже частичная интерпретация не согласуется с сильной степенью доказательства степенной закономерности, поскольку две нестепенные модели столь же хороши (плохи), как и степенная закономерность для этих данных. Тот факт, что экспоненциальная модель действительно хуже, чем степенной закон, неудивителен, учитывая, насколько искажены ваши данные вправо, так что здесь нечего особенного.

person aaronclauset    schedule 14.03.2018
comment
Привет @aaronclauset. Большое спасибо за ваши комментарии - немного чести получить ваш отзыв по моей проблеме. Ради корректности я обновил вопрос. - person born to hula; 15.03.2018
comment
(продолжение) Просто быть на той же странице. Таким образом, даже если результат проверки гипотезы для степенного закона показывает значение p, достаточное для отклонения нулевой гипотезы, тот факт, что LRT неубедительна для степенного закона по сравнению с некоторыми распределениями, помешает мне заявить, что степенная закон был бы подходящим с достаточной определенностью. Верно ли это предположение? Заранее спасибо! - person born to hula; 15.03.2018
comment
Если немного углубиться в детали - учитывая результаты моих тестов LRT и предположив, что тест KS для степенного закона дает мне p > 0,1, смогу ли я заключить, что у меня есть, по крайней мере, умеренная поддержка утверждения, что степенной закон подходит для моего дистрибутива? - person born to hula; 15.03.2018
comment
Рад помочь! Если проверка гипотезы только для степенного закона возвращает p > 0,1, то можно сказать, что ваши данные правдоподобно распределены по степенному закону. (Слово правдоподобно выбрано намеренно, так как оно подразумевает некоторую эмпирическую неопределенность.) Но даже в этом случае, если LRT говорит, что некоторые нестепенные распределения так же хорошо подходят, как и степенные, тогда это ослабляет случай, когда ваши данные определенно распределены по степенному закону. Причина в том, что логнормальные и растянутые экспоненты также могут создавать данные, которые выглядят как степенные законы. - person aaronclauset; 15.03.2018
comment
Спасибо за быстрый ответ Аарон! Я использовал библиотеку plpva.py Джоэла Орнштейна для вычисления p-значения. В результате запуска plpva я получил p = 0,9 и gof = 0,003. Насколько я понимаю, нулевая гипотеза для теста KS (который реализован в plpva) состоит в том, что распределения одинаковы - чем ниже мое значение p, тем больше у меня доказательств, чтобы отклонить нулевую гипотезу и сделать вывод дистрибутивы разные. Но позволит ли результат сказать, что мои данные правдоподобно распределены по степенному закону? - person born to hula; 15.03.2018
comment
Если plpva возвращает p>0,1, то да, по соглашению можно сказать, что данные в верхнем хвосте (x>=xmin) правдоподобно распределены по степенному закону. Это не говорит о том, что степенная модель является лучшей моделью этих данных, но говорит о том, что статистически правдоподобно, что они были взяты из подобранного степенного распределения. - person aaronclauset; 20.03.2018
comment
Здорово! Большое спасибо! Ваше здоровье - person born to hula; 20.03.2018