Moving-average-random-walk

Moving-average-random-walk

Bagaimana-do-stock-options-work-for-employees
Jenis-forex-yang-halal
Stock-options-guru


Cara-to-trade-apple-mini-options Moving-average-5-menit-chart Ing-vysya-online-trading-account Robot-forex-indonesia-terbaik Kd-forex Insentif-stock-options-and-amt-tax

Memindahkan model perataan rata-rata dan eksponensial Sebagai langkah pertama dalam bergerak melampaui model mean, model jalan acak, dan model tren linier, pola nonseasonal dan tren dapat diekstrapolasikan dengan menggunakan model rata-rata bergerak atau pemulusan. Asumsi dasar di balik model rata-rata dan perataan adalah bahwa deret waktu secara lokal bersifat stasioner dengan mean yang bervariasi secara perlahan. Oleh karena itu, kita mengambil rata-rata bergerak (lokal) untuk memperkirakan nilai rata-rata saat ini dan kemudian menggunakannya sebagai perkiraan untuk waktu dekat. Hal ini dapat dianggap sebagai kompromi antara model rata-rata dan model random-walk-without-drift-model. Strategi yang sama dapat digunakan untuk memperkirakan dan mengekstrapolasikan tren lokal. Rata-rata bergerak sering disebut versi quotsmoothedquot dari rangkaian aslinya karena rata-rata jangka pendek memiliki efek menghaluskan benjolan pada rangkaian aslinya. Dengan menyesuaikan tingkat perataan (lebar rata-rata bergerak), kita dapat berharap untuk mencapai keseimbangan optimal antara kinerja model jalan rata-rata dan acak. Jenis model rata-rata yang paling sederhana adalah. Rata-rata Bergerak Sederhana (rata-rata tertimbang): Prakiraan untuk nilai Y pada waktu t1 yang dilakukan pada waktu t sama dengan rata-rata sederhana dari pengamatan m terakhir: (Disini dan di tempat lain saya akan menggunakan simbol 8220Y-hat8221 untuk berdiri Untuk ramalan dari deret waktu yang dibuat Y pada tanggal sedini mungkin dengan model yang diberikan.) Rata-rata ini dipusatkan pada periode t- (m1) 2, yang menyiratkan bahwa perkiraan mean lokal cenderung tertinggal dari yang sebenarnya. Nilai mean lokal sekitar (m1) 2 periode. Jadi, kita katakan bahwa rata-rata usia data dalam rata-rata pergerakan sederhana adalah (m1) 2 relatif terhadap periode dimana ramalan dihitung: ini adalah jumlah waktu dimana perkiraan akan cenderung tertinggal dari titik balik data. . Misalnya, jika Anda rata-rata mendapatkan 5 nilai terakhir, prakiraan akan sekitar 3 periode terlambat dalam menanggapi titik balik. Perhatikan bahwa jika m1, model rata-rata bergerak sederhana (SMA) sama dengan model jalan acak (tanpa pertumbuhan). Jika m sangat besar (sebanding dengan panjang periode estimasi), model SMA setara dengan model rata-rata. Seperti parameter model peramalan lainnya, biasanya menyesuaikan nilai k untuk mendapatkan kuotil kuotil terbaik ke data, yaitu kesalahan perkiraan terkecil rata-rata. Berikut adalah contoh rangkaian yang tampaknya menunjukkan fluktuasi acak di sekitar rata-rata yang bervariasi secara perlahan. Pertama, mari mencoba menyesuaikannya dengan model jalan acak, yang setara dengan rata-rata bergerak sederhana dari 1 istilah: Model jalan acak merespons dengan sangat cepat terhadap perubahan dalam rangkaian, namun dengan begitu, ia memilih sebagian besar quot quotisequot di Data (fluktuasi acak) serta quotsignalquot (mean lokal). Jika kita mencoba rata-rata bergerak sederhana dari 5 istilah, kita mendapatkan perkiraan perkiraan yang lebih halus: Rata-rata pergerakan sederhana 5-langkah menghasilkan kesalahan yang jauh lebih kecil daripada model jalan acak dalam kasus ini. Usia rata-rata data dalam ramalan ini adalah 3 ((51) 2), sehingga cenderung tertinggal beberapa titik balik sekitar tiga periode. (Misalnya, penurunan tampaknya terjadi pada periode 21, namun prakiraan tidak berbalik sampai beberapa periode kemudian.) Perhatikan bahwa perkiraan jangka panjang dari model SMA adalah garis lurus horizontal, seperti pada pergerakan acak. model. Dengan demikian, model SMA mengasumsikan bahwa tidak ada kecenderungan dalam data. Namun, sedangkan prakiraan dari model jalan acak sama dengan nilai yang terakhir diamati, prakiraan dari model SMA sama dengan rata-rata tertimbang nilai terakhir. Batas kepercayaan yang dihitung oleh Statgraf untuk perkiraan jangka panjang rata-rata bergerak sederhana tidak semakin luas seiring dengan meningkatnya horizon peramalan. Ini jelas tidak benar Sayangnya, tidak ada teori statistik yang mendasari yang memberi tahu kita bagaimana interval kepercayaan harus melebar untuk model ini. Namun, tidak terlalu sulit untuk menghitung perkiraan empiris batas kepercayaan untuk perkiraan horizon yang lebih panjang. Misalnya, Anda bisa membuat spreadsheet di mana model SMA akan digunakan untuk meramalkan 2 langkah di depan, 3 langkah di depan, dan lain-lain dalam sampel data historis. Anda kemudian dapat menghitung penyimpangan standar sampel dari kesalahan pada setiap horison perkiraan, dan kemudian membangun interval kepercayaan untuk perkiraan jangka panjang dengan menambahkan dan mengurangkan kelipatan dari deviasi standar yang sesuai. Jika kita mencoba rata-rata pergerakan sederhana 9-term, kita mendapatkan perkiraan yang lebih halus dan lebih banyak efek lagging: Usia rata-rata sekarang adalah 5 periode ((91) 2). Jika kita mengambil moving average 19-term, usia rata-rata meningkat menjadi 10: Perhatikan bahwa, memang, ramalannya sekarang tertinggal dari titik balik sekitar 10 periode. Jumlah smoothing yang terbaik untuk seri ini Berikut adalah tabel yang membandingkan statistik kesalahan mereka, juga termasuk rata-rata 3-rata: Model C, rata-rata bergerak 5-term, menghasilkan nilai RMSE terendah dengan margin kecil di atas 3 -term dan rata-rata 9-istilah, dan statistik lainnya hampir sama. Jadi, di antara model dengan statistik kesalahan yang sangat mirip, kita bisa memilih apakah kita lebih memilih sedikit responsif atau sedikit lebih kehalusan dalam ramalan. (Lihat ke atas halaman.) Browns Simple Exponential Smoothing (rata-rata bergerak rata-rata tertimbang) Model rata-rata bergerak sederhana yang dijelaskan di atas memiliki properti yang tidak diinginkan sehingga memperlakukan pengamatan terakhir secara sama dan sama sekali mengabaikan semua pengamatan sebelumnya. Secara intuitif, data masa lalu harus didiskontokan secara lebih bertahap - misalnya, pengamatan terbaru harus mendapat bobot sedikit lebih besar dari yang terakhir, dan yang ke-2 terakhir harus mendapatkan bobot sedikit lebih banyak dari yang ke-3 terakhir, dan Begitu seterusnya Model pemulusan eksponensial sederhana (SES) menyelesaikan hal ini. Misalkan 945 menunjukkan kuototmothing constantquot (angka antara 0 dan 1). Salah satu cara untuk menulis model adalah dengan menentukan rangkaian L yang mewakili tingkat saat ini (yaitu nilai rata-rata lokal) dari seri yang diperkirakan dari data sampai saat ini. Nilai L pada waktu t dihitung secara rekursif dari nilai sebelumnya seperti ini: Dengan demikian, nilai smoothed saat ini adalah interpolasi antara nilai smoothed sebelumnya dan pengamatan saat ini, di mana 945 mengendalikan kedekatan nilai interpolasi dengan yang paling baru. pengamatan. Perkiraan untuk periode berikutnya hanyalah nilai merapikan saat ini: Secara ekivalen, kita dapat mengekspresikan perkiraan berikutnya secara langsung dalam perkiraan sebelumnya dan pengamatan sebelumnya, dengan versi setara berikut. Pada versi pertama, ramalan tersebut merupakan interpolasi antara perkiraan sebelumnya dan pengamatan sebelumnya: Pada versi kedua, perkiraan berikutnya diperoleh dengan menyesuaikan perkiraan sebelumnya ke arah kesalahan sebelumnya dengan jumlah pecahan 945. adalah kesalahan yang dilakukan pada Waktu t. Pada versi ketiga, perkiraan tersebut adalah rata-rata bergerak tertimbang secara eksponensial (yaitu diskon) dengan faktor diskonto 1- 945: Versi perumusan rumus peramalan adalah yang paling mudah digunakan jika Anda menerapkan model pada spreadsheet: sesuai dengan Sel tunggal dan berisi referensi sel yang mengarah ke perkiraan sebelumnya, pengamatan sebelumnya, dan sel dimana nilai 945 disimpan. Perhatikan bahwa jika 945 1, model SES setara dengan model jalan acak (tanpa pertumbuhan). Jika 945 0, model SES setara dengan model rata-rata, dengan asumsi bahwa nilai smoothing pertama ditetapkan sama dengan mean. (Kembali ke atas halaman.) Usia rata-rata data dalam ramalan eksponensial sederhana adalah 1 945 relatif terhadap periode dimana ramalan dihitung. (Ini tidak seharusnya jelas, namun dengan mudah dapat ditunjukkan dengan mengevaluasi rangkaian tak terbatas.) Oleh karena itu, perkiraan rata-rata bergerak sederhana cenderung tertinggal dari titik balik sekitar 1 945 periode. Misalnya, bila 945 0,5 lag adalah 2 periode ketika 945 0,2 lag adalah 5 periode ketika 945 0,1 lag adalah 10 periode, dan seterusnya. Untuk usia rata-rata tertentu (yaitu jumlah lag), ramalan eksponensial eksponensial sederhana (SES) agak lebih unggul daripada perkiraan rata-rata bergerak sederhana (SMA) karena menempatkan bobot yang relatif lebih tinggi pada pengamatan terakhir - i. Ini sedikit lebih responsif terhadap perubahan yang terjadi di masa lalu. Sebagai contoh, model SMA dengan 9 istilah dan model SES dengan 945 0,2 keduanya memiliki usia rata-rata 5 untuk data dalam perkiraan mereka, namun model SES memberi bobot lebih besar pada 3 nilai terakhir daripada model SMA dan pada tingkat Pada saat yang sama, hal itu sama sekali tidak sesuai dengan nilai lebih dari 9 periode, seperti yang ditunjukkan pada tabel ini: Keuntungan penting lain dari model SES dibandingkan model SMA adalah model SES menggunakan parameter pemulusan yang terus menerus bervariasi, sehingga mudah dioptimalkan. Dengan menggunakan algoritma quotsolverquot untuk meminimalkan kesalahan kuadrat rata-rata. Nilai optimal 945 dalam model SES untuk seri ini ternyata adalah 0,2961, seperti yang ditunjukkan di sini: Usia rata-rata data dalam ramalan ini adalah 10.2961 3,4 periode, yang serupa dengan rata-rata pergerakan sederhana 6-istilah. Perkiraan jangka panjang dari model SES adalah garis lurus horisontal. Seperti pada model SMA dan model jalan acak tanpa pertumbuhan. Namun, perhatikan bahwa interval kepercayaan yang dihitung oleh Statgraphics sekarang berbeda dengan mode yang masuk akal, dan secara substansial lebih sempit daripada interval kepercayaan untuk model perjalanan acak. Model SES mengasumsikan bahwa seri ini agak dapat diprediksi daripada model jalan acak. Model SES sebenarnya adalah kasus khusus model ARIMA. Sehingga teori statistik model ARIMA memberikan dasar yang kuat untuk menghitung interval kepercayaan untuk model SES. Secara khusus, model SES adalah model ARIMA dengan satu perbedaan nonseasonal, MA (1), dan tidak ada istilah konstan. Atau dikenal sebagai model quotARIMA (0,1,1) tanpa constantquot. Koefisien MA (1) pada model ARIMA sesuai dengan kuantitas 1- 945 pada model SES. Misalnya, jika Anda memasukkan model ARIMA (0,1,1) tanpa konstan pada rangkaian yang dianalisis di sini, koefisien MA (0) diperkirakan berubah menjadi 0,7029, yang hampir persis satu minus 0,2961. Hal ini dimungkinkan untuk menambahkan asumsi tren linier konstan non-nol ke model SES. Untuk melakukan ini, cukup tentukan model ARIMA dengan satu perbedaan nonseasonal dan MA (1) dengan konstan, yaitu model ARIMA (0,1,1) dengan konstan. Perkiraan jangka panjang kemudian akan memiliki tren yang sama dengan tren rata-rata yang diamati selama periode estimasi keseluruhan. Anda tidak dapat melakukan ini bersamaan dengan penyesuaian musiman, karena opsi penyesuaian musiman dinonaktifkan saat jenis model diatur ke ARIMA. Namun, Anda dapat menambahkan tren eksponensial jangka panjang yang konstan ke model pemulusan eksponensial sederhana (dengan atau tanpa penyesuaian musiman) dengan menggunakan opsi penyesuaian inflasi dalam prosedur Peramalan. Kecepatan quotinflationquot (persentase pertumbuhan) yang tepat per periode dapat diperkirakan sebagai koefisien kemiringan dalam model tren linier yang sesuai dengan data yang terkait dengan transformasi logaritma alami, atau dapat didasarkan pada informasi independen lain mengenai prospek pertumbuhan jangka panjang. . (Kembali ke atas halaman.) Browns Linear (yaitu ganda) Exponential Smoothing Model SMA dan model SES mengasumsikan bahwa tidak ada kecenderungan jenis apapun dalam data (yang biasanya OK atau paling tidak tidak terlalu buruk untuk 1- Prakiraan ke depan saat data relatif bising), dan mereka dapat dimodifikasi untuk menggabungkan tren linier konstan seperti yang ditunjukkan di atas. Bagaimana dengan tren jangka pendek Jika suatu seri menampilkan tingkat pertumbuhan atau pola siklus yang berbeda yang menonjol dengan jelas terhadap kebisingan, dan jika ada kebutuhan untuk meramalkan lebih dari 1 periode di depan, maka perkiraan kecenderungan lokal mungkin juga terjadi. sebuah isu. Model pemulusan eksponensial sederhana dapat digeneralisasi untuk mendapatkan model pemulusan eksponensial linear (LES) yang menghitung perkiraan lokal tingkat dan kecenderungan. Model tren waktu yang paling sederhana adalah model pemulusan eksponensial Browns linier, yang menggunakan dua seri penghalusan berbeda yang berpusat pada titik waktu yang berbeda. Rumus peramalan didasarkan pada ekstrapolasi garis melalui dua pusat. (Versi yang lebih canggih dari model ini, Holt8217s, dibahas di bawah ini.) Bentuk aljabar model pemulusan eksponensial linier Brown8217, seperti model pemulusan eksponensial sederhana, dapat dinyatakan dalam sejumlah bentuk yang berbeda namun setara. Bentuk quotstandardquot dari model ini biasanya dinyatakan sebagai berikut: Misalkan S menunjukkan deretan sumbu tunggal yang diperoleh dengan menerapkan smoothing eksponensial sederhana ke rangkaian Y. Artinya, nilai S pada periode t diberikan oleh: (Ingat lagi, di bawah sederhana Eksponensial smoothing, ini akan menjadi ramalan untuk Y pada periode t1.) Kemudian, biarkan Squot menunjukkan seri merapikan ganda yang diperoleh dengan menerapkan perataan eksponensial sederhana (menggunakan yang sama 945) ke seri S: Akhirnya, perkiraan untuk Y tk. Untuk setiap kgt1, diberikan oleh: Ini menghasilkan e 1 0 (yaitu menipu sedikit, dan membiarkan perkiraan pertama sama dengan pengamatan pertama yang sebenarnya), dan e 2 Y 2 8211 Y 1. Setelah itu prakiraan dihasilkan dengan menggunakan persamaan di atas. Ini menghasilkan nilai pas yang sama seperti rumus berdasarkan S dan S jika yang terakhir dimulai dengan menggunakan S 1 S 1 Y 1. Versi model ini digunakan pada halaman berikutnya yang menggambarkan kombinasi pemulusan eksponensial dengan penyesuaian musiman. Model LES Linear Exponential Smoothing Brown8217s Lens menghitung perkiraan tingkat dan kecenderungan lokal dengan menghaluskan data terbaru, namun kenyataan bahwa hal itu terjadi dengan parameter pemulusan tunggal menempatkan batasan pada pola data yang dapat disesuaikan: tingkat dan tren Tidak diizinkan untuk bervariasi pada tingkat independen. Model LES Holt8217s membahas masalah ini dengan memasukkan dua konstanta pemulusan, satu untuk level dan satu untuk tren. Setiap saat t, seperti pada model Brown8217s, ada perkiraan L t tingkat lokal dan perkiraan T t dari tren lokal. Di sini mereka dihitung secara rekursif dari nilai Y yang diamati pada waktu t dan perkiraan tingkat dan kecenderungan sebelumnya oleh dua persamaan yang menerapkan pemulusan eksponensial kepada mereka secara terpisah. Jika perkiraan tingkat dan tren pada waktu t-1 adalah L t82091 dan T t-1. Masing, maka perkiraan untuk Y tshy yang akan dilakukan pada waktu t-1 sama dengan L t-1 T t-1. Bila nilai aktual diamati, perkiraan tingkat yang diperbarui dihitung secara rekursif dengan menginterpolasi antara Y tshy dan ramalannya, L t-1 T t-1, dengan menggunakan bobot 945 dan 1- 945. Perubahan pada tingkat perkiraan, Yaitu L t 8209 L t82091. Dapat diartikan sebagai pengukuran yang bising pada tren pada waktu t. Perkiraan tren yang diperbarui kemudian dihitung secara rekursif dengan menginterpolasi antara L t 8209 L t82091 dan perkiraan sebelumnya dari tren, T t-1. Menggunakan bobot 946 dan 1-946: Interpretasi konstanta perataan tren 946 sama dengan konstanta pemulusan tingkat 945. Model dengan nilai kecil 946 beranggapan bahwa tren hanya berubah sangat lambat seiring berjalannya waktu, sementara model dengan Lebih besar 946 berasumsi bahwa itu berubah lebih cepat. Sebuah model dengan besar 946 percaya bahwa masa depan yang jauh sangat tidak pasti, karena kesalahan dalam estimasi tren menjadi sangat penting saat meramalkan lebih dari satu periode di masa depan. (Kembali ke atas halaman.) Konstanta pemulusan 945 dan 946 dapat diperkirakan dengan cara biasa dengan meminimalkan kesalahan kuadrat rata-rata dari perkiraan satu langkah ke depan. Bila ini dilakukan di Stategaf, perkiraannya adalah 945 0,3048 dan 946 0,008. Nilai yang sangat kecil dari 946 berarti bahwa model tersebut mengasumsikan perubahan sangat sedikit dalam tren dari satu periode ke periode berikutnya, jadi pada dasarnya model ini mencoba memperkirakan tren jangka panjang. Dengan analogi dengan pengertian rata-rata umur data yang digunakan dalam memperkirakan tingkat lokal seri, usia rata-rata data yang digunakan dalam memperkirakan tren lokal sebanding dengan 1 946, meskipun tidak sama persis dengan itu. . Dalam hal ini ternyata pukul 10.006 125. Ini adalah angka yang sangat tepat karena keakuratan perkiraan 946 bukan benar-benar 3 angka desimal, namun memiliki tatanan umum yang sama besarnya dengan ukuran sampel 100, jadi Model ini rata-rata memiliki cukup banyak sejarah dalam memperkirakan tren. Plot perkiraan di bawah ini menunjukkan bahwa model LES memperkirakan tren lokal yang sedikit lebih besar di akhir seri daripada tren konstan yang diperkirakan dalam model SEStrend. Juga, nilai estimasi 945 hampir sama dengan yang diperoleh dengan memasang model SES dengan atau tanpa tren, jadi model ini hampir sama. Sekarang, apakah ini terlihat seperti ramalan yang wajar untuk model yang seharusnya memperkirakan tren lokal Jika Anda memilih plot ini, sepertinya tren lokal telah berubah ke bawah pada akhir seri Apa yang telah terjadi Parameter model ini Telah diperkirakan dengan meminimalkan kesalahan kuadrat dari perkiraan satu langkah ke depan, bukan perkiraan jangka panjang, dalam hal ini tren tidak menghasilkan banyak perbedaan. Jika semua yang Anda lihat adalah kesalahan 1 langkah maju, Anda tidak melihat gambaran tren yang lebih besar mengenai (katakanlah) 10 atau 20 periode. Agar model ini lebih selaras dengan ekstrapolasi data bola mata kami, kami dapat menyesuaikan konstanta pemulusan tren secara manual sehingga menggunakan garis dasar yang lebih pendek untuk estimasi tren. Misalnya, jika kita memilih menetapkan 946 0,1, maka usia rata-rata data yang digunakan dalam memperkirakan tren lokal adalah 10 periode, yang berarti bahwa kita rata-rata mengalami trend selama 20 periode terakhir. Berikut ini perkiraan plot perkiraan jika kita menetapkan 946 0,1 sambil mempertahankan 945 0,3. Ini terlihat sangat masuk akal untuk seri ini, meskipun mungkin berbahaya untuk memperkirakan tren ini lebih dari 10 periode di masa depan. Bagaimana dengan statistik kesalahan Berikut adalah perbandingan model untuk kedua model yang ditunjukkan di atas dan juga tiga model SES. Nilai optimal 945. Untuk model SES adalah sekitar 0,3, namun hasil yang serupa (dengan sedikit atau kurang responsif, masing-masing) diperoleh dengan 0,5 dan 0,2. (A) Holts linear exp. Smoothing dengan alpha 0.3048 dan beta 0.008 (B) Holts linear exp. Smoothing dengan alpha 0.3 dan beta 0,1 (C) Smoothing eksponensial sederhana dengan alpha 0.5 (D) Smoothing eksponensial sederhana dengan alpha 0.3 (E) Smoothing eksponensial sederhana dengan alpha 0.2 Statistik mereka hampir identik, jadi kita benar-benar tidak dapat membuat pilihan berdasarkan dasar Kesalahan perkiraan 1 langkah di depan sampel data. Kita harus kembali pada pertimbangan lain. Jika kita sangat percaya bahwa masuk akal untuk mendasarkan perkiraan tren saat ini pada apa yang telah terjadi selama 20 periode terakhir, kita dapat membuat kasus untuk model LES dengan 945 0,3 dan 946 0,1. Jika kita ingin bersikap agnostik tentang apakah ada tren lokal, maka salah satu model SES mungkin akan lebih mudah dijelaskan dan juga akan memberikan prakiraan tengah jalan untuk periode 5 atau 10 berikutnya. (Apa yang dimaksud dengan tren-ekstrapolasi terbaik: Bukti empiris horizontal atau linier menunjukkan bahwa, jika data telah disesuaikan (jika perlu) untuk inflasi, maka mungkin tidak bijaksana untuk melakukan ekstrapolasi linier jangka pendek Tren sangat jauh ke depan. Tren yang terbukti hari ini dapat mengendur di masa depan karena beragam penyebabnya seperti keusangan produk, persaingan yang meningkat, dan kemerosotan siklis atau kenaikan di industri. Untuk alasan ini, smoothing eksponensial sederhana sering kali melakukan out-of-sample yang lebih baik daripada yang mungkin diharapkan, terlepas dari ekstrapolasi horisontal kuotometer. Modifikasi tren yang teredam dari model pemulusan eksponensial linier juga sering digunakan dalam praktik untuk memperkenalkan catatan konservatisme ke dalam proyeksi trennya. Model LES teredam-tren dapat diimplementasikan sebagai kasus khusus model ARIMA, khususnya model ARIMA (1,1,2). Ada kemungkinan untuk menghitung interval kepercayaan di sekitar perkiraan jangka panjang yang dihasilkan oleh model penghalusan eksponensial, dengan menganggapnya sebagai kasus khusus model ARIMA. (Hati-hati: tidak semua perangkat lunak menghitung interval kepercayaan untuk model ini dengan benar.) Lebar interval kepercayaan bergantung pada (i) kesalahan RMS pada model, (ii) jenis smoothing (sederhana atau linier) (iii) nilai (S) dari konstanta pemulusan (s) dan (iv) jumlah periode di depan yang Anda peramalkan. Secara umum, interval menyebar lebih cepat saat 945 semakin besar dalam model SES dan menyebar jauh lebih cepat saat perangkat lunak daripada smoothing sederhana digunakan. Topik ini dibahas lebih lanjut di bagian model ARIMA dari catatan. (ARIMA: model nonseasonal persamaan peramalan ARIMA (p, d, q): Model ARIMA secara teori merupakan kelas model paling umum untuk meramalkan deret waktu yang dapat dibuat menjadi 8220stationary8221. Dengan membedakan (jika perlu), mungkin bersamaan dengan transformasi nonlinier seperti penebangan atau pengapuran (jika perlu). Variabel acak yang merupakan deret waktu adalah stasioner jika sifat statistiknya konstan sepanjang waktu. Seri stasioner tidak memiliki tren, variasinya berkisar rata-rata memiliki amplitudo konstan, dan bergoyang secara konsisten. Yaitu pola waktu acak jangka pendeknya selalu terlihat sama dalam arti statistik. Kondisi terakhir ini berarti autokorelasinya (korelasi dengan penyimpangannya sendiri dari mean) tetap konstan dari waktu ke waktu, atau ekuivalen, bahwa spektrum kekuatannya tetap konstan seiring berjalannya waktu. Variabel acak dari bentuk ini dapat dilihat (seperti biasa) sebagai kombinasi sinyal dan noise, dan sinyal (jika ada) dapat menjadi pola reversi rata-rata yang cepat atau lambat, atau osilasi sinusoidal, atau alternasi cepat pada tanda , Dan itu juga bisa memiliki komponen musiman. Model ARIMA dapat dilihat sebagai filter 8220filter8221 yang mencoba memisahkan sinyal dari noise, dan sinyal tersebut kemudian diekstrapolasikan ke masa depan untuk mendapatkan perkiraan. Persamaan peramalan ARIMA untuk rangkaian waktu stasioner adalah persamaan linier (yaitu regresi-tipe) dimana prediktor terdiri dari kelambatan variabel dependen dan atau lag dari kesalahan perkiraan. Yaitu: Prediksi nilai Y adalah konstanta dan atau jumlah tertimbang dari satu atau lebih nilai Y dan satu angka tertimbang dari satu atau lebih nilai kesalahan terkini. Jika prediktor hanya terdiri dari nilai Y yang tertinggal, itu adalah model autoregresif murni (8220 self-regressed8221), yang hanyalah kasus khusus dari model regresi dan yang dapat dilengkapi dengan perangkat lunak regresi standar. Sebagai contoh, model autoregresif orde pertama (8220AR (1) 8221) untuk Y adalah model regresi sederhana dimana variabel independennya hanya Y yang tertinggal satu periode (LAG (Y, 1) dalam Statgrafik atau YLAG1 dalam RegresIt). Jika beberapa prediktor tertinggal dari kesalahan, model ARIMA TIDAK merupakan model regresi linier, karena tidak ada cara untuk menentukan error8221 8220last period8417s sebagai variabel independen: kesalahan harus dihitung berdasarkan periode-ke-periode Saat model dipasang pada data. Dari sudut pandang teknis, masalah dengan menggunakan kesalahan tertinggal sebagai prediktor adalah bahwa prediksi model8217 bukanlah fungsi linear dari koefisien. Meskipun mereka adalah fungsi linier dari data masa lalu. Jadi, koefisien pada model ARIMA yang mencakup kesalahan tertinggal harus diestimasi dengan metode optimasi nonlinier (8220 climb-climbing8221) daripada hanya dengan memecahkan sistem persamaan. Akronim ARIMA adalah singkatan Auto-Regressive Integrated Moving Average. Lags dari rangkaian stasioner dalam persamaan peramalan disebut istilah quotautoregressivequot, kelambatan kesalahan perkiraan disebut istilah kuotasi rata-rata quotmoving, dan deret waktu yang perlu dibedakan untuk dijadikan stasioner disebut versi seri integimental dari seri stasioner. Model random-walk dan random-trend, model autoregresif, dan model smoothing eksponensial adalah kasus khusus model ARIMA. Model ARIMA nonseasonal diklasifikasikan sebagai model quotARIMA (p, d, q) quot, di mana: p adalah jumlah istilah autoregresif, d adalah jumlah perbedaan nonseason yang diperlukan untuk stasioneritas, dan q adalah jumlah kesalahan perkiraan yang tertinggal dalam Persamaan prediksi Persamaan peramalan dibangun sebagai berikut. Pertama, izinkan y menunjukkan perbedaan D dari Y. yang berarti: Perhatikan bahwa perbedaan kedua Y (kasus d2) bukanlah selisih 2 periode yang lalu. Sebaliknya, ini adalah perbedaan pertama perbedaan dari perbedaan pertama. Yang merupakan analog diskrit dari derivatif kedua, yaitu percepatan lokal dari seri daripada tren lokalnya. Dalam hal y. Persamaan peramalan umum adalah: Di sini parameter rata-rata bergerak (9528217s) didefinisikan sehingga tanda-tanda mereka negatif dalam persamaan, mengikuti konvensi yang diperkenalkan oleh Box dan Jenkins. Beberapa penulis dan perangkat lunak (termasuk bahasa pemrograman R) mendefinisikannya sehingga mereka memiliki tanda plus. Bila nomor aktual dicolokkan ke dalam persamaan, tidak ada ambiguitas, tapi penting untuk mengetahui konvensi mana yang digunakan perangkat lunak Anda saat Anda membaca hasilnya. Seringkali parameter dilambangkan dengan AR (1), AR (2), 8230, dan MA (1), MA (2), 8230 dll. Untuk mengidentifikasi model ARIMA yang sesuai untuk Y. Anda memulai dengan menentukan urutan differencing (D) perlu membuat stasioner seri dan menghilangkan fitur musiman musiman, mungkin bersamaan dengan transformasi yang menstabilkan varians seperti penebangan atau pengapuran. Jika Anda berhenti pada titik ini dan meramalkan bahwa rangkaian yang dibedakan konstan, Anda hanya memiliki model berjalan acak atau acak acak. Namun, rangkaian stationarized masih memiliki kesalahan autokorelasi, menunjukkan bahwa beberapa jumlah istilah AR (p 8805 1) dan beberapa persyaratan MA (q 8805 1) juga diperlukan dalam persamaan peramalan. Proses penentuan nilai p, d, dan q yang terbaik untuk seri waktu tertentu akan dibahas di bagian catatan selanjutnya (yang tautannya ada di bagian atas halaman ini), namun pratinjau beberapa jenis Model ARIMA nonseasonal yang biasa ditemui diberikan di bawah ini. ARIMA (1,0,0) model autoregresif orde pertama: jika seri stasioner dan autokorelasi, mungkin dapat diprediksi sebagai kelipatan dari nilai sebelumnya, ditambah konstanta. Persamaan peramalan dalam kasus ini adalah 8230 yang Y regresi pada dirinya sendiri tertinggal oleh satu periode. Ini adalah model konstanta 8220ARIMA (1,0,0) constant8221. Jika mean Y adalah nol, maka istilah konstan tidak akan disertakan. Jika koefisien kemiringan 981 1 positif dan kurang dari 1 besarnya (harus kurang dari 1 jika Y adalah stasioner), model tersebut menggambarkan perilaku rata-rata pada nilai periode berikutnya yang diperkirakan akan menjadi 981 1 kali sebagai Jauh dari mean sebagai nilai periode ini. Jika 981 1 negatif, ia memprediksi perilaku rata-rata dengan bergantian tanda, yaitu juga memprediksi bahwa Y akan berada di bawah rata-rata periode berikutnya jika berada di atas rata-rata periode ini. Dalam model autoregresif orde kedua (ARIMA (2,0,0)), akan ada istilah Y t-2 di sebelah kanan juga, dan seterusnya. Bergantung pada tanda dan besaran koefisien, model ARIMA (2,0,0) bisa menggambarkan sistem yang pembalikan rata-rata terjadi dengan mode sinusoidal oscillating, seperti gerak massa pada pegas yang mengalami guncangan acak. . ARIMA (0,1,0) berjalan acak: Jika seri Y tidak stasioner, model yang paling sederhana untuk model ini adalah model jalan acak, yang dapat dianggap sebagai kasus pembatas model AR (1) dimana autoregresif Koefisien sama dengan 1, yaitu deret dengan reversi mean yang jauh lebih lambat. Persamaan prediksi untuk model ini dapat ditulis sebagai: di mana istilah konstan adalah perubahan periode-ke-periode rata-rata (yaitu drift jangka panjang) di Y. Model ini dapat dipasang sebagai model regresi yang tidak mencegat dimana Perbedaan pertama Y adalah variabel dependen. Karena hanya mencakup perbedaan nonseasonal dan istilah konstan, model ini diklasifikasikan sebagai model quotARIMA (0,1,0) dengan konstan. Model acak-berjalan-tanpa-undian akan menjadi ARIMA (0,1, 0) model tanpa ARIMA konstan (1,1,0) membedakan model autoregresif orde pertama: Jika kesalahan model jalan acak autokorelasi, mungkin masalahnya dapat diperbaiki dengan menambahkan satu lag variabel dependen ke persamaan prediksi- -yaitu Dengan mengundurkan diri dari perbedaan pertama Y pada dirinya sendiri yang tertinggal satu periode. Ini akan menghasilkan persamaan prediksi berikut: yang dapat diatur ulang ke Ini adalah model autoregresif orde pertama dengan satu urutan perbedaan nonseasonal dan istilah konstan - yaitu. Sebuah model ARIMA (1,1,0). ARIMA (0,1,1) tanpa perataan eksponensial sederhana: Strategi lain untuk memperbaiki kesalahan autokorelasi dalam model jalan acak disarankan oleh model pemulusan eksponensial sederhana. Ingatlah bahwa untuk beberapa rangkaian waktu nonstasioner (misalnya yang menunjukkan fluktuasi yang bising di sekitar rata-rata yang bervariasi secara perlahan), model jalan acak tidak berjalan sebaik rata-rata pergerakan nilai masa lalu. Dengan kata lain, daripada mengambil pengamatan terbaru sebagai perkiraan pengamatan berikutnya, lebih baik menggunakan rata-rata beberapa pengamatan terakhir untuk menyaring kebisingan dan memperkirakan secara lebih akurat mean lokal. Model pemulusan eksponensial sederhana menggunakan rata-rata pergerakan rata-rata tertimbang eksponensial untuk mencapai efek ini. Persamaan prediksi untuk model pemulusan eksponensial sederhana dapat ditulis dalam sejumlah bentuk ekuivalen matematis. Salah satunya adalah bentuk koreksi yang disebut 8220error correction8221, dimana ramalan sebelumnya disesuaikan dengan kesalahan yang dibuatnya: Karena e t-1 Y t-1 - 374 t-1 menurut definisinya, ini dapat ditulis ulang sebagai : Yang merupakan persamaan peramalan ARIMA (0,1,1) - tanpa perkiraan konstan dengan 952 1 1 - 945. Ini berarti bahwa Anda dapat menyesuaikan smoothing eksponensial sederhana dengan menentukannya sebagai model ARIMA (0,1,1) tanpa Konstan, dan perkiraan koefisien MA (1) sesuai dengan 1-minus-alpha dalam formula SES. Ingatlah bahwa dalam model SES, usia rata-rata data dalam prakiraan 1 periode adalah 1 945. yang berarti bahwa mereka cenderung tertinggal dari tren atau titik balik sekitar 1 945 periode. Dengan demikian, rata-rata usia data dalam prakiraan 1-periode-depan model ARIMA (0,1,1) - tanpa model konstan adalah 1 (1 - 952 1). Jadi, misalnya, jika 952 1 0,8, usia rata-rata adalah 5. Karena 952 1 mendekati 1, model ARIMA (0,1,1) -tanpa-konstan menjadi rata-rata bergerak jangka-panjang, dan sebagai 952 1 Pendekatan 0 menjadi model random-walk-without-drift. Apa cara terbaik untuk memperbaiki autokorelasi: menambahkan istilah AR atau menambahkan istilah MA Dalam dua model sebelumnya yang dibahas di atas, masalah kesalahan autokorelasi dalam model jalan acak diperbaiki dengan dua cara yang berbeda: dengan menambahkan nilai lag dari seri yang berbeda Ke persamaan atau menambahkan nilai tertinggal dari kesalahan perkiraan. Pendekatan mana yang terbaik Aturan praktis untuk situasi ini, yang akan dibahas lebih rinci nanti, adalah bahwa autokorelasi positif biasanya paling baik ditangani dengan menambahkan istilah AR pada model dan autokorelasi negatif biasanya paling baik ditangani dengan menambahkan MA istilah. Dalam deret waktu bisnis dan ekonomi, autokorelasi negatif sering muncul sebagai artefak perbedaan. (Secara umum, differencing mengurangi autokorelasi positif dan bahkan dapat menyebabkan perubahan dari autokorelasi positif ke negatif.) Jadi, model ARIMA (0,1,1), di mana perbedaannya disertai dengan istilah MA, lebih sering digunakan daripada Model ARIMA (1,1,0). ARIMA (0,1,1) dengan perataan eksponensial sederhana konstan dengan pertumbuhan: Dengan menerapkan model SES sebagai model ARIMA, Anda benar-benar mendapatkan fleksibilitas. Pertama-tama, perkiraan koefisien MA (1) dibiarkan negatif. Ini sesuai dengan faktor pemulusan yang lebih besar dari 1 dalam model SES, yang biasanya tidak diizinkan oleh prosedur pemasangan model SES. Kedua, Anda memiliki pilihan untuk menyertakan istilah konstan dalam model ARIMA jika Anda mau, untuk memperkirakan tren nol-rata-rata. Model ARIMA (0,1,1) dengan konstanta memiliki persamaan prediksi: Prakiraan satu periode dari model ini secara kualitatif serupa dengan model SES, kecuali bahwa lintasan perkiraan jangka panjang biasanya adalah Garis miring (kemiringannya sama dengan mu) dan bukan garis horizontal. ARIMA (0,2,1) atau (0,2,2) tanpa pemulusan eksponensial linier konstan: Model pemulusan eksponensial linier adalah model ARIMA yang menggunakan dua perbedaan nonseasonal dalam hubungannya dengan persyaratan MA. Perbedaan kedua dari seri Y bukan hanya perbedaan antara Y dan dirinya tertinggal dua periode, namun ini adalah perbedaan pertama dari perbedaan pertama - i. Perubahan perubahan Y pada periode t. Jadi, perbedaan kedua Y pada periode t sama dengan (Y t - Y t-1) - (Y t-1 - Y t-2) Y t - 2Y t-1 Y t-2. Perbedaan kedua dari fungsi diskrit sama dengan turunan kedua dari fungsi kontinu: ia mengukur kuotasi kuadrat atau quotcurvaturequot dalam fungsi pada suatu titik waktu tertentu. Model ARIMA (0,2,2) tanpa konstan memprediksi bahwa perbedaan kedua dari rangkaian sama dengan fungsi linier dari dua kesalahan perkiraan terakhir: yang dapat disusun ulang sebagai: di mana 952 1 dan 952 2 adalah MA (1) dan MA (2) koefisien. Ini adalah model pemulusan eksponensial linear umum. Dasarnya sama dengan model Holt8217s, dan model Brown8217s adalah kasus khusus. Ini menggunakan rata-rata pergerakan tertimbang eksponensial untuk memperkirakan tingkat lokal dan tren lokal dalam rangkaian. Perkiraan jangka panjang dari model ini menyatu dengan garis lurus yang kemiringannya bergantung pada tren rata-rata yang diamati menjelang akhir rangkaian. ARIMA (1,1,2) tanpa perataan eksponensial eksponensial yang terfragmentasi. Model ini diilustrasikan dalam slide yang menyertainya pada model ARIMA. Ini mengekstrapolasikan tren lokal di akhir seri namun meratakannya pada cakrawala perkiraan yang lebih panjang untuk memperkenalkan catatan konservatisme, sebuah praktik yang memiliki dukungan empiris. Lihat artikel di quotWhy the Damped Trend karyaquot oleh Gardner dan McKenzie dan artikel quotGolden Rulequot oleh Armstrong dkk. Untuk rinciannya Umumnya dianjurkan untuk berpegang pada model di mana setidaknya satu dari p dan q tidak lebih besar dari 1, yaitu jangan mencoba menyesuaikan model seperti ARIMA (2,1,2), karena hal ini cenderung menyebabkan overfitting. Dan isu-isu kuotom-faktorquot yang dibahas secara lebih rinci dalam catatan tentang struktur matematis model ARIMA. Implementasi Spreadsheet: Model ARIMA seperti yang dijelaskan di atas mudah diterapkan pada spreadsheet. Persamaan prediksi hanyalah persamaan linier yang mengacu pada nilai-nilai masa lalu dari rangkaian waktu asli dan nilai kesalahan masa lalu. Dengan demikian, Anda dapat membuat spreadsheet peramalan ARIMA dengan menyimpan data di kolom A, rumus peramalan pada kolom B, dan kesalahan (data minus prakiraan) di kolom C. Rumus peramalan pada sel biasa di kolom B hanya akan menjadi Sebuah ekspresi linier yang mengacu pada nilai-nilai pada baris-kolom sebelumnya dari kolom A dan C, dikalikan dengan koefisien AR atau MA yang sesuai yang disimpan di sel-sel di tempat lain pada spreadsheet. SIFAT KODE Sifat Pengenalan Kode Saya dua dengan alam. Woody Allen Inilah kita: awal. Hampir awal Jika sudah lama sejak Anda menyelesaikan pemrograman di Processing (atau matematika, dalam hal ini), pendahuluan ini akan membawa pikiran Anda kembali ke pemikiran komputasi sebelum kita mendekati beberapa materi yang lebih sulit dan kompleks. Pada Bab 1, akan membahas tentang konsep vektor dan bagaimana hal itu akan menjadi blok bangunan untuk simulasi gerakan di sepanjang buku ini. Tapi sebelum kita mengambil langkah itu, mari kita pikirkan apa artinya sesuatu untuk sekadar bergerak di sekitar layar. Mari kita mulai dengan salah satu simulasi motion motion yang paling terkenal dan paling sederhana. I.1 Jalan Acak Bayangkan Anda berdiri di tengah balok keseimbangan. Setiap sepuluh detik, Anda membalik koin. Kepala, maju selangkah. Ekor, mundur selangkah. Ini adalah jalan walka acak yang didefinisikan sebagai rangkaian langkah acak. Melangkah dari balok keseimbangan dan ke lantai, Anda bisa melakukan random walk dalam dua dimensi dengan membalik koin yang sama dua kali dengan hasil sebagai berikut: Ya, ini mungkin tampak seperti algoritma yang sangat tidak canggih. Kendati demikian, jalan acak bisa digunakan untuk memodelkan fenomena yang terjadi di dunia nyata, dari pergerakan molekul dalam gas hingga perilaku penjudi menghabiskan satu hari di kasino. Bagi kami, kami memulai buku ini untuk belajar berjalan acak dengan tiga tujuan. Kita perlu meninjau kembali konsep pemrograman yang berpusat pada pemrograman berorientasi bookobject ini. Walker acak akan berfungsi sebagai template untuk bagaimana kita akan menggunakan desain berorientasi objek untuk membuat hal-hal yang bergerak di sekitar jendela Pengolahan. Jalan acak menghasut dua pertanyaan yang akan kita tanyakan berkali-kali di sepanjang buku ini: Bagaimana kita mendefinisikan peraturan yang mengatur perilaku objek kita dan kemudian, Bagaimana kita menerapkan peraturan ini dalam Pengolahan Sepanjang buku ini, yang secara berkala dibutuhkan secara berkala. Pemahaman dasar tentang keacakan, probabilitas, dan kebisingan Perlin. Jalan acak akan memungkinkan kita untuk menunjukkan beberapa poin penting yang akan berguna nanti. I.2 The Random Walker Class Mari kita tinjau sedikit pemrograman berorientasi objek (OOP) terlebih dahulu dengan membangun objek Walker. Ini hanya akan menjadi tinjauan sepintas. Jika Anda belum pernah bekerja dengan OOP sebelumnya, Anda mungkin menginginkan agar ID yang lebih komprehensif menyarankan berhenti di sini dan meninjau dasar-dasar situs Pemrosesan sebelum melanjutkan. Objek dalam Processing adalah entitas yang memiliki data dan fungsionalitas. Kami mencari untuk merancang objek Walker yang melacak data keduanya (di tempat yang ada di layar) dan memiliki kemampuan untuk melakukan tindakan tertentu (seperti menggambar sendiri atau mengambil langkah). Kelas adalah template untuk membangun contoh objek yang sebenarnya. Pikirkan kelas sebagai pemotong kuki objek adalah kue itu sendiri. Mari kita mulai dengan mendefinisikan kelas Walker yang artinya menjadi objek Walker. Walker hanya membutuhkan dua buah nomor data untuk lokasi x-nya dan satu untuk lokasi y-nya. Objek memiliki data. Karena kita hanya menggambar latar belakang sekali di setup (). Daripada membersihkannya terus menerus setiap kali melalui draw (). Kita melihat jejak jalan acak di jendela Pengolahan kita. Browser Anda tidak mendukung tag kanvas. Ada beberapa perbaikan yang bisa kami lakukan pada walker acak. Untuk satu, pilihan langkah Walker ini terbatas pada empat pilihan, turun, kiri, dan kanan. Tapi piksel yang ada di jendela memiliki delapan kemungkinan tetangga, dan kemungkinan kesembilan adalah tinggal di tempat yang sama. Untuk menerapkan objek Walker yang bisa masuk ke piksel tetangga (atau tinggal diam), kita bisa memilih angka antara 0 dan 8 (sembilan pilihan yang mungkin). Namun, cara yang lebih efisien untuk menulis kode adalah memilih dari tiga langkah yang mungkin di sepanjang sumbu x (-1, 0, atau 1) dan tiga kemungkinan langkah di sepanjang sumbu y. Hasil -1, 0, atau 1 Semua variasi pada random random random ini memiliki satu kesamaan: setiap saat, probabilitas bahwa Walker akan mengambil langkah dalam arah tertentu sama dengan probabilitas Walker Akan mengambil langkah ke segala arah. Dengan kata lain, jika ada empat kemungkinan langkah, ada 1 dari 4 (atau 25) kemungkinan Walker akan mengambil langkah yang diberikan. Dengan sembilan kemungkinan langkahnya, ada peluang 1 dari 9 (atau 11,1). Nyaman, ini adalah bagaimana fungsi random () berfungsi. Prosesing generator bilangan acak (yang beroperasi di belakang layar) menghasilkan apa yang dikenal sebagai distribusi angka yang seragam. Kita dapat menguji distribusi ini dengan sketsa Pengolahan yang dihitung setiap kali nomor acak dipetik dan menampilkannya sebagai tinggi persegi panjang. Browser Anda tidak mendukung tag kanvas. Contoh I.2: Distribusi bilangan acak Array untuk melacak seberapa sering nomor acak dipetik Pilih nomor acak dan tambahkan jumlahnya. Graphing hasil Hasil tangkapan layar di atas menunjukkan hasil sketsa yang berjalan selama beberapa menit. Perhatikan bagaimana masing-masing batang grafik berbeda tingginya. Ukuran sampel kami (yaitu jumlah nomor acak yang dipilih) agak kecil dan ada beberapa perbedaan waktu, di mana jumlah tertentu dipilih lebih sering. Seiring waktu, dengan generator bilangan acak yang bagus, ini malah akan padam. Nomor Pseudo-Random Angka acak yang kita dapatkan dari fungsi random () tidak benar-benar acak sehingga dikenal sebagai pseudo-random. Mereka adalah hasil dari fungsi matematis yang mensimulasikan keacakan. Fungsi ini akan menghasilkan pola dari waktu ke waktu, namun jangka waktu yang begitu lama sehingga untuk kita, sama baiknya dengan keacakan murni Latihan I.1 Buat walker acak yang memiliki kecenderungan untuk bergerak ke bawah dan ke kanan. (Nah lihat solusinya di bagian berikutnya.) I.3 Distribusi Probabilitas dan Non-Seragam Ingat saat Anda pertama kali memulai pemrograman dalam Pengolahan Mungkin Anda ingin menggambar banyak lingkaran di layar. Jadi Anda berkata pada diri sendiri: Oh, saya tahu. Saya menggambar semua lingkaran ini di lokasi acak, dengan ukuran acak dan warna acak. Dalam sistem grafis komputer, sering termudah untuk menaburkan sistem dengan keacakan. Dalam buku ini, bagaimanapun, mencari untuk membangun sistem yang dimodelkan pada apa yang kita lihat di alam. Defaulting to randomness bukanlah solusi yang sangat bijaksana untuk masalah desain secara khusus, jenis masalah yang melibatkan pembuatan simulasi organik atau alami. Dengan beberapa trik, kita bisa mengubah cara kita menggunakan random () untuk menghasilkan distribusi bilangan random yang tidak seragam. Ini akan berguna di seluruh buku ini saat kita melihat sejumlah skenario yang berbeda. Ketika kita memeriksa algoritma genetika, misalnya, perlu sebuah metodologi untuk melakukan seleksi dimana anggota populasi kita harus dipilih untuk menyerahkan DNA mereka ke generasi berikutnya. Ingatlah konsep survival of the fittest Mari kita katakan bahwa kita memiliki populasi monyet yang berkembang. Tidak setiap monyet akan memiliki kesempatan yang sama untuk bereproduksi. Untuk mensimulasikan evolusi Darwin, kita tidak bisa hanya memilih dua ekor monyet acak untuk menjadi orang tua. Kami membutuhkan yang lebih bugar untuk lebih cenderung dipilih. Kita perlu mendefinisikan probabilitas fittest. Misalnya, seekor monyet yang sangat cepat dan kuat mungkin memiliki kesempatan untuk berproduksi, sementara yang lebih lemah hanya memiliki 10 peluang. Mari kita berhenti sejenak di sini dan melihat kemungkinan prinsip dasar. Pertama, teliti kemungkinan kejadian tunggal, yaitu kemungkinan peristiwa tertentu akan terjadi. Jika Anda memiliki sistem dengan sejumlah kemungkinan hasil, probabilitas terjadinya kejadian tertentu sama dengan jumlah hasil yang memenuhi syarat karena peristiwa tersebut dibagi dengan jumlah total semua hasil yang mungkin. Sebuah lemparan koin adalah contoh sederhana hanya memiliki dua kemungkinan hasil, kepala atau ekor. Hanya ada satu cara untuk membalikkan kepala. Kemungkinan koin itu akan menghasilkan kepala, oleh karena itu, terbagi dua: 12 atau 50. Ambillah setumpuk lima puluh dua kartu. Probabilitas menggambar ace dari dek itu adalah: jumlah kartu as pada kartu 4 52 0,077 Probabilitas menggambar berlian adalah: jumlah jumlah kartu berlian 13 52 0.25 25 Kita juga dapat menghitung probabilitas beberapa kejadian yang terjadi secara berurutan. . Untuk melakukan ini, kita hanya memperbanyak probabilitas individu dari setiap peristiwa. Kemungkinan koin yang membalikkan kepala tiga kali berturut-turut adalah: (12) (12) (12) 18 (atau 0,125) yang berarti bahwa koin akan menghasilkan tiga kali berturut-turut satu dari delapan kali (setiap kali Menjadi tiga lemparan). Latihan I.2 Berapakah probabilitas menggambar dua ace berturut-turut dari dek lima puluh dua kartu Ada beberapa cara di mana kita dapat menggunakan fungsi acak () dengan probabilitas dalam kode. Salah satu tekniknya adalah mengisi sebuah array dengan pilihan nomor yang berulang kali memilih nomor acak dari array tersebut dan menghasilkan event berdasarkan pilihan tersebut. 1 disimpan dalam array dua kali, sehingga lebih cenderung dipetik. Latihan I.3 Buat walker acak dengan probabilitas dinamis. Sebagai contoh, dapatkah Anda memberi kesempatan 50 bergerak ke arah mouse I.4 Distribusi Normal dari Bilangan Acak Mari kembali ke populasi monyet Pengolahan yang disimulasikan. Program Anda menghasilkan seribu objek Monyet, masing-masing dengan nilai tinggi antara 200 dan 300 (karena ini adalah dunia monyet yang memiliki ketinggian antara 200 dan 300 piksel). Apakah ini menggambarkan secara akurat ketinggian makhluk dunia nyata Pikirkan trotoar yang ramai di New York City. Pilih orang dari jalanan dan mungkin tampak bahwa tinggi badan mereka acak. Meskipun demikian, bukan jenis acak yang acak () menghasilkan. Tinggi masyarakat tidak terdistribusi secara merata ada lebih banyak orang dengan ketinggian rata-rata daripada yang sangat tinggi atau sangat pendek. Untuk mensimulasikan alam, kita mungkin menginginkan monyet kita memiliki tinggi rata-rata (250 piksel), namun tetap memungkinkannya untuk berada pada kondisi sangat pendek atau sangat tinggi. Distribusi nilai yang berkelompok rata-rata (disebut rata-rata) dikenal sebagai distribusi normal. Hal ini juga disebut distribusi Gaussian (dinamai untuk matematikawan Carl Friedrich Gauss) atau, jika Anda orang Prancis, distribusi Laplacian (dinamai untuk Pierre-Simon Laplace). Kedua matematikawan tersebut bekerja bersamaan pada awal abad kesembilan belas untuk menentukan distribusi semacam itu. Ketika Anda membuat grafik distribusi, Anda mendapatkan sesuatu yang terlihat seperti berikut, yang secara informal dikenal sebagai kurva bel: Kurva dihasilkan oleh fungsi matematis yang mendefinisikan probabilitas nilai tertentu yang terjadi sebagai fungsi mean (sering ditulis sebagai, Huruf Yunani mu) dan standar deviasi (, sigma huruf Yunani). Maksudnya cukup mudah dimengerti. Dalam kasus nilai tinggi kita antara 200 dan 300, Anda mungkin memiliki arti intuitif rata-rata (yaitu rata-rata) sebagai 250. Namun, bagaimana jika saya mengatakan bahwa standar deviasi adalah 3 atau 15 Apa artinya ini bagi Angka Grafik di atas seharusnya memberi kita petunjuk. Grafik di sebelah kiri menunjukkan distribusi dengan standar deviasi yang sangat rendah, dimana sebagian besar nilai cluster berada di sekitar mean. Grafik di sebelah kanan menunjukkan deviasi standar yang lebih tinggi, dimana nilainya lebih merata dari rata-rata. Angka tersebut bekerja sebagai berikut: Dengan populasi, 68 dari jumlah populasi tersebut akan memiliki nilai dalam kisaran satu standar deviasi dari mean, 98 dalam dua standar deviasi, dan 99,7 dalam tiga standar deviasi. Dengan standar deviasi 5 piksel, hanya 0,3 dari ketinggian monyet yang kurang dari 235 piksel (tiga standar deviasi di bawah rata-rata 250) atau lebih besar dari 265 piksel (tiga standar deviasi di atas rata-rata 250). Menghitung Deviasi Rata-rata dan Standar Pertimbangkan kelas dari sepuluh siswa yang menerima skor berikut (dari 100) pada tes: 85, 82, 88, 73, 83 Standar deviasi dihitung sebagai Akar kuadrat rata-rata kuadrat penyimpangan di sekitar rata-rata. Dengan kata lain, ambil perbedaan dari mean untuk setiap orang dan buktikan itu (varians). Hitung rata-rata semua nilai ini dan ambil akar kuadrat sebagai standar deviasi. Deviasi standar adalah akar kuadrat dari varians rata-rata: 15.13 Beruntung bagi kita, untuk menggunakan distribusi angka acak normal dalam sketsa Pengolahan, kita tidak perlu melakukan perhitungan ini sendiri. Sebagai gantinya, kita bisa memanfaatkan kelas yang dikenal sebagai Random. Yang kita dapatkan secara gratis sebagai bagian dari perpustakaan Java default yang diimpor ke Processing (lihat JavaDocs untuk informasi lebih lanjut). Untuk menggunakan kelas Acak, pertama kita harus mendeklarasikan variabel tipe Random dan buat objek Acak di setup (). Kami menggunakan generator nama variabel karena yang kami miliki di sini dapat dianggap sebagai generator bilangan acak. Jika kita ingin menghasilkan bilangan acak dengan distribusi normal (atau Gaussian) setiap kali kita berlari melalui draw (). Semudah memanggil fungsi nextGaussian (). Meminta nomor acak Gaussian. (Catatan nextGaussian () mengembalikan nilai ganda dan harus dikonversi menjadi float.) Heres the thing. Apa yang seharusnya kita lakukan dengan nilai ini Bagaimana jika kita ingin menggunakannya, misalnya, untuk menetapkan posisi x dari bentuk yang kita gambar di layar Fungsi nextGaussian () mengembalikan distribusi normal bilangan acak dengan parameter berikut: Rata-rata nol dan standar deviasi satu. Katakanlah kita menginginkan rata-rata 320 (piksel horisontal tengah di jendela dengan lebar 640) dan standar deviasi 60 piksel. Kita bisa menyesuaikan nilainya dengan parameter kita dengan mengalikannya dengan standar deviasi dan menambahkan mean. Browser Anda tidak mendukung tag kanvas. Contoh I.4: Distribusi Gaussian Perhatikan bahwa nextGaussian () mengembalikan nilai ganda. Kalikan dengan standar deviasi dan tambahkan meannya. Dengan menggambar elips di atas satu sama lain dengan sedikit transparansi, kita benar-benar bisa melihat distribusinya. Tempat paling terang berada di dekat pusat, di mana sebagian besar klaster nilai, tapi seringkali lingkaran-lingkarannya ditarik lebih jauh ke kanan atau kiri pusat. Latihan I.4 Pertimbangkan simulasi pemercikan cat yang ditarik sebagai kumpulan titik-titik berwarna. Sebagian besar kelompok cat berada di sekitar lokasi sentral, namun beberapa titik melayang menuju tepinya. Dapatkah Anda menggunakan distribusi angka acak yang normal untuk menghasilkan lokasi titik-titik itu? Dapatkah Anda juga menggunakan distribusi normal bilangan acak untuk menghasilkan palet warna. Latihan I.5 Jalan acak Gaussian didefinisikan sebagai satu di mana ukuran langkah (bagaimana Jauh objek bergerak dalam arah tertentu) dihasilkan dengan distribusi normal. Terapkan variasi jalan acak kami ini. I.5 Distribusi Kustom dari Bilangan Acak Akan tiba saatnya dalam hidup Anda bila Anda tidak menginginkan distribusi nilai acak yang seragam, atau yang Gaussian. Mari membayangkan sejenak bahwa Anda adalah pejalan kaki acak untuk mencari makanan. Bergerak secara acak mengelilingi sebuah ruangan nampaknya merupakan strategi yang masuk akal untuk menemukan sesuatu untuk dimakan. Lagi pula, Anda tidak tahu di mana makanan itu, jadi sebaiknya Anda mencari secara acak sampai Anda menemukannya. Masalahnya, seperti yang mungkin Anda perhatikan, adalah bahwa pejalan kaki acak kembali ke lokasi yang pernah dikunjungi berkali-kali (ini dikenal dengan oversampling). Salah satu strategi untuk menghindari masalah semacam itu adalah, seringkali, mengambil langkah yang sangat besar. Hal ini memungkinkan alat bantu jalan untuk mencari makan secara acak di sekitar lokasi tertentu sementara secara berkala melompat sangat jauh untuk mengurangi jumlah oversampling. Variasi berjalan acak ini (dikenal sebagai penerbangan Lvy) memerlukan seperangkat probabilitas khusus. Meskipun bukan implementasi yang tepat dari penerbangan Lvy, kita bisa menyebutkan distribusi probabilitas sebagai berikut: semakin lama langkahnya, semakin kecil kemungkinannya untuk memilih langkah yang lebih pendek, semakin besar kemungkinannya. Sebelumnya dalam prolog ini, kita melihat bahwa kita dapat menghasilkan distribusi probabilitas khusus dengan mengisi sebuah array dengan nilai (beberapa diduplikasi sehingga mereka akan dipetik lebih sering) atau dengan menguji hasil random (). Kita bisa menerapkan penerbangan Lvy dengan mengatakan bahwa ada 1 peluang walker mengambil langkah besar. Sebuah kesempatan untuk mengambil langkah besar Namun, ini mengurangi probabilitas ke sejumlah opsi yang tetap. Bagaimana jika kita ingin membuat keputusan yang lebih umum, angka yang lebih tinggi, kemungkinan besar akan dipetik 3.145 akan lebih mungkin dipetik dari 3.144, bahkan jika kemungkinan itu hanya sedikit lebih besar. Dengan kata lain, jika x adalah bilangan acak, kita bisa memetakan kemungkinan pada sumbu y dengan y x. Jika kita bisa mengetahui bagaimana menghasilkan distribusi bilangan acak sesuai dengan grafik di atas, maka kita akan dapat menerapkan metodologi yang sama ke kurva mana pun yang kita punya rumusnya. Salah satu solusinya adalah memilih dua nomor acak, bukan satu. Nomor acak pertama hanya itu, nomor acak. Yang kedua, bagaimanapun, adalah apa yang baik memanggil nilai acak kualifikasi. Ini akan memberitahu kita apakah akan menggunakan yang pertama atau membuangnya dan memilih yang lain. Angka yang memiliki kualifikasi waktu lebih mudah akan dipetik lebih sering, dan angka yang jarang lolos akan dipetik jarang. Berikut adalah langkah-langkahnya (untuk saat ini, mari pertimbangkan hanya nilai acak antara 0 dan 1): Pilih nomor acak: R1 Hitung probabilitas P yang harus memenuhi R1. Mari kita coba: P R1. Pilih nomor acak yang lain: R2 Jika R2 kurang dari P, maka kita telah menemukan nomor kitaR1 Jika R2 tidak kurang dari P, kembali ke langkah 1 dan mulai dari awal lagi. Di sini kita mengatakan bahwa kemungkinan bahwa nilai acak akan memenuhi syarat sama dengan nomor acak itu sendiri. Katakanlah kita memilih 0,1 untuk R1. Ini berarti bahwa R1 akan memiliki 10 peluang lolos. Jika kita memilih 0,83 untuk R1 maka akan memiliki peluang lolos ke 83. Semakin tinggi jumlahnya, semakin besar kemungkinan kita akan benar-benar menggunakannya. Berikut adalah sebuah fungsi (dinamai dengan metode Monte Carlo, yang dinamai untuk kasino Monte Carlo) yang menerapkan algoritma di atas, mengembalikan nilai acak antara 0 dan 1. Kami melakukan ini selamanya sampai kami menemukan nilai acak kualifikasi. Latihan I.6 Gunakan distribusi probabilitas kustom untuk memvariasikan ukuran langkah yang diambil oleh walker acak. Ukuran langkah dapat ditentukan dengan mempengaruhi kisaran nilai yang dipilih. Dapatkah Anda memetakan probonitas eksponensial. Membuat kemungkinan bahwa nilai diambil sama dengan nilai kuadrat Distribusi seragam ukuran langkah. Ubahlah ini (Kemudian lihat juga bagaimana melakukan ini dengan lebih efisien menggunakan vektor.) I.6 Perlin Noise (Pendekatan yang Lebih Lembut) Generator bilangan acak yang baik menghasilkan angka yang tidak memiliki hubungan dan tidak menunjukkan pola yang jelas. Saat kita mulai melihat, sedikit keacakan bisa menjadi hal yang baik saat memprogram perilaku organik dan manusiawi. Namun, keacakan sebagai prinsip pembimbing tunggal belum tentu alami. Algoritma yang dikenal sebagai Perlin noise, dinamai untuk penemu Ken Perlin, memperhitungkan konsep ini. Perlin mengembangkan fungsi noise saat mengerjakan film Tron asli di awal tahun 1980an, dirancang untuk menciptakan tekstur prosedural untuk efek yang dihasilkan komputer. Pada tahun 1997 Perlin memenangkan Academy Award dalam pencapaian teknis untuk pekerjaan ini. Suara Perlin dapat digunakan untuk menghasilkan berbagai efek dengan kualitas alami, seperti awan, lansekap, dan tekstur berpola seperti marmer. Suara Perlin memiliki penampilan yang lebih organik karena menghasilkan rangkaian bilangan pseudo-random yang dipesan secara alami (mulus). Grafik di sebelah kiri di bawah menunjukkan kebisingan Perlin dari waktu ke waktu, dengan sumbu x yang mewakili catatan waktu kelancaran kurva. Grafik di sebelah kanan menunjukkan bilangan acak murni dari waktu ke waktu. (Kode untuk menghasilkan grafik ini tersedia dalam unduhan buku yang menyertainya.) Gambar I.5: Gambar Kebisingan I.6: Pemrosesan Acak memiliki implementasi algoritma perlin noise yang terintegrasi: fungsi noise (). Fungsi noise () membutuhkan satu, dua, atau tiga argumen, karena noise dihitung dalam satu, dua, atau tiga dimensi. Mari kita mulai dengan melihat suara satu dimensi. Noise Detail Pemrosesan referensi kebisingan memberitahu kita bahwa noise dihitung selama beberapa oktaf. Memanggil fungsi noiseDetail () akan mengubah jumlah oktaf dan kepentingannya relatif terhadap satu sama lain. Hal ini pada gilirannya mengubah bagaimana fungsi noise berperilaku. Kuliah online oleh Ken Perlin memungkinkan Anda belajar lebih banyak tentang bagaimana kebisingan bekerja dari Perlin sendiri. Pertimbangkan menggambar lingkaran di jendela Pengolahan kami di lokasi x acak. Sebuah x-lokasi acak Sekarang, alih-alih lokasi x acak, kami menginginkan lokasi x-noise Perlin yang lebih halus. Anda mungkin berpikir bahwa semua yang perlu Anda lakukan adalah mengganti acak () dengan noise (). Yaitu lokasi x-noise Sementara secara konseptual, inilah yang ingin kita dokumentulasi dengan nilai x yang berkisar antara 0 dan lebarnya sesuai dengan Perlin noisethis bukanlah implementasi yang benar. Sedangkan argumen pada fungsi random () menentukan kisaran nilai antara minimum dan maksimum, noise () tidak bekerja seperti ini. Sebaliknya, kisaran output tetap selalu mengembalikan nilai antara 0 dan 1. Nah, lihat sebentar lagi kita bisa mengatasinya dengan mudah dengan fungsi Processings map (), tapi pertama-tama kita harus memeriksa apa sebenarnya noise () yang mengharapkan kita untuk lulus Sebagai sebuah argumen. Kita bisa memikirkan satu dimensi Perlin noise sebagai urutan nilai linear dari waktu ke waktu. Sebagai contoh: Seberapa cepat kenaikan kita juga mempengaruhi kelancaran suara. Jika kita melakukan lompatan besar pada waktunya, maka kita akan melompat maju dan nilainya akan lebih acak. Coba jalankan kode beberapa kali, incrementing t dengan 0.01, 0.02, 0.05, 0.1, 0.0001, dan Anda akan melihat hasil yang berbeda. Pemetaan Kebisingan Sekarang siap menjawab pertanyaan tentang apa yang harus dilakukan dengan nilai noise. Begitu kita memiliki nilai dengan kisaran antara 0 dan 1, terserah kita untuk memetakan rentang itu sesuai dengan yang kita inginkan. Cara termudah untuk melakukannya adalah dengan fungsi Processings map (). Fungsi peta () mengambil lima argumen. Pertama adalah nilai yang ingin kita petakan, dalam hal ini n. Kemudian kita harus memberikan nilai kisaran saat ini (minimal dan maksimal), diikuti oleh kisaran yang kita inginkan. Dalam kasus ini, kita tahu bahwa noise memiliki rentang antara 0 dan 1, tapi saya ingin menggambar lingkaran kita dengan jarak antara 0 dan lebar jendela. Perhatikan bagaimana contoh di atas memerlukan sepasang variabel tambahan: tx dan ty. Ini karena kita perlu melacak dua variabel waktu, satu untuk lokasi x objek Walker dan satu untuk lokasi y. Tapi ada sesuatu yang agak aneh tentang variabel-variabel ini. Mengapa tx mulai dari 0 dan ty pada 10.000 Sementara angka-angka ini adalah pilihan yang sewenang-wenang, kami telah secara khusus menginisialisasi dua variabel waktu kami dengan nilai yang berbeda. Ini karena fungsi noise bersifat deterministik: ini memberi Anda hasil yang sama untuk waktu tertentu setiap dan setiap waktu. Jika kita meminta nilai noise pada waktu yang sama t untuk kedua x dan y. Maka x dan y akan selalu sama, artinya objek Walker hanya akan bergerak sepanjang diagonal. Sebagai gantinya, kita hanya menggunakan dua bagian yang berbeda dari ruang kebisingan, dimulai dari 0 untuk x dan 10.000 untuk y sehingga x dan y dapat muncul untuk bertindak secara independen satu sama lain. Sebenarnya, tidak ada konsep aktual waktu bermain di sini. Metafora yang berguna untuk membantu kita memahami bagaimana fungsi noise bekerja, tapi sebenarnya yang kita miliki adalah ruang, bukan waktu. Grafik di atas menggambarkan urutan linear dari nilai noise dalam ruang satu dimensi, dan kita dapat meminta nilai pada lokasi x tertentu kapan pun kita mau. Sebagai contoh, Anda akan sering melihat variabel bernama xoff untuk menunjukkan x-offset sepanjang grafik noise, bukan t untuk waktu (seperti yang tercantum dalam diagram). Latihan I.7 Pada walker acak di atas, hasil fungsi noise dipetakan langsung ke lokasi Walker. Buat walker acak di mana Anda malah memetakan hasil dari fungsi noise () ke ukuran langkah Walker. Kebisingan Dua Dimensi Ide nilai kebisingan yang tinggal di ruang satu dimensi penting karena membawa kita menuju diskusi ruang dua dimensi. Mari pikirkan hal ini sejenak. Dengan noise satu dimensi, kita memiliki urutan nilai dimana nilai tertentu sama dengan tetangganya. Karena nilainya dalam satu dimensi, hanya ada dua tetangga: nilai yang ada sebelum itu (ke kiri di grafik) dan yang datang setelah itu (ke kanan). Gambar I.10: Kebisingan 1D Gambar I.11: Kebisingan 2D Kebisingan dua dimensi bekerja dengan cara yang persis sama secara konseptual. Perbedaan tentu saja adalah bahwa kita arent melihat nilai-nilai sepanjang jalur linear, tapi nilai yang duduk di grid. Pikirkan sepotong kertas grafik dengan angka yang ditulis ke dalam setiap sel. Nilai yang diberikan akan sama dengan semua tetangganya: di atas, di bawah, ke kanan, ke kiri, dan sepanjang garis diagonal. Jika Anda memvisualisasikan kertas grafik ini dengan setiap nilai yang dipetakan ke kecerahan warna, Anda akan mendapatkan sesuatu yang terlihat seperti awan. Putih duduk di sebelah abu-abu terang, yang duduk di sebelah abu-abu, yang berada di sebelah abu-abu gelap, yang berada di sebelah hitam, yang berada di sebelah abu-abu gelap, dan sebagainya. Inilah sebabnya mengapa suara awalnya ditemukan. Anda men-tweak parameter sedikit atau bermain dengan warna agar gambar yang dihasilkan terlihat lebih mirip marmer atau kayu atau tekstur organik lainnya. Mari kita lihat sekilas bagaimana menerapkan noise dua dimensi di Processing. Jika Anda ingin mewarnai setiap piksel jendela secara acak, Anda memerlukan loop bersarang, yang mengakses setiap piksel dan memilih kecerahan acak. Kecerahan acak Untuk mewarnai setiap piksel sesuai dengan fungsi noise (), lakukan dengan benar hal yang sama, hanya dengan memanggil random () juga suara panggilan (). Kecerahan suara Perlin Ini adalah konsep awal yang bagus untuk memberi Anda nilai kebisingan untuk setiap lokasi (x. Y) di ruang dua dimensi kami. Masalahnya adalah bahwa wont ini memiliki kualitas mendung yang kita inginkan. Melompat dari pixel 200 ke pixel 201 terlalu besar lompatan melalui noise. Ingat, ketika kita bekerja dengan noise satu dimensi, kita menambahkan variabel waktu kita sebesar 0,01 setiap frame, bukan dengan 1 Solusi yang cukup bagus untuk masalah ini adalah dengan hanya menggunakan variabel yang berbeda untuk argumen kebisingan. Sebagai contoh, kita dapat menambahkan sebuah variabel yang disebut xoff setiap kali kita bergerak secara horisontal, dan variabel yoff setiap kali kita bergerak secara vertikal melalui loop bersarang. Contoh I.6: 2D Perlin noise Mulai xoff di 0. Untuk setiap xoff, mulai yoff di 0.
Perdagangan-forex-harian-info
Online-trading-card-dealers