金額をランダムに分割すると指数分布(収入と富など)になることを分析的に証明するにはどうすればよいですか?


36

SCIENCEのこの現在の記事では、以下が提案されています。

10,000人の人々の間で5億の収入をランダムに分割するとします。全員に平等な50,000株を与える唯一の方法があります。したがって、収益をランダムに分配する場合、平等は非常にありそうにありません。しかし、少数の人々に多くの現金を与え、多くの人々に少しか何も与えない無数の方法があります。実際、収入を分配することができるすべての方法を考えると、それらのほとんどは収入の指数関数的な分布を生み出します。

結果を再確認したと思われる次のRコードでこれを行いました。

library(MASS)

w <- 500000000 #wealth
p <- 10000 #people

d <- diff(c(0,sort(runif(p-1,max=w)),w)) #wealth-distribution
h <- hist(d, col="red", main="Exponential decline", freq = FALSE, breaks = 45, xlim = c(0, quantile(d, 0.99)))

fit <- fitdistr(d,"exponential")
curve(dexp(x, rate = fit$estimate), col = "black", type="p", pch=16, add = TRUE)

ここに画像の説明を入力してください

私の質問
結果の分布が実際に指数関数的であることを分析的に証明するにはどうすればよいですか?

補遺
回答とコメントをありがとうございます。私は問題について考え、次の直感的な推論を思いつきました。基本的には次のことが起こります(注意:単純化を先に進めます):金額に沿って、(偏った)コインを投げます。たとえば、頭を取得するたびに、金額を分割します。結果のパーティションを配布します。離散的な場合、コイン投げは二項分布に従い、パーティションは幾何学的に分布します。連続アナログは、それぞれポアソン分布と指数分布です!(同じ理由で、なぜ幾何学的分布と指数分布が無記憶性の特性を持っているのか直感的に明らかになります-コインにも記憶がないからです)。


3
1つずつお金を配る場合、それらを均等に分配する多くの方法があり、ほぼ均等に分配するためにさらに多くの方法があります(たとえば、ほぼ正常で、平均がで標準偏差が近い分配)22450000224
Henry

@ヘンリー:この手順についてもう少し説明してください。特に「1つずつ」とはどういう意味ですか?おそらく、コードを提供することもできます。ありがとうございました。
vonjd 14

vonjd:5億コインから始めます。同じ確率で1万人の間で各コインを個別にランダムに割り当てます。各個人が獲得するコインの数を合計します。
ヘンリー14

@Henry:元々の声明は、現金を分配するほとんどの方法が指数分布をもたらすというものでした。現金を分配する方法とコインを分配する方法は同形ではありません。10,000人に500,000,000 ドルを均一に分配する方法は1つだけであるため(50,000 ドルごとに)、500,000,000!/((50,000!)^ 10,000)の方法があります10,000人のそれぞれに50,000コインを配布します。
supercat 14

1
@Henry一番上のコメントで説明したシナリオでは、各人が同じ確率でコインを獲得できるように設定されています。この条件は、コインを分配するさまざまな方法を等しく考慮するのではなく、正規分布に大きな重みを効果的に割り当てます。
higgsss

回答:


27

問題を簡単にするために、各人のシェアの許容値が離散的である場合、たとえば整数の場合を考えてみましょう。同様に、「収入軸」を等間隔の間隔に分割し、特定の間隔に入るすべての値を中点で近似することも考えられます。

総収入示す、として許容値を番目、などの人々の総数、及び株式を持つ人々の最後に、数としては、以下の条件満たす必要があります: および S X 、S NのX S N S C 1{ N S } Σ S N S - N = 0 C 2{ N S } Σ S N S X S - X = 0。XsxsNxsns

C1({ns})snsN=0,
C2({ns})snsxsX=0.

共有を分割するさまざまな方法が同じ分布を表すことができることに注意してください。例えば、我々は分割すると考えるならば$与え、二人の間の4を$アリス〜3及び$ボブと副はその逆の両方の同一の分布を与えるに1を。分割はランダムであるため、共有を分割するための対応する方法の最大数を持つ分布が発生する可能性が最も高くなります。

このような分布を得るには、 上記の2つの制約の下でラグランジュ乗数法は、このための標準的なアプローチです。さらに、「」は単調増加関数であるため、自体ではなく使用することを選択できます。つまり、 ここではラグランジュ乗数です。スターリングの公式によれば、 LNWWLNLNW

W({ns})N!sns!,
lnWWlnλ12LNNn個のLNのn-nはDLNのn
lnWns=λ1C1ns+λ2C1ns=λ1+λ2xs,
λ1,2
lnn!nlnnn,
つながる したがって、 その後、 これは指数分布です。制約を使用してラグランジュ乗数の値を取得できます。最初の制約から、 LNW
dlnn!dnlnn.
NSEXP-λ1-λ2XS N
lnWnslnns.
nsexp(λ1λ2xs),
N=snssexp(λ1λ2xs)1Δx0exp(λ1λ2x)dx=1λ2Δxexp(λ1),
ここでは、許容値間の間隔です。同様に、 したがって、 Δx
X=snsxssxsexp(λ1λ2xs)1Δx0xexp(λ1λ2x)dx=1λ22Δxexp(λ1).
exp(λ1)=N2ΔxX,
および これが実際に最小値または点ではなく最大値であることは、のヘッセ行列から見ることができます。。はで線形であるため、と同じです: および
λ2=NX.
lnWλ1C1λ2C2C1,2nslnW
2lnWns2=1ns<0,
2lnWnsnr=0(sr).
したがって、ヘッセ行列は凹面であり、我々が見つけたものは実際に最大値です。

関数は実際には分布の分布です。分布については、通常、最も可能性の高い分布に近いことがわかりますは十分に狭くなければなりません。ヘッセ行列から、この条件はます。(スターリングの式が信頼できるという条件でもあります。)したがって、実際に指数分布を見るには、収入軸のパーティション(OPのヒストグラムのビンに対応)を十分に広くして、パーティション内の人数を大幅に増やす必要があります団結より。がゼロになる傾向がある尾部に向かって、この条件は常に失敗する運命にあります。W({ns})W({ns})ns1ns

注:これは、物理学者が統計力学におけるボルツマン分布を正確に理解する方法です。を考慮すると、この場合、指数分布は本質的に正確です。N1023


1
ありがとう、Glen_bの答えを見てください。これはあなたの答えと一致していますか?
vonjd 14

2
@vonjdどういたしまして!彼の答えは私のものと一致していると思います。私には、彼は次の意味でポアソンプロセスに類似しているように見えます。「平均時間間隔」が50,000のポアソンプロセスを考え、10,000個のイベントをカウントします。次に、平均で「合計時間間隔」は50,000 x 10,000 = 5億です。
higgsss 14

2
@vonjd答えを更新しました。最も注目すべきは、私たちが通常観察する分布が最も可能性の高い分布に近いものであるという条件に関する議論を追加したことです。
higgsss

2
個別のケースを検討する場合、T個の事柄をN人((N + T-1)が(N-1)を選択)の方法で分割できることを観察することは役立ちますか?最初の人がf個を受け取った場合、残りを分配できる方法の数は((N + Tf-2)select(N-2)); 0からNまでのfの値の合計は、すべてを分配する方法の総数です。
supercat 14

1
@supercat指数分布を導き出す別の方法のように見えます。(分布の裾に近くないの値を考慮する)と仮定します。次に、を選択。TN,ff(N+Tf2)(N2)=(N+Tf2)!/(N2)!/(Tf)! (N+Tf2)!/(Tf)!(Tf)N2TN2e(N2)f/T
higgsss 14

17

実際、実際には指数関数的ではなく、ほとんど些細なことであることを証明できます。

特定のシェアが億を超える確率を計算します。指数ランダム変数が億を超える確率と比較してください。500500

ただし、ユニフォームギャップの例では、指数関数に近い値であることを確認するのはそれほど難しくありません。

ポアソンプロセスを考えてみましょう。イベントは、ある次元に沿ってランダムに発生します。間隔の単位あたりのイベントの数にはポアソン分布があり、イベント間のギャップは指数関数的です。

一定の間隔をとると、その中にあるポアソンプロセス内のイベントは、間隔内で均一に分散されます。こちらをご覧ください

[ただし、間隔は有限であるため、間隔の長さよりも大きなギャップを観察することはできず、その程度に近いギャップはありそうにないことに注意してください(たとえば、単位間隔で-0.04のギャップが表示され、 0.01、次に表示されるギャップは0.95を超えることはできません。]

そのため、ギャップの分布に対する注意を一定の間隔に制限する効果(大きな、間隔内のポイントの数が減少します)を除いて、それらのギャップは指数関数的に分布すると予想されます。n

コードでは、ユニフォームを配置して単位間隔を分割し、連続統計のギャップを見つけています。ここで、単位間隔は時間や空間ではなく、お金の次元を表します(お金を端から端まで50000百万セントと考え、単位間隔をカバーする距離を呼び出します。ただし、ここではセントの端数を使用できます)。マークを配置します。これにより、間隔が「共有」に分割されます。ポアソンプロセスと間隔内の均一点との関係により、が小さすぎない限り、均一の順序統計のギャップは指数関数的に見える傾向があります。nn+1n

より具体的には、ポアソンプロセス上に置かれた間隔で始まるギャップは、間隔の終わりに達することによって「検閲」される可能性があります(事実上、本来であれば本来よりも短くカットされます)。

ここに画像の説明を入力してください

ギャップが長いほど短いギャップよりもギャップが大きくなり、間隔内のギャップが増えると、平均ギャップ長を短くする必要があり、短いギャップが増えます。この「カットオフ」の傾向は、短いギャップよりも長いギャップの分布に影響を与える傾向があります(そして、間隔に制限されたギャップが間隔の長さを超える可能性はないため、ギャップサイズの分布はスムーズに減少するはずです間隔全体のサイズでゼロにする)。

図では、最後の長い間隔が短くカットされており、最初の比較的短い間隔も短くなっています。これらの効果は、指数性から私たちを遠ざけます。

(一様な順序の統計間のギャップの実際の分布はBeta(1、n)です。)n

したがって、大きい値の分布は小さい値では指数関数的に見え、大きい値では小さい指数値になります。これは、最大値の密度がより急速に低下するためです。n

以下は、n = 2のギャップの分布のシミュレーションです。

ここに画像の説明を入力してください

あまり指数関数的ではありません。

しかし、n = 20の場合、かなり近くに見え始めます。実際、が大きくなると、平均指数関数で近似されます。n1n+1

ここに画像の説明を入力してください

それが実際に平均1/21の指数関数である場合、は均一になりますが、そうではないことがわかります。exp(21x)

ここに画像の説明を入力してください

そこにある低い値の不均一性は、ギャップの大きな値に対応しています。これは、上記の議論から予想されるものです。ポアソンプロセスを有限区間に「カットオフ」する効果は、最大のギャップ。しかし、あなたがますます多くの値をとるにつれて、それはテールにさらに出て行くので、結果はより均一に見え始めます。で、同等の表示が均一と区別するのが難しくなるであろう- (お金の株式を表す)の隙間が非常に近い指数関数的に非常に低い、非常に非常に最大値を除いて、分散にあるべきです。n=10000


2
だからあなたを正しく理解するために:あなたはそれが指数関数的ではないと言っているのですか?!?higgsssは、上記の指数関数的であることを証明します!
vonjd 14

3
私の答えを引用しましょう:(i)「実際には指数関数的ではないことを証明できます」しかし(ii)あなたが見た均一なギャップについては...「...指数関数に近くなければならない」...」小さすぎる。" ...不明な点は何ですか?
グレン_b-モニカを復活14

5
私の答えでは、それが実際に指数関数的ではないという(些細な、明白な)証拠を概説しました。higgss は、指数関数的であることを証明しません。その(優れた)答えは私の声明と完全に一致しています。その中で、higgsssはほぼ指数関数的であることを証明しています。n_nsexp(λ1λ2xs)
Glen_b -Reinstate Monica

2
この答えは問題を見るのに最適な方法であり、より多くの賛成に値すると思います。しかし、ポアソンプロセスとの類似性がどのように機能するか(たとえば、「時間」が何に対応するか)が不明確に見えるかもしれません。詳細を教えていただけますか?
higgsss

3
@higgsss少し言い直し(時間への参照を削除)、詳細とリンクを追加しました。後でさらに議論を加えることができます。具体的な提案があれば、答えをさらに改善したいと思います。
-Glen_b-モニカを復活14

8

お金は無限に割り切れるので、整数ではなく実数を扱うことができます。

次に、個人に分割されたの均一な分布により、各個人の限界密度が与えられますは、各個体の周辺累積確率t=500000000n=10000

p(x)=n1t(1xt)n2
0xt
P(Xx)=1(1xt)n1.

これを適用する場合は、周辺分布を使用して任意の個体にランダムな量を割り当て、を、を減らして繰り返します。場合、これにより、各個人が残りの金額全体に均一な周辺分布を与えることに注意してください。とき、あなたは、単一の残りの人に残りのすべてのお金を与えます。XttXnn1n=2n=1

これらの式は指数関数ではなく多項式ですが、が大きい場合は、パラメーターを近い指数分布から区別することはおそらく難しいでしょう。 asため、分布は漸近的に指数関数的です。 nntm(1ym)mexp(y)m


8

「10,000人の人々の間で5億の収入をランダムに分割するとします」と言うのは、質問に答えるのに不十分です。一定の金額を一定の人数に割り当てるために使用できるさまざまなランダムプロセスがあり、それぞれが結果の分布に対して独自の特性を持ちます。私が考えることができる3つの生成プロセスと、それぞれが生み出す富の分布を以下に示します。

library(MASS)

w <- 500000000 #wealth
p <- 10000 #people

方法1、OPにより投稿:

[0、w)から一様にランダムに 'p'数を選択します。これらを並べ替えます。先頭に「0」を追加します。このリスト内の連続する要素間の差で表される金額を配ってください。

d <- diff(c(0,sort(runif(p-1,max=w)),w)) #wealth-distribution
h <- hist(d, col="red", main="Exponential decline", freq = FALSE, breaks = 45,
     xlim = c(0, quantile(d, 0.99)))
fit <- fitdistr(d,"exponential")
curve(dexp(x, rate = fit$estimate), col = "black", type="p", 
      pch=16, add = TRUE)

等間隔の休憩

方法2:

[0、w)からランダムに一様に「p」数を選択します。これらの「重み」を考慮すると、この段階では「w」は実際には問題になりません。重みを正規化します。各重量に対応する「w」の割合で表されるドル金額を配ります。

d <- runif(p,max=w) #weigh-distribution
d <- d/sum(d)*w #wealth-distribution
h <- hist(d, col="red", main="pretty uniform", freq = FALSE, breaks = 45, 
          xlim = c(0, quantile(d, 0.99)))

再スケールされた重み

方法3:

「p」0から始めます。w回、ランダムに均一に選択されたそれらの1つに1を加算します。

d <- rep(0, p)
for( i in 1:5000000){ ## for-loops in R are terrible, but this gives the idea.
    k <- floor(runif(1, max=p)) + 1    
    d[k] = (d[k] + 1)
}
h <- hist(d, col="red", main="kinda normalish?", freq = FALSE, breaks = 45,
          xlim = c(0, quantile(d, 0.99)))

反復的なドル


4

あなたの補遺に関して何か付け加えさせてください。

Glen_bとHenryが指摘したように、連続した場合、各人が受け取る金額の正確なPDFは ここで、は人数、は合計金額です。

p(x)=N1X(1xX)N2,
NX

離散的なケースでは、配布するコインがあると仮定すると、特定の人がコインを受け取る確率は とき、2つのケースが一致します。十分に大きく、尾から離れている限り、指数分布のように見えます。MmM»NN

p(m)=N1M+1j=0N3(1mMj)N2.
MNN

どちらの場合も、この真の確率分布から回サンプリングするため、有限のサンプルサイズに関連するエラーが発生します。N

ただし、この場合の異なるサンプリングは独立していないため、エラー分析の実行は簡単ではないようです。それらは合計金額まで合計する必要があり、最初の人が受け取る金額は2番目の人の確率分布に影響します。

私の以前の答えはこの問題に悩まされていませんが、このアプローチでどのように解決できるかを知ることは役立つと思います。


3

賛成の回答によって行われた優れた理論的分析。ただし、分布が指数関数的である理由についての私の単純で経験的な見解は次のとおりです。

あなたがお金をランダムに分配するとき、あなたがそれを一つずつ行うことを考えてみましょう。Sを元の合計とします。

最初の男性では、0からSの間のランダムな量を選択する必要があります。したがって、平均して、S / 2を選択し、S / 2のままにします。

2番目の男性の場合、0から、平均してS / 2の間でランダムに選択します。したがって、平均してS / 4を選択し、S / 4のままにします。

したがって、基本的には毎回合計を半分に分割します(統計的に言えば)。

実際の例では、値が連続的に半分になることはありませんが、これは、分布が指数関数的であると予想される理由を示しています。


3
あなたのアルゴリズムは、他のどの人よりも最初の人により多くのお金を与えます。このバイアスがない他のアプローチがあります。
ヘンリー14

@Henry他にどのようにお金を共有し始めますか?あなたは誰かから始めなければなりません。そして、あなたがするとき、あなたはあなたの前に全額を持っています。彼にランダムな割合を与えることは、文字通り、合計からランダムに選択することを意味します。「最初の男」を持つという仮定が間違っているとは言えません。さもないと、お金を共有する人は、何人いるかを事前に知っているため、合計を単に男の数で割るからです。これは、ビューの私のポイントです:あなたは、単により多くのお金を得て一人の男があるでしょう、あなたは「ランダム」お金を分割言うとき
ボグダンアレクサンドル・

Bogdan Alexandru:私のアルゴリズム(別の答え)には、各個人の分布が、最初、中間、最後のいずれで選択されても同じになるという特徴があります。また、割り当てられている総量によって制約される空間全体の均一な密度に対応します。
ヘンリー14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.