Moving-average-vs-iir-filter

Moving-average-vs-iir-filter

Stock-options-made-easy
Online-trading-platform-vergleich
Nse-stock-options-lot-size


Reliance-online-trading-platform Peramalan-peramalan-model-masalah Howstuffworks-how-the-online-trading-academy-works Pilihan-opsi-opsi terbatas Online-trading-price-comparison Option-trading-account-requirements

Panduan Ilmuwan dan Insinyur untuk Pengolahan Sinyal Digital Oleh Steven W. Smith, Ph.D. Bab 19: Filter Rekursif Metode Rekursif Untuk memulai diskusi tentang filter rekursif, bayangkan Anda perlu mengekstrak informasi dari beberapa sinyal, x. Kebutuhan Anda sangat besar sehingga Anda mempekerjakan seorang profesor matematika lama untuk memproses data Anda. Tugas profesor adalah menyaring x untuk menghasilkan y, yang mudah-mudahan berisi informasi yang Anda minati. Profesor memulai karyanya untuk menghitung setiap titik di y sesuai dengan beberapa algoritma yang terkunci erat di otaknya yang telah berkembang. Bagian dari tugas ini, peristiwa yang paling disayangkan terjadi. Profesor mulai mengoceh tentang singularitas analitik dan transformasi fraksional, dan setan lainnya dari mimpi buruk seorang matematikawan. Jelas bahwa profesor telah kehilangan akal. Anda melihat dengan cemas sebagai profesor, dan algoritma Anda, diambil oleh beberapa pria dengan mantel putih. Anda dengan panik meninjau catatan profesor untuk menemukan algoritma yang dia gunakan. Anda menemukan bahwa dia telah menyelesaikan perhitungan titik-titik y 0 sampai y 27, dan akan dimulai pada titik y 28. Seperti ditunjukkan pada Gambar. 19-1, kita akan membiarkan variabelnya, n. Mewakili titik yang saat ini sedang dihitung. Ini berarti bahwa yn adalah sampel 28 pada sinyal output, yn - 1 adalah sampel 27, yn - 2 adalah sampel 26, dll. Demikian juga, xn adalah titik 28 pada sinyal input, xn - 1 adalah titik 27, dll. Untuk memahami Algoritma yang digunakan, kami bertanya kepada diri sendiri: Informasi apa yang tersedia bagi profesor untuk menghitung yn, sampel yang saat ini sedang dikerjakan Sumber informasi yang paling jelas adalah sinyal masukan. Artinya, nilai: xn, xn - 1, xn - 2, 8230. Profesor bisa saja mengalikan setiap titik dalam sinyal input dengan koefisien, dan menambahkan produk bersama: Anda harus menyadari bahwa ini tidak lebih dari sekadar sederhana. Konvolusi, dengan koefisien: a 0. 1. A 2. 8230, membentuk kernel konvolusi. Jika ini semua dilakukan oleh profesor, tidak banyak yang perlu untuk cerita ini, atau bab ini. Namun, ada sumber informasi lain yang dapat diakses oleh profesor tersebut: nilai sinyal keluaran yang dihitung sebelumnya, yang diadakan di: yn - 1, yn - 2, yn - 3, 8230. Dengan menggunakan informasi tambahan ini, algoritma akan menjadi Dalam bentuk: Dengan kata lain, setiap titik pada sinyal output ditemukan dengan mengalikan nilai dari sinyal input dengan koefisien, mengalikan nilai yang dihitung sebelumnya dari sinyal output oleh koefisien b, dan menambahkan produk secara bersamaan. Perhatikan bahwa tidak ada nilai untuk b 0. Karena ini sesuai dengan sampel yang dihitung. Persamaan 19-1 disebut persamaan rekursi. Dan filter yang menggunakannya disebut filter rekursif. Nilai a dan b yang menentukan filter disebut koefisien rekursi. Dalam praktik sebenarnya, tidak lebih dari sekitar selusin koefisien rekursi dapat digunakan atau saringan menjadi tidak stabil (yaitu output terus meningkat atau berosilasi). Tabel 19-1 menunjukkan contoh program filter rekursif. Filter rekursif berguna karena mereka melewati putaran yang lebih panjang. Misalnya, pertimbangkan apa yang terjadi bila fungsi delta dilewatkan melalui filter rekursif. Outputnya adalah respon impuls filter. Dan biasanya akan menjadi osilasi sinusoidal yang secara eksponensial meluruh. Karena respons impuls ini dengan panjang tak terhingga, filter rekursif sering disebut filter impuls impuls tak terbatas (IIR). Akibatnya, filter rekursif membungkus sinyal masukan dengan saringan filter yang sangat panjang, walaupun hanya ada sedikit koefisien yang terlibat. Hubungan antara koefisien rekursi dan respon filter diberikan dengan teknik matematika yang disebut z-transform. Topik dari Bab 31. Misalnya, z-transform dapat digunakan untuk tugas-tugas seperti: mengubah antara koefisien rekursi dan respons frekuensi, menggabungkan tahap bertingkat dan paralel menjadi satu filter, merancang sistem rekursif yang meniru filter analog, dll. Sayangnya, z-transform sangat matematis, dan lebih rumit daripada kebanyakan pengguna DSP yang mau dihadapinya. Inilah ranah yang mengkhususkan diri pada DSP. Ada tiga cara untuk menemukan koefisien rekursi tanpa harus memahami z-transform. Pertama, bab ini memberikan persamaan desain untuk beberapa jenis filter rekursif sederhana. Kedua, Bab 20 menyediakan sebuah program komputer buku masak untuk merancang filter low-pass dan high-pass yang lebih canggih dari Chebyshev. Ketiga, Bab 26 menjelaskan metode iteratif untuk merancang filter rekursif dengan respons frekuensi yang sewenang-wenang. Ilmuwan dan Insinyur Panduan untuk Pengolahan Sinyal Digital Oleh Steven W. Smith, Ph.D. Bab 28: Prosesor Sinyal Digital Arsitektur Prosesor Sinyal Digital Salah satu kemacetan terbesar dalam menjalankan algoritma DSP adalah mentransfer informasi ke dan dari memori. Ini termasuk data. Seperti contoh dari sinyal input dan koefisien filter, serta instruksi program. Kode biner yang masuk ke program sequencer. Misalnya, kita perlu mengalikan dua angka yang berada di suatu tempat di memori. Untuk melakukan ini, kita harus mengambil tiga nilai biner dari memori, jumlah yang akan dikalikan, ditambah instruksi program yang menjelaskan apa yang harus dilakukan. Gambar 28-4a menunjukkan bagaimana tugas yang tampaknya sederhana ini dilakukan dalam mikroprosesor tradisional. Ini sering disebut arsitektur Von Neumann. Setelah matematikawan Amerika brilian John Von Neumann (1903-1957). Von Neumann membimbing matematika dari banyak penemuan penting awal abad ke-20. Prestasinya yang banyak meliputi: mengembangkan konsep komputer program yang tersimpan, memformalkan matematika mekanika kuantum, dan mengerjakan bom atom. Jika itu baru dan menarik, Von Neumann ada di sana. Seperti yang ditunjukkan pada (a), arsitektur Von Neumann berisi satu memori dan satu bus untuk mentransfer data masuk dan keluar dari central processing unit (CPU). Mengalikan dua angka membutuhkan setidaknya tiga siklus clock, satu untuk mentransfer masing-masing dari tiga nomor di atas bus dari memori ke CPU. Kami tidak menghitung waktu untuk mentransfer hasilnya kembali ke memori, karena kami berasumsi bahwa tetap berada di CPU untuk manipulasi tambahan (seperti jumlah produk dalam filter FIR). Desain Von Neumann cukup memuaskan saat Anda puas mengeksekusi semua tugas yang dibutuhkan secara serial. Sebenarnya, kebanyakan komputer saat ini adalah desain Von Neumann. Kita hanya membutuhkan arsitektur lain bila diperlukan pemrosesan yang sangat cepat, dan kita bersedia membayar harga kompleksitas yang meningkat. Ini membawa kita ke arsitektur Harvard. Ditunjukkan pada (b). Ini dinamai untuk pekerjaan yang dilakukan di Universitas Harvard pada tahun 1940an di bawah kepemimpinan Howard Aiken (1900-1973). Seperti yang ditunjukkan dalam ilustrasi ini, Aiken menekankan kenangan terpisah untuk instruksi data dan program, dengan bus terpisah untuk masing-masing. Karena bus beroperasi secara independen, instruksi dan data program dapat diambil bersamaan, meningkatkan kecepatan desain bus tunggal. Sebagian besar DSP saat ini menggunakan arsitektur dual bus ini. Gambar (c) mengilustrasikan tingkat kecanggihan berikutnya, Arsitektur Super Harvard. Istilah ini diciptakan oleh Analog Devices untuk menggambarkan operasi internal ADSP-2106x dan keluarga ADSP-211xx baru dari Digital Signal Processors. Ini disebut SHARC DSPs, sebuah kontraksi dari jangka panjang, S uper H arvard ARC hitecture. Idenya adalah membangun arsitektur Harvard dengan menambahkan fitur untuk meningkatkan throughput. Sementara DSPs SHARC dioptimalkan dengan puluhan cara, dua area cukup penting untuk disertakan pada Gambar. 28-4c: cache instruksi. Dan pengendali IO. Pertama, mari kita lihat bagaimana cache instruksi meningkatkan kinerja arsitektur Harvard. Cacat dari desain Harvard dasar adalah bahwa bus memori data lebih sibuk daripada bus memori program. Ketika dua bilangan dikalikan, dua nilai biner (angka) harus dilewatkan melalui bus memori data, sementara hanya satu nilai biner (instruksi program) dilewatkan di atas bus memori program. Untuk memperbaiki situasi ini, kita mulai dengan merelokasi sebagian data ke memori program. Sebagai contoh, kita dapat menempatkan koefisien filter dalam memori program, sekaligus menjaga sinyal input dalam memori data. (Data yang direlokasi ini disebut data sekunder dalam ilustrasi). Sekilas, sepertinya ini tidak membantu situasi sekarang kita harus mentransfer satu nilai melalui bus memori data (sampel sinyal input), namun dua nilai di atas bus memori program (instruksi program dan koefisiennya). Sebenarnya, jika kita mengeksekusi instruksi acak, situasi ini tidak akan lebih baik sama sekali. Namun, algoritma DSP umumnya menghabiskan sebagian besar waktu eksekusi mereka dalam loop, seperti petunjuk 6-12 dari Tabel 28-1. Ini berarti bahwa rangkaian instruksi program yang sama akan terus berlanjut dari memori program ke CPU. Arsitektur Super Harvard memanfaatkan situasi ini dengan memasukkan tembolok instruksi di CPU. Ini adalah memori kecil yang berisi sekitar 32 instruksi program terbaru. Pertama kali melalui satu lingkaran, instruksi program harus melewati bus memori program. Hal ini mengakibatkan operasi lebih lambat karena konflik dengan koefisien yang juga harus diambil sepanjang jalur ini. Namun, pada eksekusi tambahan dari loop, instruksi program dapat ditarik dari cache instruksi. Ini berarti bahwa semua memori ke transfer informasi CPU dapat dilakukan dalam satu siklus: sampel dari sinyal input memenuhi bus memori data, koefisiennya melebihi bus memori program, dan instruksi program berasal dari instruksi cache . Dalam jargon lapangan, transfer data yang efisien ini disebut bandwidth akses memori tinggi. Gambar 28-5 menyajikan pandangan yang lebih rinci tentang arsitektur SHARC, yang menunjukkan pengendali IO yang terhubung ke memori data. Ini adalah bagaimana sinyal masuk dan keluar dari sistem. Misalnya, SHARC DSPs menyediakan port komunikasi serial dan paralel. Ini adalah koneksi kecepatan yang sangat tinggi. Sebagai contoh, pada kecepatan clock 40 MHz, ada dua port serial yang beroperasi masing-masing 40 Mbitssecond, sedangkan enam port paralel masing-masing menyediakan transfer data 40 Mbytessecond. Ketika semua enam port paralel digunakan bersamaan, kecepatan transfer data adalah angka Mbytessecond yang luar biasa. Ini cukup cepat untuk mentransfer keseluruhan teks buku ini hanya dalam 2 milidetik Sama pentingnya, perangkat keras khusus memungkinkan aliran data ini ditransfer langsung ke memori (Direct Memory Access, atau DMA), tanpa harus melewati register CPU. Dengan kata lain, tugas 1 amp 14 pada daftar kita terjadi secara independen dan bersamaan dengan tugas lainnya tidak ada siklus yang dicuri dari CPU. Bus utama (bus memori program dan bus memori data) juga dapat diakses dari luar chip, menyediakan antarmuka tambahan untuk memori dan periferal off-chip. Hal ini memungkinkan SHARC DSP menggunakan empat memori Gigaword (16 Gbyte), dapat diakses pada 40 Mwordssecond (160 Mbytessecond), untuk data 32 bit. Wow Tipe IO berkecepatan tinggi ini adalah karakteristik utama DSP. Tujuan utama adalah memindahkan data, melakukan matematika, dan memindahkan data sebelum sampel berikutnya tersedia. Segala sesuatu yang lain bersifat sekunder. Beberapa DSP memiliki konverter analog-ke-digital dan digital-ke-analog on-board, sebuah fitur yang disebut sinyal campuran. Namun, semua DSP dapat berinteraksi dengan konverter eksternal melalui port serial atau paralel. Sekarang mari kita lihat di dalam CPU. Di bagian atas diagram ada dua blok yang diberi label Data Address Generator (DAG), satu untuk masing-masing dari dua kenangan tersebut. Kontrol alamat ini dikirim ke memori program dan data, menentukan di mana informasi tersebut harus dibaca dari atau ditulis. Dalam mikroprosesor yang lebih sederhana tugas ini ditangani sebagai bagian inheren dari sequencer program, dan cukup transparan bagi programmer. Namun, DSP dirancang untuk beroperasi dengan buffer melingkar. Dan manfaat dari perangkat keras tambahan untuk mengelolanya secara efisien. Ini menghindari penggunaan siklus clock CPU yang berharga untuk melacak bagaimana data disimpan. Misalnya, di DSP SHARC, masing-masing dari dua DAG dapat mengendalikan delapan buffer bundar. Ini berarti setiap DAG memiliki 32 variabel (4 per buffer), ditambah logika yang dibutuhkan. Mengapa begitu banyak buffer melingkar Beberapa algoritma DSP paling baik dilakukan secara bertahap. Misalnya, filter IIR lebih stabil jika diimplementasikan sebagai rangkaian biquads (sebuah panggung yang berisi dua kutub dan sampai dua angka nol). Beberapa tahap memerlukan beberapa buffer melingkar untuk operasi tercepat. DAG di DSP SHARC juga dirancang untuk melakukan transformasi Fast Fourier dengan efisien. Dalam mode ini, DAG dikonfigurasi untuk menghasilkan alamat yang sedikit dibalik ke dalam buffer lingkaran, bagian penting dari algoritma FFT. Selain itu, kelimpahan buffer melingkar sangat menyederhanakan pembuatan kode DSP - baik untuk pemrogram manusia maupun kompiler bahasa tingkat tinggi, seperti C. Bagian register data CPU digunakan dengan cara yang sama seperti pada mikroprosesor tradisional. Pada ADSP-2106x SHARC DSPs, ada 16 register tujuan umum masing-masing 40 bit. Ini bisa menahan perhitungan antara, menyiapkan data untuk prosesor matematika, berfungsi sebagai penyangga untuk transfer data, menahan bendera untuk pengendalian program, dan sebagainya. Jika diperlukan, register ini juga dapat digunakan untuk mengendalikan loop dan counter, SHARC DSP memiliki register perangkat keras ekstra untuk melakukan banyak fungsi ini. Pengolahan matematika dibagi menjadi tiga bagian, multiplier. Sebuah unit logika aritmatika (ALU). Dan shifter barel. Pengganda mengambil nilai dari dua register, mengalikannya, dan menempatkan hasilnya ke register lain. ALU melakukan penambahan, pengurangan, nilai absolut, operasi logis (AND, OR, XOR, NOT), konversi antara format fixed dan floating point, dan fungsi serupa. Operasi biner dasar dilakukan oleh shifter barel, seperti menggeser, memutar, mengekstraksi dan menyetorkan segmen, dan seterusnya. Fitur kuat dari keluarga SHARC adalah pengganda dan ALU dapat diakses secara paralel. Dalam satu siklus clock, data dari register 0-7 dapat dilewatkan ke multiplier, data dari register 8-15 dapat dilewatkan ke ALU, dan kedua hasilnya kembali ke 16 register. Ada juga banyak fitur penting dari arsitektur keluarga SHARC yang ditunjukkan dalam ilustrasi sederhana ini. Misalnya, akumulator 80 bit dibangun ke dalam multiplier untuk mengurangi kesalahan round-off yang terkait dengan beberapa operasi matematika fixed-point. Fitur menarik lainnya adalah penggunaan shadow register untuk semua CPU key register. Ini adalah register duplikat yang dapat diaktifkan dengan rekan mereka dalam satu siklus clock. Mereka digunakan untuk switching konteks cepat. Kemampuan untuk menangani interrupts dengan cepat. Bila terjadi interupsi pada mikroprosesor tradisional, semua data internal harus disimpan sebelum interupsi dapat ditangani. Ini biasanya melibatkan mendorong semua register yang ditempati ke tumpukan, satu per satu. Sebagai perbandingan, interupsi pada keluarga SHARC ditangani dengan memindahkan data internal ke dalam register bayangan dalam satu siklus clock. Saat rutinitas interupsi selesai, register segera diperbaiki. Fitur ini memungkinkan langkah 4 pada daftar kami (mengelola sampel-siap menyela) untuk ditangani dengan sangat cepat dan efisien. Sekarang kita sampai pada kinerja kritis arsitektur, berapa banyak operasi dalam loop (langkah 6-12 dari Tabel 28-1) dapat dilakukan pada waktu yang sama. Karena sifatnya yang sangat paralel, SHARC DSP secara bersamaan dapat melaksanakan semua tugas ini. Secara khusus, dalam satu siklus clock, ia dapat melakukan multiply (langkah 11), sebuah penambahan (langkah 12), dua data bergerak (langkah 7 dan 9), perbarui dua pointer buffer melingkar (langkah 8 dan 10), dan kontrol Loop (langkah 6). Akan ada siklus clock ekstra yang terkait dengan awal dan akhiri loop (langkah 3, 4, 5 dan 13, ditambah nilai awal yang bergerak) namun, tugas ini juga ditangani dengan sangat efisien. Jika loop dijalankan lebih dari beberapa kali, overhead ini akan diabaikan. Sebagai contoh, misalkan Anda menulis program filter FIR yang efisien dengan menggunakan 100 koefisien. Anda dapat mengharapkannya untuk membutuhkan sekitar 105 sampai 110 siklus clock per sampel untuk mengeksekusi (yaitu loop koefisien 100 ditambah overhead). Ini sangat mengesankan sebuah mikroprosesor tradisional membutuhkan banyak ribu siklus clock untuk algoritma ini. Saya bekerja dengan sejumlah besar deret waktu. Seri waktu ini pada dasarnya adalah pengukuran jaringan yang datang setiap 10 menit, dan beberapa di antaranya bersifat periodik (yaitu bandwidth), sementara beberapa arent lainnya (yaitu jumlah lalu lintas perutean). Saya ingin algoritma sederhana untuk melakukan deteksi outlier online. Pada dasarnya, saya ingin menyimpan memori (atau disk) keseluruhan data historis untuk setiap rangkaian waktu, dan saya ingin mendeteksi outlier apapun dalam skenario hidup (setiap kali sampel baru ditangkap). Apa cara terbaik untuk mencapai hasil ini? Saat ini saya menggunakan rata-rata bergerak untuk menghilangkan beberapa kebisingan, tapi kemudian hal-hal sederhana berikut seperti standar deviasi, gila. Terhadap seluruh data set doesnt bekerja dengan baik (I cant menganggap deret waktu itu stasioner), dan saya ingin sesuatu yang lebih akurat, idealnya kotak hitam seperti: double outlierdetection (double vector, double value) dimana vektor adalah array berisi ganda Data historis, dan nilai kembalian adalah skor anomali untuk nilai sampel baru. Tanya 2 Agustus pukul 20:37 Ya, saya telah mengasumsikan frekuensi diketahui dan ditentukan. Ada metode untuk memperkirakan frekuensi secara otomatis, tapi itu akan mempersulit fungsinya. Jika Anda perlu memperkirakan frekuensi, cobalah mengajukan pertanyaan terpisah tentang hal itu - dan mungkin saya akan memberikan jawaban. Tetapi, ini memerlukan lebih banyak ruang daripada yang ada dalam komentar. Ndash Rob Hyndman Aug 3 10 at 23:40 Solusi yang bagus akan memiliki beberapa bahan, termasuk: Gunakan jendela yang tahan dan bergerak dengan mulus untuk menghilangkan ketidakstabilan. Ungkapkan ulang data asli sehingga residu yang berkaitan dengan kelancaran kira-kira terdistribusi secara simetris. Mengingat sifat data Anda, kemungkinan akar kuadrat atau logaritma mereka akan memberi residu simetris. Terapkan metode diagram kontrol, atau paling tidak bagan kontrol berpikir, ke residu. Sejauh yang terakhir berjalan, pemikiran bagan kontrol menunjukkan bahwa ambang konvensional seperti 2 SD atau 1,5 kali IQR di luar kuartil bekerja dengan buruk karena mereka memicu terlalu banyak sinyal out-of-control yang salah. Orang biasanya menggunakan 3 SD dalam pekerjaan bagan kontrol, dari mana 2,5 (atau bahkan 3) kali IQR di luar kuartil akan menjadi titik awal yang baik. Saya memiliki lebih atau kurang menggariskan sifat solusi Rob Hyndmans sambil menambahkan dua hal utama: potensi kebutuhan untuk mengungkapkan kembali data dan kebijaksanaan menjadi lebih konservatif dalam menandakan outlier. Saya tidak yakin bahwa Loess bagus untuk detektor online, karena itu tidak bekerja dengan baik pada titik akhir. Anda mungkin malah menggunakan sesuatu yang sederhana seperti filter median yang bergerak (seperti pada pemulusan yang tahan Tukeys). Jika outliers tidak masuk semburan, Anda bisa menggunakan jendela yang sempit (5 titik data, mungkin, yang akan rusak hanya dengan semburan 3 atau lebih penghenti dalam kelompok 5). Setelah Anda melakukan analisis untuk menentukan ekspresi ulang data yang baik, kemungkinan Anda tidak perlu mengubah ekspresi ulang. Oleh karena itu, detektor online Anda benar-benar hanya perlu mengacu pada nilai terbaru (jendela terbaru) karena tidak menggunakan data sebelumnya sama sekali. Jika Anda memiliki rangkaian waktu yang sangat lama, Anda bisa melangkah lebih jauh untuk menganalisis autokorelasi dan musiman (seperti fluktuasi harian atau mingguan berulang) untuk memperbaiki prosedur. Menjawab Aug 26 10 at 18:02 John, 1.5 IQR adalah rekomendasi asli Tukey untuk kumis terpanjang di boxplot dan 3 IQR adalah rekomendasinya untuk menandai poin sebagai outlierquot quotfar (riff pada frase 6039 yang populer). Ini dibangun ke dalam banyak algoritma boxplot. Rekomendasi tersebut dianalisis secara teoritis di Hoaglin, Mosteller, amp Tukey, Understanding robust and Exploratory Data Analysis. Ndash w huber 9830 9 Okt 12 at 21:38 Ini mengonfirmasi data deret waktu yang telah saya coba analisa. Jendela rata-rata dan juga standar deviasi jendela. ((X - avg) sd) gt 3 nampaknya menjadi poin yang ingin saya tandai sebagai outlier. Yah setidaknya memperingatkan sebagai outliers, saya bendera apapun lebih tinggi dari 10 sd sebagai outlier error ekstrim. Masalah yang saya hadapi adalah berapa lama jendela ideal yang saya pakai dengan 4-8 titik data. Ndash NeoZenith Jun 29 16 at 8:00 Neo Taruhan terbaik Anda mungkin bereksperimen dengan subkumpulan data Anda dan konfirmasikan kesimpulan Anda dengan tes sisanya. Anda juga bisa melakukan validasi lintas yang lebih formal (tapi perawatan khusus dibutuhkan dengan data deret waktu karena saling ketergantungan semua nilai). Ndash w huber 9830 29 Jun 16 at 12:10 (Jawaban ini merespons pertanyaan duplikat (sekarang ditutup) pada Mendeteksi kejadian yang luar biasa, yang menyajikan beberapa data dalam bentuk grafis) Deteksi pendahuluan bergantung pada sifat data dan pada apa yang Anda Bersedia berasumsi tentang mereka. Metode tujuan umum mengandalkan statistik yang kuat. Semangat pendekatan ini adalah untuk mengkarakterisasi sebagian besar data dengan cara yang tidak dipengaruhi oleh outlier manapun dan kemudian menunjukkan nilai individu yang tidak sesuai dengan karakterisasi tersebut. Karena ini adalah deret waktu, ia menambahkan bahwa komplikasi membutuhkan (re) mendeteksi outlier secara terus menerus. Jika ini harus dilakukan saat rangkaian terbentang, maka kita hanya boleh menggunakan data yang lebih tua untuk deteksi, bukan data masa depan. Selain itu, sebagai perlindungan terhadap banyak tes berulang, kita ingin menggunakan metode yang memiliki false sangat rendah. Tingkat positif Pertimbangan ini menyarankan untuk menjalankan tes outlier jendela bergerak yang sederhana dan kuat terhadap data. Ada banyak kemungkinan, tapi satu yang sederhana, mudah dipahami dan mudah diterapkan seseorang didasarkan pada MAD yang berjalan: rata-rata penyimpangan absolut dari median. Ini adalah ukuran variasi kuat dalam data, mirip dengan standar deviasi. Puncak terluar adalah beberapa MAD atau lebih besar dari median. Masih ada beberapa tuning yang harus dilakukan. Berapa banyak penyimpangan dari sebagian besar data harus dipertimbangkan di luar dan seberapa jauh ke masa yang seharusnya kita lihat Mari kita biarkan ini sebagai parameter untuk eksperimen. Implementasi Heres a R diterapkan pada data x (1,2, ldot, n) (dengan n1150 untuk meniru data) dengan nilai yang sesuai y: Diterapkan ke dataset seperti kurva merah yang diilustrasikan dalam pertanyaan, menghasilkan hasil ini: Data Ditunjukkan dalam warna merah, jendela 30 hari batas median5MAD berwarna abu-abu, dan outlier - yang hanya merupakan nilai data di atas kurva abu-abu - berwarna hitam. (Ambang batas hanya dapat dihitung mulai dari akhir jendela awal.Untuk semua data di dalam jendela awal ini, ambang pertama digunakan: mengapa kurva abu-abu rata antara x0 dan x30). Efek dari perubahan parameter adalah (A) meningkatkan nilai jendela akan cenderung menghaluskan kurva abu-abu dan (b) meningkatkan ambang batas akan menaikkan kurva abu-abu. Mengetahui hal ini, seseorang dapat mengambil segmen data awal dan dengan cepat mengidentifikasi nilai parameter yang paling sesuai memisahkan puncak terluar dari data lainnya. Terapkan nilai parameter ini untuk memeriksa sisa data. Jika plot menunjukkan metode ini memburuk dari waktu ke waktu, itu berarti sifat data berubah dan parameternya mungkin perlu disetel ulang. Perhatikan betapa sedikit metode ini mengasumsikan tentang data: mereka tidak harus terdistribusi secara normal sehingga mereka tidak perlu menunjukkan periodisitas apapun yang mereka tidak perlu non-negatif. Yang diasumsikan adalah bahwa data berperilaku dengan cara yang cukup mirip dari waktu ke waktu dan bahwa puncak terluar tampak lebih tinggi daripada data lainnya. Jika ada yang ingin bereksperimen (atau bandingkan beberapa solusi lain dengan yang ditawarkan di sini), inilah kode yang saya gunakan untuk menghasilkan data seperti yang ditunjukkan dalam pertanyaan. Saya menebak model deret waktu yang canggih tidak akan bekerja untuk Anda karena waktu yang dibutuhkan untuk mendeteksi outlier menggunakan metodologi ini. Oleh karena itu, berikut ini adalah solusinya: Pertama buat pola lalu lintas normal dasar selama setahun berdasarkan analisis manual data historis yang memperhitungkan waktu, minggu, akhir pekan, bulan, dll. Gunakan baseline ini bersama beberapa mekanisme sederhana. (Misalnya moving average yang disarankan oleh Carlos) untuk mendeteksi outlier. Anda mungkin juga ingin meninjau literatur kontrol proses statistik untuk beberapa gagasan. Ya, inilah yang saya lakukan: sampai sekarang saya membagi sinyal menjadi periode secara manual, sehingga untuk masing-masing dari mereka, saya dapat menentukan interval kepercayaan di mana sinyal seharusnya tidak bergerak, dan oleh karena itu saya dapat menggunakan metode standar seperti Sebagai standar deviasi. Masalah sebenarnya adalah saya tidak bisa menentukan pola yang diharapkan untuk semua sinyal yang harus saya analisis, dan itulah mengapa saya mencari sesuatu yang lebih cerdas. Ndash gianluca 2 Agustus pukul 21:37 Inilah satu ide: Langkah 1: Terapkan dan perkenalkan model deret waktu generik secara satu kali berdasarkan data historis. Ini bisa dilakukan secara offline. Langkah 2: Gunakan model yang dihasilkan untuk mendeteksi outlier. Langkah 3: Pada beberapa frekuensi (mungkin setiap bulan), ulang kalibrasi model deret waktu (ini bisa dilakukan secara offline) sehingga langkah 2 deteksi outlier Anda tidak berjalan terlalu jauh dari langkah dengan pola lalu lintas saat ini. Apakah itu bekerja untuk ndash konteks Anda pengguna28 2 Agustus 10 di 22:24 Ya, ini mungkin berhasil. Saya sedang memikirkan pendekatan serupa (menghitung ulang baseline setiap minggu, yang bisa jadi CPU intensif jika Anda memiliki ratusan rangkaian waktu univariat untuk dianalisis). BTW pertanyaan yang sulit sebenarnya adalah algoritma blackbox-style terbaik untuk memodelkan sinyal yang sama sekali generik, mengingat noise, estimasi tren dan seasonalityquot. AFAIK, setiap pendekatan dalam literatur memerlukan fase tuningquot yang benar-benar keras, dan satu-satunya metode otomatis yang saya temukan adalah model ARIMA oleh Hyndman (robjhyndmansoftwareforecast). Apakah saya kehilangan sesuatu ndash gianluca 2 Agustus 22:38 Sekali lagi, ini bekerja dengan cukup baik jika sinyal seharusnya memiliki musiman seperti itu, tapi jika saya menggunakan rangkaian waktu yang sama sekali berbeda (yaitu rata-rata waktu perjalanan TCP sepanjang waktu ), Metode ini tidak akan bekerja (karena akan lebih baik menangani yang satu itu dengan mean global dan deviasi standar sederhana dengan menggunakan jendela geser yang berisi data historis). Ndash gianluca Aug 2 10 at 22:02 Kecuali Anda bersedia menerapkan model deret waktu umum (yang membawa kontra dalam hal latency dll), saya pesimis bahwa Anda akan menemukan penerapan umum yang pada saat bersamaan cukup sederhana. Untuk bekerja untuk segala macam deret waktu. Ndash user28 2 Agustus 10 at 22:06 Komentar lain: Saya tahu jawaban yang bagus mungkin mungkin Anda memperkirakan periodisitas sinyal, dan memutuskan algoritma yang akan digunakan sesuai dengan itquot, tapi saya tidak menemukan solusi bagus untuk yang lain ini. Masalah (saya bermain sedikit dengan analisis spektral menggunakan DFT dan analisis waktu menggunakan fungsi autokorelasi, tapi deret waktu saya mengandung banyak suara dan metode semacam itu memberikan beberapa hasil gila sebagian besar waktu) ndash gianluca 2 Agustus 10 at 22:06 A Beri komentar pada komentar terakhir Anda: itulah sebabnya saya mencari pendekatan yang lebih umum, tapi saya memerlukan semacam kotak komik quotblack karena saya tidak dapat membuat asumsi tentang sinyal yang dianalisis, dan karena itu saya tidak dapat membuat parameter kuantum yang ditetapkan untuk algoritma pembelajaran. Ndash gianluca 2 Agustus pukul 22:09 Karena ini adalah data deret waktu, filter eksponensial sederhana en.wikipedia.orgwikiExponentialsmoothing akan memperlancar data. Ini adalah filter yang sangat bagus karena Anda tidak perlu mengumpulkan data titik lama. Bandingkan setiap nilai data yang baru merapikan dengan nilai unsmoothed. Begitu deviasi melebihi ambang batas yang telah ditentukan sebelumnya (tergantung pada apa yang Anda yakini sebagai data outlier dalam data Anda), maka outlier Anda dapat dengan mudah dideteksi. Dijawab Apr 30 15 at 8:50 Anda bisa menggunakan standar deviasi dari pengukuran N terakhir (Anda harus memilih N yang sesuai). Skor anomali yang bagus adalah berapa banyak standar deviasi yang diukur dari moving average. Menjawab 2 Agustus 20:48 Terima kasih atas tanggapan Anda, tapi bagaimana jika sinyal menunjukkan musim yang tinggi (misalnya, banyak pengukuran jaringan ditandai dengan pola harian dan mingguan pada saat yang bersamaan, misalnya malam vs siang atau akhir pekan Vs hari kerja) Pendekatan berdasarkan standar deviasi tidak akan berjalan dalam kasus itu. Ndash gianluca 2 Agustus pukul 20:57 Misalnya, jika saya mendapatkan sampel baru setiap 10 menit, dan saya melakukan deteksi outlier terhadap penggunaan bandwidth jaringan perusahaan, pada dasarnya jam 6:00 ukuran ini akan jatuh (ini adalah perkiraan Pola normal total), dan standar deviasi yang dihitung di atas jendela geser akan gagal (karena akan memicu peringatan pasti). Pada saat bersamaan, jika ukurannya turun jam 4 sore (menyimpang dari garis dasar yang biasa), ini adalah outlier nyata. Ndash gianluca 2 Agustus pukul 20:58 apa yang saya lakukan adalah mengelompokkan pengukuran menurut jam dan hari dalam seminggu dan bandingkan standar deviasi itu. Masih tidak benar untuk hal-hal seperti liburan dan musim panas musim panas tapi benar sebagian besar waktu. Kelemahannya adalah Anda benar-benar perlu mengumpulkan data sekitar setahun agar cukup sehingga stddev mulai masuk akal. Analisis spektral mendeteksi periodisitas dalam rangkaian waktu stasioner. Pendekatan domain frekuensi berdasarkan perkiraan kerapatan spektral adalah pendekatan yang akan saya rekomendasikan sebagai langkah pertama Anda. Jika untuk periode tertentu penyimpangan berarti puncak yang jauh lebih tinggi daripada yang khas untuk periode itu maka rangkaian dengan penyimpangan semacam itu tidak akan diam dan spektral anlsisis tidak sesuai. Tapi dengan asumsi Anda telah mengidentifikasi periode yang memiliki penyimpangan, Anda harus dapat menentukan kira-kira berapa tinggi puncak normal dan kemudian dapat menetapkan ambang batas pada tingkat tertentu di atas rata-rata untuk menunjuk kasus tidak beraturan. Jawab 3 September pukul 14:59 Saya sarankan skema di bawah ini, yang seharusnya bisa diimplementasikan dalam satu hari atau lebih: Kumpulkan sampel sebanyak yang dapat Anda simpan di memori Hapus outlier yang jelas menggunakan standar deviasi untuk setiap atribut Hitung dan simpan matriks korelasi Dan juga rata-rata dari masing-masing atribut Hitung dan simpan jarak Mahalanobis dari semua sampel Anda Hitung tingkat ketulusan: Untuk sampel tunggal yang ingin Anda ketahui dengan sungguh-sungguh: Ambil matrik matrik kovarian dan jarak Mahalanobis dari pelatihan Hitung jarak Mahalanobis d Untuk sampel Anda Mengembalikan persentil di mana d jatuh (menggunakan jarak Mahalanobis dari pelatihan) Itu akan menjadi skor outlier Anda: 100 adalah outlier yang ekstrem. PS. Dalam menghitung jarak Mahalanobis. Gunakan matriks korelasi, bukan matriks kovarians. Ini lebih kuat jika pengukuran sampel bervariasi dalam satuan dan angka.
Universal-trading-profit-system
Online-browser-trading-games