Bagaimana saya bisa menghitung parameter dan untuk distribusi Beta jika saya tahu mean dan varians yang saya inginkan untuk distribusi? Contoh perintah R untuk melakukan ini akan sangat membantu.
Bagaimana saya bisa menghitung parameter dan untuk distribusi Beta jika saya tahu mean dan varians yang saya inginkan untuk distribusi? Contoh perintah R untuk melakukan ini akan sangat membantu.
Jawaban:
Saya menetapkan dan dan dipecahkan untuk dan . Hasil saya menunjukkan bahwa dan
Saya telah menulis beberapa kode R untuk memperkirakan parameter distribusi Beta dari mean, mu, dan varians, var:
estBetaParams <- function(mu, var) {
alpha <- ((1 - mu) / var - 1 / mu) * mu ^ 2
beta <- alpha * (1 / mu - 1)
return(params = list(alpha = alpha, beta = beta))
}
Ada beberapa kebingungan di sekitar batas-batas dan untuk setiap distribusi Beta yang diberikan, jadi mari kita perjelas di sini.σ 2
estBetaParams(0.06657, 0.1)
saya mendapatkan alpha=-0.025
, beta=-0.35
. Bagaimana ini mungkin?
Berikut adalah cara umum untuk menyelesaikan jenis masalah ini, menggunakan Maple alih-alih R. Ini juga berfungsi untuk distribusi lain:
with(Statistics):
eq1 := mu = Mean(BetaDistribution(alpha, beta)):
eq2 := sigma^2 = Variance(BetaDistribution(alpha, beta)):
solve([eq1, eq2], [alpha, beta]);
yang mengarah ke solusi
Ini setara dengan solusi Max.
Dalam R, distribusi beta dengan parameter dan memiliki kepadatanshape2 = b
,
untuk , , dan .b > 0 0 < x < 1
Di R, Anda dapat menghitungnya dengan
dbeta (x, shape1 = a, shape2 = b)
Dalam parametrisasi itu, rerata adalah dan variansnya adalah . Jadi, Anda sekarang dapat mengikuti jawaban Nick Sabbe. V(X)=ab
Kerja bagus!
Sunting
Saya menemukan:
,
dan
,
di mana dan .V = V ( X )
Di Wikipedia, misalnya, Anda dapat menemukan rumus berikut untuk rata-rata dan varian dari distribusi beta yang diberikan alpha dan beta: dan Membalik ini (isi dalam persamaan bawah) harus memberi Anda hasil yang Anda inginkan (meskipun mungkin butuh kerja). σ2=αβ
Untuk distribusi Beta umum yang ditentukan pada interval , Anda memiliki relasi:
yang dapat dibalik untuk memberikan:
dimana
Selesaikan persamaan untuk atau , penyelesaian untuk , Anda mendapatkan Kemudian hubungkan ini ke persamaan kedua, dan selesaikan untuk . Jadi Anda mendapatkan Yang menyederhanakan menjadi Lalu selesaikan penyelesaian untuk .
Saya mencari python, tetapi menemukan ini. Jadi ini akan bermanfaat bagi orang lain seperti saya.
Berikut ini adalah kode python untuk memperkirakan parameter beta (sesuai dengan persamaan yang diberikan di atas):
# estimate parameters of beta dist.
def getAlphaBeta(mu, sigma):
alpha = mu**2 * ((1 - mu) / sigma**2 - 1 / mu)
beta = alpha * (1 / mu - 1)
return {"alpha": 0.5, "beta": 0.1}
print(getAlphaBeta(0.5, 0.1) # {alpha: 12, beta: 12}
Anda dapat memverifikasi parameter dan dengan mengimpor paket.scipy.stats.beta