Як перевірити, чи відповідає розподіл закону про владу?


13

У мене є дані про те, скільки користувачів публікує скільки питань. Наприклад,

[UserCount, QuestionCount] 
[2, 100] 
[9, 10] 
[3, 80] 
... ...

Це означає, що кожен користувач опублікував 100 запитань, 9 користувачів - 10 питань тощо. Отже, як я можу визначити, чи відповідає UserCount, QuestionCountрозподіл закону про владу?

Я знайшов пакет poweRlaw . Однак я можу пройти лише одну групу чисел для оцінки. (Приклад, наведений у цьому пакеті, - частота слів.) Отже, як я можу використовувати цей пакет? Або у мене щось не так? У мене також є дані про кількість запитань кожного користувача, тобто [100, 100, 10, 10, 10 ... ]. Якщо я передаю ці дані в пакет, що я отримаю?


1
У цій статті подано математичний опис, як перевірити розподіл закону потужності, а також код R. Клаузет та ін. "Поширення закону влади в емпіричних даних".
Sycorax каже, що повернеться до Моніки

Спасибі. Однак я не можу наздогнати весь вміст у роботі. Я хочу, щоб деякі підходи пройшли перевірку. Чи маєте ви якесь уявлення про те, "значення якої групи передається в пакет"? У прикладі набір даних - це слова частоти. Знову дякую.
tThirday

Вибачте, я не знайомий з цим пакетом.
Sycorax каже, що повернеться до Моніки

Відповіді:


8

На думку Клаузета та ін., Саме так ви протестуєте хвіст закону про владу за допомогою poweRlawпакету:

  1. Побудувати об’єкт розподілу закону влади. У цьому випадку ваші дані дискретні, тому використовуйте дискретну версію класу
data <- c(100, 100, 10, 10, 10 ...)
data_pl <- displ$new(data)
  1. xminα
est <- estimate_xmin(data_pl)
data_pl$xmin <- est$xmin
data_pl$pars <- est$pars

останні два рядки можна переписати як один рядок

data_pl$xmin <- est

Також у цей момент ви можете побачити статистику KS:

est$KS
  1. p
bs <- bootstrap_p(data_pl)
bs$p

Це може зайняти деякий час, тому піди і візьми чашку чаю ...

  1. ppoweRlaw
data_alt <- dislnorm$new(data)
data_alt$xmin <- est$xmin
data_alt$pars <- estimate_pars(data_alt)
comp <- compare_distributions(data_pl, data_alt)

xmincompare_distributionsxmincompcomp$test_statisticdata_plcomp$p_two_side

Повторіть цей крок disexp, dispoisкласи для порівняння статечного з цими альтернативами.


Будь ласка, @Clivele, чи можете ви включити якийсь окремий приклад своїх даних? У мене є проблема перевірити свої дані, тому я буду вдячний на прикладі роботи ... дякую, я знайшов ваш пост дуже надихаючим!
майкка

1
Ви можете набрати команду data("moby")та використовувати mobyзамість dataмого прикладу, як у вступі
Zebra Propulsion Lab
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.