Menghitung distribusi kumulatif penarikan maksimum berjalan acak dengan drift

9

Saya tertarik pada distribusi drawdown maksimum jalan acak: Misalkan mana . Penarikan maksimum setelah periode adalah . Sebuah makalah oleh Magdon-Ismail et. Al. memberikan distribusi untuk drawdown maksimum dari gerakan Brown dengan drift. Ungkapan ini melibatkan jumlah tak terbatas yang mencakup beberapa istilah yang hanya didefinisikan secara implisit. Saya mengalami masalah dalam menulis implementasi yang konvergen. Adakah yang tahu tentang ekspresi alternatif dari CDF atau implementasi referensi dalam kode?X0=0,Xi+1=Xi+Yi+1YiN(μ,1)nmax0ijn(XiXj)

shabbychef
sumber
Seberapa akurat Anda membutuhkannya? Bisakah Anda hanya mensimulasikan perjalanan dan menghindari solusi yang berfungsi penuh?
kyle
Poin yang bagus. Saya tidak membutuhkan akurasi tingkat fisika-atom. pada kenyataannya, 3 sigfigs mungkin baik-baik saja ....
shabbychef
Itu akan membutuhkan sekitar satu juta jalan acak yang disimulasikan ...
whuber

Jawaban:

4

Ini adalah jumlah yang berubah-ubah. Setiap pasangan berturut-turut hampir batal; pasangan-jumlah semacam itu akhirnya berkurang secara monoton.

Satu pendekatan, kemudian, adalah untuk menghitung jumlah berpasangan di mana = {1,2}, {3,4}, {5,6}, dll. (Melakukan hal itu juga menghilangkan banyak kesalahan floating point.) Beberapa lebih banyak trik dapat membantu:n

(1) Untuk menyelesaikan untuk konstanta positif , nilai awal yang baik untuk mencari - dan perkiraan yang sangat baik untuk root terbesar - adalah . Saya menduga Newton-Raphson harus bekerja dengan sangat baik.α n th t = ( n + 1 / 2 ) π - αberjemur(t)=t/ααntht=(n+1/2)π-α(n+1/2)π

(2) Setelah sejumlah kecil istilah awal, jumlah pasangan mulai berkurang ukurannya sangat, sangat konsisten. Logaritma dari nilai absolut dari pasangan yang ditempatkan secara eksponensial dengan cepat berkurang hampir secara linear. Ini berarti Anda dapat melakukan interpolasi di antara sejumlah kecil jumlah-pasangan yang dihitung untuk memperkirakan semua jumlah-pasangan yang tidak Anda hitung. Misalnya, dengan menghitung nilai hanya untuk pasangan (2,3), (4,5), (8,9), (16,17), ..., (16384, 16385) dan membangun polinomial interpolasi untuk ini (dianggap sebagai nilai fungsi pada 1, 2, ..., 14) dan menggunakan argumenh=μ=σ=1, Saya dapat mencapai ketelitian enam digit untuk kesalahan terburuk. (Lebih bagus lagi, kesalahan terombang-ambing dalam tanda, menunjukkan ketepatan dalam nilai-nilai terinterpolasi yang disimpulkan mungkin sedikit lebih baik dari enam angka.) Anda mungkin bisa memperkirakan jumlah pembatas untuk presisi yang baik dengan mengekstrapolasi secara linear dari akhir nilai-nilai ini (yang diterjemahkan menjadi undang-undang kekuasaan) dan mengintegrasikan fungsi ekstrapolasi hingga tak terbatas. Untuk melengkapi perhitungan contoh ini, Anda juga memerlukan istilah pertama. Itu memberikan ketelitian enam angka dengan hanya 29 istilah yang dihitung dalam penjumlahan.

(3) Perhatikan bahwa fungsi ini sangat tergantung pada dan , bukan pada ketiga variabel ini secara independen. Ketergantungan pada lemah (sebagaimana mestinya); Anda mungkin puas untuk memperbaiki nilainya di seluruh perhitungan Anda.μ / σ Th/σμ/σT

(4) Di atas semua ini, pertimbangkan untuk menggunakan beberapa metode akselerasi seri , seperti metode Aitken . Penghitungan yang baik untuk hal ini muncul dalam Numerical Recipes .

Ditambahkan

(5) Anda dapat memperkirakan ekor jumlah dengan integral. Saat menulis , persamaan (dengan ) dapat diselesaikan untuk , yang kecil, dan kemudian untuk dengan mengganti kembali. Memperluas garis singgung dalam seri Taylor di memberikan solusi perkiraan tan ( θ n ) = θ n / a a = μ h / σ 2 t n θ n t nθn=(n+1/2)π-1/tnberjemur(θn)=θn/αα=μh/σ2tnθntn

θn=z-αz-α2-α3/3z3+HAI((αn)5)

di mana .z=(n+1/2)π

Asalkan cukup besar, faktor eksponensial dari bentuk menjadi sangat dekat dengan 1 sehingga Anda dapat mengabaikannya. Biasanya istilah ini dapat diabaikan bahkan untuk kecil karena adalah , membuat eksponensial pertama menjadi nol dengan sangat cepat. (Ini terjadi setelah secara substansial melebihi . Lakukan perhitungan Anda untuk besar jika Anda bisa!)1 - exp ( - σ 2 θ 2 n Tnn q 2 n Θ ( n 2 ) n α / T 1 / 2 T1exp(σ2θn2T2h2)exp(μ2T2σ2)nθn2Θ(n2)nα/T1/2T

Menggunakan ungkapan ini untuk untuk menjumlahkan istilah untuk dan memungkinkan kita memperkirakannya (setelah semua asap hilang) sebagai n n + 1θnnn+1

2πn2-4πn3+13π2+6(4-3α)α2π3n4+HAI(1n5).

Mengganti jumlah mulai dari dengan integral atas mulai dari mendekati ekor. (Integral harus dikalikan dengan faktor umum dari .) Kesalahan dalam integral adalah . Dengan demikian, untuk mencapai tiga angka penting, Anda biasanya perlu menghitung sekitar delapan atau lebih istilah dalam jumlah dan kemudian menambahkan perkiraan ekor ini.N N - 1 / 4 exp ( - α ) O ( 1 / n 4 )n=2NNN-1/4exp(-α)HAI(1/n4)

whuber
sumber
1
ini sangat bagus, dan harus menuju CDF. Materi lencana di Atas dan Di Luar.
shabbychef
2

Anda mungkin mulai dengan melihat fungsi distribusi drawdown di fBasics . Jadi Anda bisa dengan mudah mensimulasikan gerakan brown dengan drift dan menerapkan fungsi ini sebagai permulaan.

Shane
sumber
+1 Itu jawaban yang cukup langsung, mengingat fungsi-fungsi ini mengimplementasikan formula di koran!
whuber
Sepertinya paket ini menghitung drawdown maksimum yang diharapkan berdasarkan pada kertas, tetapi tidak menghitung CDF. Makalah ini memberikan hasil 'jalan pintas', IIRC, untuk menghitung harapan itu.
shabbychef
@shabbychef Maaf, saya melewatkan kebaikan itu. Saya melihat bagaimana memperoleh seluruh CDF bisa lebih bermanfaat daripada hanya mengetahui harapannya. (Risiko finansial jauh lebih dari sekadar kerugian yang diperkirakan ...) Tapi sekarang saya merasa sedikit lebih baik tentang pekerjaan yang saya lakukan untuk memperkirakan CDF!
whuber