裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

Zipf の法則

2019年07月03日 | ブログラミング

「素数の先頭桁の数字の分布」で,「拡張されたベンフォードの法則」というのが出てきた。「拡張されたジップの法則(Zipf's law)」というのは知っているが「拡張されたベンフォードの法則」というのは,この論文ではじめて知った。

「ベンフォードの法則」は「ジップの法則の」特殊例。ジップの法則は出現頻度の大きさに応じて順位を r とすると,r 番目の頻度(度数)n は,a * r ^ b にしたがうというもの。b = -1 の場合が「ジップの法則」,b ≠ -1 の場合が「拡張されたジップの法則」。b = -1 のとき,一番大きいものが 100 なら,2 番目に大きいものは 100 * 2 ^(-1) = 50,3 番目に大きいものは 100 * 3 ^(-1) =33,4 番目に大きいものは 100 * 4 ^(-1) = 25 などとなる。

n = a * r ^ b の両辺の対数をとると,log(n) = log(a) + b * log(r) となるので,n, r の対数をとって直線回帰を行うと,「回帰直線の傾き」が b である。a は一番多いものの度数(頻度)の推定値になる。

ベンフォードの法則によくあてはまっていた,フィボナッチ数列については以下の図のようになるので,「拡張されたジップの法則」にしたがっていることが分かる。

階乗についてはベンフォードの法則から若干外れていた。下図のようになるので,やはり少しずれはあるが「拡張されたジップの法則」にしたがっていることが分かる。

[1, 10^10] の範囲内の素数の先頭桁の数字の分布は「拡張されたベンフォードの法則」にしたがうとされていた。

図に示すと以下のようになり,やはり「拡張されたジップの法則」にしたがっていることが分るが,b の値は大きく違う事に注意。b が 0 のときにはこの直線は x 軸に平行になるわけで,度数は全て等しくなる(一様分布になる)。b が -0..03942 ということは,かなり一様分布に近づいていることが分かる。

ちなみに [1, 10^7] の範囲内の素数については b = -0.05835 である。

なお,[1, 10^6] の範囲だと,「拡張されたジップの法則(拡張されたベンフォードの法則)」からのズレが相当大きい。

それより狭い範囲では推して知るべし。

 

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 素数の先頭桁の数字の分布 | トップ | ルーカス数列 »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事