Apakah ada distribusi atau dapatkah saya bekerja dari distribusi lain untuk membuat distribusi seperti itu pada gambar di bawah (permintaan maaf untuk gambar yang buruk)?
di mana saya memberikan angka (0,2, 0,5 dan 0,9 dalam contoh) untuk di mana puncak seharusnya dan standar deviasi (sigma) yang membuat fungsi lebih lebar atau kurang lebar.
PS: Ketika angka yang diberikan adalah 0,5 distribusi adalah distribusi normal.
distributions
normal-distribution
Stan Callewaert
sumber
sumber
[0,1]
maka Anda tidak dapat membatasi jangkauan pdf[0,1]
juga (Selain dalam kasus seragam sepele).Jawaban:
Salah satu pilihan yang mungkin adalah distribusi beta , tetapi parametrized kembali dalam hal mean dan presisi ϕ , yaitu, "untuk fixed μ , semakin besar nilai ϕ , semakin kecil varians y " (lihat Ferrari, dan Cribari- Neto, 2004). Fungsi kepadatan probabilitas dibangun dengan mengganti parameter standar distribusi beta dengan α = ϕ μ dan β = ϕ ( 1 - μ )μ ϕ μ ϕ y α = ϕ μ β= ϕ ( 1 - μ )
di mana dan V a r ( Y ) = μ ( 1 - μ )E(Y) = μ .Var(Y)=μ(1−μ)1+ϕ
Atau, Anda dapat menghitung parameter dan β yang sesuai yang akan mengarah ke distribusi beta dengan mean dan varians yang ditentukan sebelumnya. Namun, perhatikan bahwa ada batasan nilai varians yang mungkin berlaku untuk distribusi beta. Bagi saya pribadi, parametrization menggunakan presisi lebih intuitif (pikirkan xα β proporsi dalam X yang didistribusikan secara binerial, dengan ukuran sampel ϕ dan probabilitas keberhasilan μ ).x/ϕ X ϕ μ
Distribusi Kumaraswamy adalah distribusi kontinu terbatas lainnya, tetapi akan lebih sulit untuk menentukan ulang parameter seperti di atas.
Seperti yang diketahui orang lain, itu tidak normal karena distribusi normal memiliki dukungan , jadi paling baik Anda bisa menggunakan normal terpotong sebagai perkiraan.(−∞,∞)
Ferrari, S., & Cribari-Neto, F. (2004). Regresi beta untuk tingkat pemodelan dan proporsi. Jurnal Statistik Terapan, 31 (7), 799-815.
sumber
Coba distribusi beta, kisarannya dari 0 hingga 1. Sudahkah Anda mencoba ini? Nilai rata-rata adalahα( α + β)
sumber
Saya mengubah untuk membuat variabel semacam ini. Mulailah dengan variabel acak, x, yang memiliki dukungan pada seluruh baris nyata (seperti normal), dan kemudian ubah untuk membuat variabel acak baru . Presto, Anda memiliki variabel acak yang didistribusikan pada interval unit. Karena transformasi khusus ini meningkat, Anda dapat memindahkan mean / median / mode y sekitar dengan memindahkan mean / median / mode x sekitar. Ingin membuatylebih tersebar (dalam hal jangkauan antar-kuartil, mengatakan)? Jadikanxlebih tersebar.y= e x p ( x )1 + e x p ( x ) y x
Tidak ada yang istimewa tentang fungsi . Setiap fungsi distribusi kumulatif berfungsi untuk menghasilkan variabel acak baru yang didefinisikan pada interval unit.e x p ( x )1 + e x p ( x )
Jadi, setiap variabel acak ditransformasikan dengan memasukkannya ke dalam cdf apa pun ( ) melakukan apa yang Anda inginkan --- membuat rv didistribusikan pada interval unit yang propertinya dapat Anda sesuaikan dengan menyesuaikan parameter variabel acak yang tidak diubah dengan cara yang intuitif. Selama F ( ) benar-benar monoton, variabel yang diubah akan, dalam beberapa hal, terlihat seperti yang tidak diubah. Misalnya, Anda ingin y menjadi variabel acak unimodal pada interval unit. Selama F ( ) benar-benar meningkat dan x adalah unimodal, Anda mendapatkannya. Meningkatkan median / mean / mode xy= F( x ) F( ) y F( ) x x meningkatkan median / rata-rata / mode . Meningkatkan kisaran interkuartil x (dengan menggerakkan persentil ke-25 ke bawah dan persentil ke-75 ke atas) meningkatkan kisaran interkuartil dari y . Monotonitas yang ketat adalah hal yang baik.y x y
Rumus untuk menghitung mean dan sd mungkin tidak mudah ditemukan, tetapi itulah tujuan simulasi Monte Carlo. Untuk mendapatkan distribusi yang relatif cantik seperti yang Anda gambar, Anda ingin x dan F ( ) menjadi variabel acak kontinu (cdf dari variabel acak kontinu) dengan dukungan di garis nyata.y x F( )
sumber
Jika seseorang tertarik pada solusi yang saya gunakan di Python untuk menghasilkan nilai acak dekat dengan angka yang diberikan sebagai parameter. Solusi saya ada empat tahap. Setiap tahap peluang bahwa jumlah yang dihasilkan lebih dekat ke jumlah yang diberikan lebih besar.
Saya tahu solusinya tidak seindah menggunakan satu distribusi tetapi ini adalah cara saya dapat menyelesaikan masalah saya:
number_factory.py:
main.py:
hasil ketika mengeksekusi kode ini ditunjukkan pada gambar di bawah:
sumber
Anda mungkin ingin melihat 'Kurva Johnson'. Lihat NL Johnson: Sistem Kurva Frekuensi yang dihasilkan oleh metode penerjemahan. 1949 Biometrika Volume 36 hal. 149-176. R memiliki dukungan untuk menyesuaikannya dengan kurva sewenang-wenang. Secara khusus kurva SB-nya (dibatasi) mungkin bermanfaat.
Sudah 40 tahun sejak saya menggunakannya, tetapi mereka sangat berguna bagi saya saat itu, dan saya pikir mereka akan bekerja untuk Anda.
sumber