Bagaimana saya dapat membuktikan secara analitik bahwa membagi jumlah secara acak menghasilkan distribusi eksponensial (misalnya pendapatan dan kekayaan)?

36

Dalam artikel saat ini di SCIENCE berikut ini diusulkan:

Misalkan Anda membagi secara acak 500 juta pendapatan di antara 10.000 orang. Hanya ada satu cara untuk memberi setiap orang bagian yang sama, 50.000 saham. Jadi, jika Anda membagikan penghasilan secara acak, kesetaraan sangat tidak mungkin. Tetapi ada banyak cara untuk memberi sedikit uang kepada beberapa orang dan banyak orang sedikit atau tidak sama sekali. Bahkan, mengingat semua cara Anda dapat membagi pendapatan, sebagian besar dari mereka menghasilkan distribusi pendapatan eksponensial.

Saya telah melakukan ini dengan kode R berikut yang tampaknya menegaskan kembali hasilnya:

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)

masukkan deskripsi gambar di sini

Pertanyaan saya
Bagaimana saya bisa membuktikan secara analitik bahwa distribusi yang dihasilkan memang eksponensial?

Tambahan
Terima kasih atas jawaban dan komentar Anda. Saya telah memikirkan masalah dan muncul dengan alasan intuitif berikut. Pada dasarnya hal-hal berikut terjadi (Waspadalah: penyederhanaan berlebihan di depan): Anda semacam mengikuti jumlah dan melemparkan koin (bias). Setiap kali Anda mendapatkan misalnya kepala Anda membagi jumlahnya. Anda mendistribusikan partisi yang dihasilkan. Dalam kasus terpisah, melempar koin mengikuti distribusi binomial, partisi didistribusikan secara geometris. Analog kontinu adalah distribusi poisson dan distribusi eksponensial masing-masing! (Dengan alasan yang sama, secara intuitif juga menjadi jelas mengapa distribusi geometri dan eksponensial memiliki sifat tanpa memori - karena koin juga tidak memiliki memori).

vonjd
sumber
3
Jika Anda memberikan uang satu per satu, ada banyak cara untuk mendistribusikannya secara merata dan lebih banyak lagi untuk mendistribusikannya secara merata (misalnya distribusi yang hampir normal dan dengan rata-rata dan standar deviasi mendekati 224 )50000224
Henry
@ Henry: Bisakah Anda jelaskan prosedur ini sedikit lebih. Terutama apa yang Anda maksud dengan "satu per satu"? Mungkin Anda bahkan bisa memberikan kode Anda. Terima kasih.
vonjd
vonjd: Mulai dengan 500 juta koin. Alokasikan setiap koin secara independen dan acak antara 10 ribu orang dengan probabilitas yang sama. Jumlahkan berapa banyak koin yang didapat setiap individu.
Henry
@ Henry: Pernyataan asli adalah bahwa sebagian besar cara untuk mendistribusikan hasil tunai distribusi eksponensial. Cara mendistribusikan uang tunai dan cara mendistribusikan koin bukanlah isomorfik, karena hanya ada satu cara untuk mendistribusikan $ 500.000.000 secara seragam di antara 10.000 orang (berikan masing-masing $ 50.000) tetapi ada 500.000.000! / ((50.000!) ^ 10.000) cara mendistribusikan 50.000 koin untuk masing-masing 10.000 orang.
supercat
1
@Henry Dalam skenario yang Anda jelaskan di komentar paling atas, sudah diatur sejak awal bahwa setiap orang memiliki probabilitas yang sama untuk mendapatkan koin. Kondisi ini secara efektif memberikan bobot yang besar pada distribusi normal, daripada mempertimbangkan cara yang berbeda untuk mendistribusikan koin.
higgsss

Jawaban:

27

Untuk membuat masalah lebih sederhana, mari kita perhatikan kasus di mana nilai yang dibolehkan dari masing-masing orang berbeda, misalnya bilangan bulat. Secara ekuivalen, orang juga dapat membayangkan mempartisi "sumbu pendapatan" menjadi interval dengan jarak yang sama dan mendekati semua nilai yang jatuh ke dalam interval yang diberikan pada titik tengah.

Dengan menyatakan total pendapatan sebagai , s -th nilai yang diizinkan sebagai x s , jumlah total orang sebagai N , dan akhirnya, jumlah orang dengan saham x s sebagai n s , kondisi berikut harus dipenuhi: C 1 ( { n s } ) Σ s n s - n = 0 , dan C 2 ( { n s } ) Σ s n sXsxsNxsns

C1({ns})sns-N=0,
C2({ns})snsxs-X=0.

Perhatikan bahwa banyak cara berbeda untuk membagi saham dapat mewakili distribusi yang sama. Misalnya, jika kami mempertimbangkan membagi $ 4 antara dua orang, memberikan $ 3 kepada Alice dan $ 1 untuk Bob dan sebaliknya keduanya akan memberikan distribusi yang identik. Karena pembagiannya acak, distribusi dengan jumlah maksimum cara yang sesuai untuk membagi saham memiliki peluang terbaik untuk terjadi.

Untuk mendapatkan distribusi seperti itu, kita harus memaksimalkan bawah dua kendala yang diberikan di atas. Metode pengganda Lagrange adalah pendekatan kanonik untuk ini. Lebih jauh, seseorang dapat memilih untuk bekerja denganlnWdaripadaWsendiri, karena "ln" adalah fungsi yang meningkat secara monoton. Artinya, lnW

W({ns})N!sns!,
dalamWWdalam di manaλ1,2adalah Lagrange. Perhatikan bahwa menurutrumus Stirling, lnn! nlnn-n, mengarah ke dlnn!
dalamWns=λ1C1ns+λ2C1ns=λ1+λ2xs,
λ1,2
dalamn!ndalamn-n,
Jadi, lnW
ddalamn!dndalamn.
Kemudian mengikuti bahwa nsexp(-λ1-λ2xs), yang merupakan distribusi eksponensial. Satu dapat memperoleh nilai pengganda Lagrange menggunakan kendala. Dari batasan pertama, N
dalamWns-dalamns.
nsexp(-λ1-λ2xs),
manaΔxadalah jarak antara nilai yang diizinkan. Demikian pula, X
N=snssexp(-λ1-λ2xs)1Δx0exp(-λ1-λ2x)dx=1λ2Δxexp(-λ1),
Δx Oleh karena itu, kita memiliki exp(-λ1)=N2Δx
X=snsxssxsexp(-λ1-λ2xs)1Δx0xexp(-λ1-λ2x)dx=1λ22Δxexp(-λ1).
dan λ2=N
exp(-λ1)=N2ΔxX,
Bahwa ini benar - benar maksimum, daripada titik minimum atau sadel, dapat dilihat dari GonilnW-λ1C1-λ2C2. KarenaC1,2adalah linier dalamns, itu sama denganlnW: 2 lnW
λ2=NX.
dalamW-λ1C1-λ2C2C1,2nsdalamW dan 2lnW
2dalamWns2=-1ns<0,
Karenanya Goni itu cekung, dan apa yang kami temukan memang maksimal.
2dalamWnsnr=0(sr).

W({ns})W({ns})ns1ns

N1023

higgsss
sumber
1
Terima kasih, silakan lihat jawaban Glen_b. Apakah ini konsisten dengan jawaban Anda?
vonjd
2
@vonjd Sama-sama! Saya pikir jawabannya konsisten dengan jawaban saya. Bagi saya tampaknya dia membuat analogi proses Poisson dalam pengertian berikut: Pertimbangkan proses Poisson dengan "interval waktu rata-rata" 50.000, dan hitung 10.000 peristiwa. Kemudian, secara rata-rata, "interval waktu total" adalah 50.000 x 10.000 = 500 juta.
higgsss
2
@ Vonjd saya memperbarui jawaban saya. Terutama, saya menambahkan diskusi dengan syarat bahwa distribusi yang biasanya kami amati adalah sesuatu yang dekat dengan distribusi yang paling mungkin.
higgsss
2
Ketika mempertimbangkan kasus-kasus terpisah, apakah akan membantu untuk mengamati bahwa hal-hal T dapat dibagi antara N orang ((N + T-1) memilih (N-1)) cara? Jika orang pertama menerima f hal-hal, jumlah cara seseorang dapat mendistribusikan sisanya adalah ((N + Tf-2) pilih (N-2)); jumlah dari itu untuk nilai f dari 0 hingga N adalah jumlah total cara mendistribusikan semuanya.
supercat
1
TN,ff(N+T-f-2)(N-2)=(N+T-f-2)!/(N-2)!/(T-f)! (N+T-f-2)!/(T-f)!(T-f)N-2TN-2e-(N-2)f/T
17

Bahkan Anda dapat membuktikan bahwa itu sebenarnya tidak eksponensial, hampir sepele:

500500

Namun, tidak terlalu sulit untuk melihat bahwa untuk contoh kesenjangan-seragam Anda bahwa itu harus dekat dengan eksponensial.

Pertimbangkan proses Poisson - di mana peristiwa terjadi secara acak sepanjang beberapa dimensi. Jumlah peristiwa per unit interval memiliki distribusi Poisson, dan kesenjangan antara peristiwa adalah eksponensial.

Jika Anda mengambil interval tetap maka peristiwa dalam proses Poisson yang termasuk di dalamnya terdistribusi secara merata dalam interval. Lihat di sini .

[Namun, perhatikan bahwa karena intervalnya terbatas, Anda tidak bisa mengamati kesenjangan yang lebih besar dari panjang interval, dan kesenjangan yang hampir sebesar itu tidak mungkin terjadi (pertimbangkan, misalnya, dalam interval satuan - jika Anda melihat kesenjangan 0,04 dan 0,01, gap berikutnya yang Anda lihat tidak boleh lebih besar dari 0,95).]

n

nn+1n

Lebih khusus lagi, setiap celah yang dimulai dalam interval yang ditempatkan di atas proses Poisson memiliki peluang untuk "disensor" (secara efektif, dipotong lebih pendek dari yang seharusnya) dengan berlari ke akhir interval.

masukkan deskripsi gambar di sini

Kesenjangan yang lebih panjang lebih mungkin untuk melakukan itu daripada yang lebih pendek, dan lebih banyak kesenjangan dalam interval berarti rata-rata panjang kesenjangan harus turun - kesenjangan lebih pendek. Kecenderungan untuk 'terputus' ini cenderung akan mempengaruhi distribusi kesenjangan yang lebih panjang lebih dari yang pendek (dan tidak ada peluang kesenjangan terbatas pada interval akan melebihi panjang interval - sehingga distribusi ukuran celah harus berkurang dengan lancar. ke nol pada ukuran seluruh interval).

Dalam diagram, interval agak panjang di ujung telah dipotong lebih pendek, dan interval yang relatif lebih pendek di awal juga lebih pendek. Efek ini membuat kita jauh dari eksponensial.

n

n

Berikut ini simulasi distribusi kesenjangan untuk n = 2:

masukkan deskripsi gambar di sini

Tidak terlalu eksponensial.

n1n+1

masukkan deskripsi gambar di sini

exp(-21x)

masukkan deskripsi gambar di sini

n=10000

Glen_b -Reinstate Monica
sumber
2
Jadi hanya untuk memahami Anda dengan benar: Anda mengatakan bahwa itu tidak eksponensial?!? higgsss membuktikan di atas bahwa itu eksponensial!
vonjd
3
Izinkan saya mengutip jawaban saya: (i) "Anda dapat membuktikan bahwa itu sebenarnya bukan eksponensial" TETAPI (ii) untuk kesenjangan seragam yang Anda lihat "... itu harus dekat dengan eksponensial" ... "selama n tidak terlalu kecil." ... Apa yang tidak jelas?
Glen_b -Reinstate Monica
5
Saya menguraikan bukti (sepele, jelas) bahwa itu sebenarnya tidak eksponensial dalam jawaban saya. higgss tidak membuktikan bahwa itu adalahnsexp(-λ1-λ2xs)
2
Saya pikir jawaban ini adalah cara yang bagus untuk melihat masalah, dan layak mendapat lebih banyak suara. Namun saya khawatir bagaimana analogi proses Poisson bekerja (mis., Sesuai dengan "waktu") tampak tidak jelas. Apakah Anda bersedia memberikan lebih banyak detail?
higgsss
3
@ higgsss Saya telah menulis ulang sedikit (menghapus referensi ke waktu), menambahkan sedikit detail dan tautan. Saya dapat menambahkan beberapa diskusi lagi nanti. Jika Anda memiliki saran khusus, saya akan tertarik untuk meningkatkan jawaban saya lebih lanjut.
Glen_b -Reinstate Monica
8

Anggap saja uang itu dapat dibagi tanpa batas sehingga kita dapat berurusan dengan bilangan real daripada bilangan bulat.

t=500000000n=10000

hal(x)=n-1t(1-xt)n-2
0xt
P(Xx)=1-(1-xt)n-1.

Xtt-Xnn-1n=2n=1

nnt(1-ym)mexp(-y)m

Henry
sumber
8

Untuk mengatakan, "misalkan Anda membagi secara acak 500 juta pendapatan di antara 10.000 orang" tidak cukup spesifik untuk menjawab pertanyaan. Ada banyak proses acak yang berbeda yang dapat digunakan untuk mengalokasikan jumlah uang tetap untuk jumlah orang tetap, dan masing-masing akan memiliki karakteristik sendiri untuk distribusi yang dihasilkan. Berikut adalah tiga proses generatif yang dapat saya pikirkan, dan distribusi kekayaan yang diciptakan oleh masing-masing.

library(MASS)

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

Metode 1, diposting oleh OP:

Pilih angka 'p' dari [0, w) secara seragam secara acak. Sortir ini. Tambahkan '0' ke depan. Bagikan jumlah dolar yang diwakili oleh perbedaan antara elemen-elemen berturut-turut dalam daftar ini.

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)

interval istirahat yang seragam

Metode 2:

Memilih angka 'p' dari [0, w) secara seragam secara acak. Pertimbangkan 'bobot' ini, jadi 'w' sebenarnya tidak penting pada tahap ini. Menormalkan bobot. Bagikan jumlah dolar yang diwakili oleh fraksi 'w' yang sesuai dengan setiap berat.

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)))

bobot ulang

Metode 3:

Mulai dengan 'p' 0s. w kali, tambahkan 1 ke salah satunya, dipilih secara seragam secara acak.

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)))

dolar berulang

Todd Johnson
sumber
4

Biarkan saya menambahkan sesuatu tentang addendum Anda.

hal(x)=N-1X(1-xX)N-2,
NX

M.m

hal(m)=N-1M.+1j=0N-3(1-mM.-j)N-2.
M.NN

N

Namun, melakukan analisis kesalahan tampaknya tidak mudah karena sampel yang berbeda dalam kasus ini tidak independen. Mereka harus menjumlahkan hingga jumlah total, dan berapa banyak yang diterima orang pertama mempengaruhi distribusi probabilitas untuk orang kedua, dan seterusnya.

Jawaban saya sebelumnya tidak menderita dari masalah ini, tetapi saya pikir akan sangat membantu untuk melihat bagaimana hal itu dapat diselesaikan dalam pendekatan ini.

higgsss
sumber
3

Analisis teoretis yang baik dilakukan oleh jawaban-jawaban yang terangkat. Namun, inilah pandangan empiris saya yang sederhana tentang mengapa distribusinya eksponensial.

Ketika Anda mendistribusikan uang secara acak , mari pertimbangkan Anda melakukannya satu per satu. Biarkan S menjadi jumlah asli.

Untuk pria pertama, Anda harus memilih jumlah acak antara 0 dan S. Dengan demikian, rata-rata, Anda akan memilih S / 2 dan tetap dengan S / 2.

Untuk orang kedua, Anda akan memilih secara acak antara 0 dan, rata-rata, S / 2. Jadi, secara rata-rata, Anda akan memilih S / 4 dan tetap dengan S / 4.

Jadi, pada dasarnya Anda akan membagi jumlah menjadi setengah setiap kali (secara statistik).

Meskipun dalam contoh kehidupan nyata Anda tidak akan memiliki nilai separuh terus menerus, ini menunjukkan mengapa orang harus mengharapkan distribusi menjadi eksponensial.

Bogdan Alexandru
sumber
3
Algoritme Anda puluhan untuk memberikan lebih banyak uang kepada orang pertama daripada orang lain. Ada beberapa pendekatan lain yang tidak memiliki bias ini.
Henry
@ Henry Bagaimana lagi Anda mulai berbagi uang? Anda harus mulai dengan seseorang. Dan ketika Anda melakukannya, Anda memiliki seluruh jumlah di depan Anda. Memberinya pecahan acak secara harfiah berarti memilih secara acak dari seluruh jumlah. Orang tidak dapat mengatakan bahwa asumsi memiliki "manusia pertama" adalah salah, karena kalau tidak, orang yang membagikan uang hanya akan membagi jumlah dengan jumlah manusia karena dia tahu sebelumnya berapa banyak orang di sana. Itu hanya sudut pandang saya: ketika Anda mengatakan Anda membagi uang "secara acak", hanya akan ada satu orang mendapatkan lebih banyak uang
Bogdan Alexandru
Bogdan Alexandru: Algoritme saya (jawaban lain) memiliki fitur bahwa distribusi untuk setiap individu adalah sama tidak peduli apakah mereka dipilih terlebih dahulu, di tengah atau terakhir. Ini juga sesuai dengan kerapatan seragam di seluruh ruang yang dibatasi oleh jumlah total yang dialokasikan.
Henry