分布がべき法則に従っているかどうかをテストする方法は?


13

何人のユーザーがいくつの質問を投稿したかに関するデータがあります。例えば、

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

これは、2人のユーザーがそれぞれ100の質問を投稿し、9人のユーザーがそれぞれ10の質問を投稿したことを意味します。だから、どうすればUserCount, QuestionCount分布がべき法則に従っているますか?

poweRlawパッケージを見つけました。ただし、評価を行うために1つのグループの数値のみを渡すことができます。(このパッケージで提供されている例は単語の頻度です。)では、このパッケージをどのように使用しますか?それとも何かおかしいのでしょうか?また、各ユーザーの質問数のデータもあり[100, 100, 10, 10, 10 ... ]ます。このデータをパッケージに渡すと、何が得られますか?


1
この記事では、べき乗則分布とRコードのテスト方法を数学的に説明します。Clauset et al。「経験データにおけるべき法則分布。」
Sycoraxを回復モニカ言う

ありがとう。しかし、私は論文のすべての内容を追いつくことはできません。検証を行うためのいくつかのアプローチが必要です。「パッケージに渡されるデータの単一グループの意味」についての考えはありますか?この例では、データセットは単語の頻度です。再度、感謝します。
t14年

申し訳ありませんが、私はそのパッケージに慣れていません。
Sycoraxは回復モニカ言う

回答:


8

Clausetらによると、これはpoweRlawパッケージでべき乗則の末尾をテストする方法です。

  1. べき乗分布オブジェクトを作成します。この場合、データは離散なので、クラスの離散バージョンを使用します
data <- c(100, 100, 10, 10, 10 ...)
data_pl <- displ$new(data)
  1. バツmnα
est <- estimate_xmin(data_pl)
data_pl$xmin <- est$xmin
data_pl$pars <- est$pars

最後の2行は1行として書き直すことができます

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)

バツmncompare_distributionsバツmncompcomp$test_statisticdata_plcomp$p_two_side

クラスでこの手順を繰り返してdisexpdispoisべき乗則をこれらの選択肢と比較します。


@Cliveleをお願いします。データのスタンドアロンの例を含めることができますか?私はデータをテストするのに問題があるので、実行中の例を感謝します...ありがとう、あなたの投稿は非常に刺激的だとわかりました!
maycca

1
あなたは、コマンド入力することができdata("moby")、使用するmoby代わりに、dataのように、私の例での導入
ゼブラ推進研究所
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.