Saya mencari distribusi di mana kepadatan probabilitas berkurang dengan cepat setelah beberapa titik menjauh dari rata-rata, atau dengan kata-kata saya sendiri "distribusi berbentuk dataran tinggi".
Sesuatu di antara Gaussian dan seragam.
Saya mencari distribusi di mana kepadatan probabilitas berkurang dengan cepat setelah beberapa titik menjauh dari rata-rata, atau dengan kata-kata saya sendiri "distribusi berbentuk dataran tinggi".
Sesuatu di antara Gaussian dan seragam.
Jawaban:
Anda mungkin mencari distribusi yang dikenal dengan nama normal umum (versi 1) , distribusi Subbotin , atau distribusi daya eksponensial. Ini ditentukan oleh lokasi , skala dan bentuk dengan pdf
seperti yang Anda perhatikan, untuk itu menyerupai dan menyatu dengan distribusi Laplace, dengan \ beta = 2 konvergennya menjadi normal, dan ketika \ beta = \ infty ke distribusi seragam.
Jika Anda mencari perangkat lunak yang telah mengimplementasikannya, Anda dapat memeriksa normalp
perpustakaan untuk R (Mineo dan Ruggieri, 2005). Yang menyenangkan dari paket ini adalah, antara lain, ia mengimplementasikan regresi dengan kesalahan umum yang didistribusikan secara umum, yaitu meminimalkan norma .
Mineo, AM, & Ruggieri, M. (2005). Alat perangkat lunak untuk distribusi daya eksponensial: Paket normalp. Jurnal Perangkat Lunak Statistik, 12 (4), 1-24.
Komentar @ StrongBad adalah saran yang sangat bagus. Jumlah RV dan gaussian RV yang seragam dapat memberikan apa yang Anda cari jika Anda memilih parameter dengan benar. Dan itu sebenarnya memiliki solusi bentuk tertutup yang cukup bagus.
Pdf dari variabel ini diberikan oleh ekspresi:
adalah "jari-jari" dari RV seragam rata-rata nol. adalah standar deviasi dari RV gaussian rata-rata.
Ada jumlah tak terbatas dari distribusi "berbentuk dataran tinggi".
Apakah Anda mencari sesuatu yang lebih spesifik daripada "di antara Gaussian dan seragam"? Itu agak kabur.
Ini salah satu yang mudah: Anda selalu bisa menempel setengah normal di setiap ujung seragam:
Anda dapat mengontrol "lebar" seragam relatif terhadap skala normal sehingga Anda dapat memiliki dataran tinggi yang lebih luas atau lebih sempit, memberikan seluruh kelas distribusi, termasuk Gaussian dan seragam sebagai pembatas kasus.
Kepadatannya adalah:
dimana
Sebagai untuk fixed w , kita mendekati seragam pada ( μ - w / 2 , μ + w / 2 ) dan sebagai w → 0 untuk fixed σ kita mendekati N ( μ , σ 2 ) .
Berikut adalah beberapa contoh (dengan dalam setiap kasus):
Kita mungkin menyebut kepadatan ini sebagai "seragam berekor Gaussian".
Lihat distribusi "Menara Iblis" saya di sini [1]:
Distribusi "slip-dress" bahkan lebih menarik.
Sangat mudah untuk membangun distribusi yang memiliki bentuk apa pun yang Anda inginkan.
[1]: Westfall, PH (2014)
"Kurtosis as Peakedness, 1905 - 2014. RIP"
Am. Stat. 68 (3): 191–195. doi: 10.1080 / 00031305.2014.917055
akses publik pdf: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4321753/pdf/nihms-599845.pdf
Satu lagi ( EDIT : Saya menyederhanakannya sekarang. EDIT2 : Saya menyederhanakannya lebih jauh, meskipun sekarang gambar tidak benar-benar mencerminkan persamaan yang tepat ini):
Berikut ini beberapa contoh kode dalam R:
f = function(x, a, b, alpha){
y = log((cosh(2*alpha*pi*a)+cosh(2*alpha*pi*x))/(cosh(2*alpha*pi*b)+cosh(2*alpha*pi*x)))
y = y/pi/alpha/6
return(y)
}
f
adalah distribusi kami. Mari kita plot untuk urutanx
plot(0, type = "n", xlim = c(-5,5), ylim = c(0,0.4))
x = seq(-100,100,length.out = 10001L)
for(i in 1:10){
y = f(x = x, a = 2, b = 1, alpha = seq(0.1,2, length.out = 10L)[i]); print(paste("integral =", round(sum(0.02*y), 3L)))
lines(x, y, type = "l", col = rainbow(10, alpha = 0.5)[i], lwd = 4)
}
legend("topright", paste("alpha =", round(seq(0.1,2, length.out = 10L), 3L)), col = rainbow(10), lwd = 4)
Output konsol:
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = NaN" #I suspect underflow, inspecting the plots don't show divergence at all
#[1] "integral = NaN"
#[1] "integral = NaN"
Dan plot:
Anda dapat mengubah a
dan b
, kira-kira awal dan akhir lereng masing-masing, tetapi kemudian diperlukan normalisasi lebih lanjut, dan saya tidak menghitungnya (itu sebabnya saya menggunakan a = 2
dan b = 1
dalam plot).
Jika Anda mencari sesuatu yang sangat sederhana, dengan dataran tinggi tengah dan sisi-sisi distribusi segitiga, Anda dapat misalnya menggabungkan distribusi segitiga N, N tergantung pada rasio yang diinginkan antara dataran tinggi dan keturunan. Mengapa segitiga, karena fungsi pengambilan sampelnya sudah ada di sebagian besar bahasa. Anda mengurutkan secara acak dari salah satunya.
Dalam R yang akan memberi:
library(triangle)
rplateau = function(n=1){
replicate(n, switch(sample(1:3, 1), rtriangle(1, 0, 2), rtriangle(1, 1, 3), rtriangle(1, 2, 4)))
}
hist(rplateau(1E5), breaks=200)
Inilah yang cantik: produk dari dua fungsi logistik.
(1/B) * 1/(1+exp(A*(x-B))) * 1/(1+exp(-A*(x+B)))
Ini memiliki manfaat tidak menjadi bagian.
B mengatur lebar dan A mengatur kecuraman drop off. Di bawah ini ditunjukkan B = 1: 6 dengan A = 2. Catatan: Saya belum meluangkan waktu untuk mencari cara menormalkan ini dengan benar.