Bagaimana saya bisa menentukan parameter weibull dari data?

10

Saya memiliki histogram data kecepatan angin yang sering direpresentasikan menggunakan distribusi weibull. Saya ingin menghitung bentuk weibull dan faktor skala yang paling cocok dengan histogram.

Saya memerlukan solusi numerik (bukan solusi grafis ) karena tujuannya adalah untuk menentukan bentuk weibull secara terprogram.

Sunting: Sampel dikumpulkan setiap 10 menit, kecepatan angin rata-rata selama 10 menit. Sampel juga termasuk kecepatan angin maksimum dan minimum yang direkam selama setiap interval yang diabaikan saat ini tetapi saya ingin memasukkannya nanti. Lebar nampan adalah 0,5 m / s

Histogram untuk 1 bulan data

klonq
sumber
1
ketika Anda mengatakan Anda memiliki histogram - maksud Anda juga memiliki informasi tentang pengamatan atau apakah Anda HANYA tahu lebar dan tinggi tempat sampah?
suncoolsu
@suncoolsu Saya memiliki semua poin data. Kumpulan data mulai dari 5.000 hingga 50.000 catatan.
klonq
Tidak bisakah Anda mengambil sampel data acak dan melakukan MLE parameter?
schenectady
2
Apa tujuan estimasi tersebut? Untuk secara retrospektif mengkarakterisasi kondisi masa lalu? Untuk memprediksi pembangkit listrik di masa depan di satu lokasi? Untuk memprediksi pembangkit listrik dalam jaringan turbin? Untuk mengkalibrasi model meteorologi? Dll. Untuk pertanyaan ini, menentukan solusi yang tepat tergantung secara kritis pada bagaimana solusi itu akan digunakan.
whuber
@whuber saat ini idenya adalah untuk merangkum set data angin dalam bentuk yang memungkinkan perbandingan dari periode ke periode dan / atau situs ke situs. Nanti tujuannya akan membandingkan tren dan seperti yang Anda katakan untuk membentuk penilaian tentang produksi di masa depan, dll. Saya sangat pemula dalam hal statistik tetapi saya memiliki segunung data (yang tidak dapat saya bagikan) dan ingin mengekstraksi sebagai banyak informasi darinya mungkin. Jika Anda bisa mengarahkan saya ke bacaan apa pun tentang hal ini, itu akan sangat dihargai.
klonq

Jawaban:

11

Estimasi Kemungkinan Maksimum dari parameter Weibull mungkin merupakan ide bagus dalam kasus Anda. Suatu bentuk distribusi Weibull terlihat seperti ini:

(γ/θ)(x)γ1exp(xγ/θ)

Di mana adalah parameter. Pengamatan yang diberikan , fungsi log-likelihood adalahθ,γ>0X1,,Xn

L(θ,γ)=i=1nlogf(Xi|θ,γ)

Satu "pemrograman berbasis" solusi akan mengoptimalkan fungsi ini menggunakan optimasi terbatas. Memecahkan untuk solusi optimal:

logLγ=nγ+1nlogxi1θ1nxiγlogxi=0
logLθ=nθ+1θ21nxiγ=0

Pada menghilangkan kita dapatkan:θ

[1nxiγlogxi1nxiγ1γ]=1n1nlogxi

Sekarang ini dapat diselesaikan untuk estimasi ML . Ini dapat dicapai dengan bantuan prosedur iteratif standar yang penyelesaiannya digunakan untuk menemukan solusi persamaan seperti - Newton-Raphson atau prosedur numerik lainnya.γ^

Sekarang dapat ditemukan dalam istilah sebagai:θγ^

θ^=1nxiγ^n
suncoolsu
sumber
Satu hal yang saya harus waspadai adalah sepertinya kita memiliki data deret waktu di sini. Jika data diambil sampelnya dalam jangka waktu yang singkat, dengan asumsi independensi bisa berbahaya. Yang mengatakan, (+1).
kardinal
@ kardinal Tolong jelaskan. Data berkisar selama sebulan atau hingga satu tahun, tetapi disampel secara teratur (10 menit). Apa yang menyiratkan hal ini?
klonq
@ cardinal Terima kasih telah menunjukkannya. Saya juga tidak yakin apakah asumsi independensi sesuai.
suncoolsu
1
@ Kallonq, bagaimana sampel diambil? Apakah ini kecepatan rata-rata selama sepuluh menit di antara rekaman? Lebih dari satu menit sebelum merekam? Kecepatan instan pada saat merekam? Sebagian besar saya akan mencari korelasi serial, yang dapat mengurangi ukuran sampel efektif Anda. Menggunakan estimasi ML berdasarkan pada asumsi sampel independen mungkin atau mungkin masih tidak memberi Anda estimasi yang baik dalam konteks itu, dan perhatian khusus harus diberikan sehubungan dengan kesimpulan berdasarkan estimasi tersebut. Pendekatan Suncoolsu jelas memberikan garis serangan pertama.
kardinal
@klonq - Jika memungkinkan, dapatkah Anda jelaskan bagaimana sampel Anda dikumpulkan? Seperti apa data itu?
suncoolsu
12

Gunakan fitdistrplus:

Perlu bantuan mengidentifikasi distribusi dengan histogramnya

Berikut adalah contoh bagaimana Distribusi Weibull cocok:

library(fitdistrplus)

#Generate fake data
shape <- 1.9
x <- rweibull(n=1000, shape=shape, scale=1)

#Fit x data with fitdist
fit.w <- fitdist(x, "weibull")
summary(fit.w)
plot(fit.w)


Fitting of the distribution ' weibull ' by maximum likelihood 
Parameters : 
       estimate Std. Error
shape 1.8720133 0.04596699
scale 0.9976703 0.01776794
Loglikelihood:  -636.1181   AIC:  1276.236   BIC:  1286.052 
Correlation matrix:
          shape     scale
shape 1.0000000 0.3166085
scale 0.3166085 1.0000000

masukkan deskripsi gambar di sini

bill_080
sumber
Terima kasih, tetapi saya mencoba mencari solusi di Jawa.
klonq
Adakah petunjuk dalam pengkodean R untuk mendapatkan faktor bentuk dan skala? Terima kasih.