Bagaimana saya menyesuaikan parameter distribusi-t, yaitu parameter yang sesuai dengan 'rata-rata' dan 'standar deviasi' dari distribusi normal. Saya menganggap mereka disebut 'berarti' dan 'scaling / derajat kebebasan' untuk distribusi-t?
Kode berikut sering menghasilkan kesalahan 'optimasi gagal'.
library(MASS)
fitdistr(x, "t")
Apakah saya harus mengukur x terlebih dahulu atau mengubahnya menjadi probabilitas? Bagaimana cara terbaik untuk melakukannya?
r
distributions
maximum-likelihood
fitting
robust
pengguna12719
sumber
sumber
Jawaban:
fitdistr
menggunakan kemungkinan-maksimum dan teknik optimasi untuk menemukan parameter dari distribusi yang diberikan. Terkadang, terutama untuk distribusi-t, seperti yang diperhatikan oleh @ user12719, optimasi dalam bentuk:gagal dengan kesalahan.
Dalam hal ini Anda harus memberikan pengoptimal tangan dengan memberikan titik awal dan batas bawah untuk mulai mencari parameter yang optimal:
Catatan,
df=3
adalah tebakan terbaik Anda untuk apa yang "optimal"df
bisa. Setelah memberikan info tambahan ini kesalahan Anda akan hilang.Beberapa kutipan untuk membantu Anda lebih memahami mekanisme dalam
fitdistr
:...
sumber
Mari kita coba beberapa simulasi:
Menunjukkan estimasi sangat tidak stabil (melihat histogram, sebagian besar nilai estimasi berada di batas atas yang diberikan untuk mengoptimalkan 200).
Mengulangi dengan ukuran sampel yang lebih besar:
yang jauh lebih baik, tetapi rata-rata masih jauh di atas nilai sebenarnya 2,5.
Kemudian ingat bahwa ini adalah versi sederhana dari masalah sebenarnya di mana parameter lokasi dan skala juga harus diperkirakan.
sumber
Dalam bantuan untuk fitdistr adalah contoh ini:
menunjukkan bahwa Anda hanya perlu nilai untuk df. Tapi itu mengasumsikan standardisasi.
Untuk kontrol yang lebih besar, mereka juga tampil
di mana parameternya adalah m = rata-rata, s = standar deviasi, df = derajat kebebasan
sumber
\mu
dan\sigma
juga. +1 dulu, omong-omong.df
adalah penyebab kesalahan, dan jawaban yang tepat harus memberikan beberapa resep untuk menemukannya.df=9
baik dalam contoh mereka dan tidak relevan di sini.