Dengan membantu kami mengidentifikasi tren tersembunyi dan membuat prediksi masa depan, deret waktu dapat membantu kami menangani masalah seperti perkiraan penjualan, manajemen inventaris, dan analisis anggaran. Sekarang ada banyak cara untuk memodelkan dan memperkirakan rangkaian waktu dan selama rangkaian ini, saya akan mencoba menyentuh sebanyak mungkin cara tersebut. Tujuannya adalah untuk meningkatkan pemahaman saya sendiri dan memiliki pemahaman yang lebih baik tentang matematika yang mendasarinya.

Wajar jika sebagian besar pengumpulan data di dunia nyata memiliki setidaknya semacam keacakan; dan untuk mempelajari karakteristik mendasar (musiman, siklus, dll), kita perlu mengurangi pengaruhnya. Untungnya, teknik pemulusan seperti rata-rata dan pemulusan eksponensial memungkinkan kami mencapai hal tersebut.

Katakanlah kita memiliki data masa lalu tentang berapa banyak barang yang terjual di situs web kita setiap hari, dan kita ingin menggunakannya untuk mengambil beberapa keputusan bisnis. (Saya berharap pernyataan ambigu ini menyembunyikan ketidaktahuan saya dengan baik)

Rata-rata

Cara termudah untuk memahami data ini adalah dengan memperhalusnyasehingga kita dapat mengetahui jumlah rata-rata barang yang terjual setiap hari. Mungkin, kita bisa menggunakannya untuk mengisi kembali inventaris kita.

Kita tinggal menjumlahkan semua nilainya lalu membaginya dengan jumlah hari.

barang_terjual = [7,6,1,8,10,9,8,11]

rata-rata = jumlah(item)/len(item)

Tampaknya kami menjual 7,5 item setiap hari, dan inilah saatnya membuat keputusan pertama berdasarkan data dengan memesan 750 item untuk 10 hari ke depan.

Sekarang mari kita lihat seberapa baik kinerja kita dengan mengevaluasi hasil menggunakan kesalahan kuadrat rata-rata.

  • Delta nilai aktual versus rata-rata
  • Kuadrat dari selisih ini
  • Jumlah perbedaan ini
  • Dan akhirnya, rata-rata dari jumlah ini

error = [(aktual — prediksi)**2 untuk aktual di item_sale]

[0.25, 2.25, 42.25, 0.25, 6.25, 2.25, 0.25, 12.25]

Dan dengan menghitung rata-rata jumlah kesalahan ini, kita mendapatkan:

8.25

Jadi itulah kesalahan kami.

Sekarang, ini merupakan awal yang baik tetapi ada masalah yang sangat jelas jika hanya menggunakan rata-rata. Katakanlah Jake Peralta dan Kapten Holt terlihat memesan barang dari toko online kami, dan, dalam waktu singkat, kami menjadi tempat paling keren di kota. Namun, penjualan kami tidak melonjak, namun terus meningkat.

Tiba-tiba, kecerdasan bisnis satu trik kita hilang begitu saja. Kesalahan kuadrat rata-rata kami meningkat dan kami tidak mengerti mengapa item kehabisan stok meskipun kami memesan 170 item untuk 10 hari ke depan.

Masalahnya sudah jelas; Teknik rata-rata kami memberikan bobot yang sama pada semua pengamatan di masa lalu dan oleh karena itu tidak cukup efektif ketika berhadapan dengan tren.

Rata-Rata Pergerakan Tunggal

Single Moving Average adalah teknik rata-rata — yang tidak memperhitungkan semua pengamatan sebelumnya — hanya menggunakan rata-rata item terkini. Jika ukuran jendela bergerak kita adalah 3, maka akan menggunakan rata-rata dari 3 item terakhir.

Hasil yang kami dapatkan lebih menggembirakan, dan UMK kami (Mean Squared Error) turun menjadi 41dari 139. Hal ini diharapkan karena teknik baru ini mampu melupakan masa-masa kelam dan sebelum ketenaran kita.

Pengamatan mendalam di sini adalah mengapa tidak menempatkan rata-rata ketiga item di tengah kumpulan rata-rata, yaitu rata-rata pertama harus ditambahkan pada Hari ke-2, bukan pada Hari ke-3. Faktanya, ini akan menjadi pendekatan yang lebih masuk akal dan dikenal sebagai Rata-Rata Pergerakan Terpusat.

Namun bagaimana dengan saat panjang jendela (M) kita genap? Bagian tengah himpunan akan menjadi 1.5,2.5,3.5….

Solusinya adalah dengan menerapkan rata-rata bergerak pada nilai yang sudah dirata-ratakan dengan ukuran jendela M= 2.

Sayangnya,teknik rata-rata ini tidak cocok untuk memperkirakan ketika data kami menunjukkan tren yang menonjol. Dalam hal ini, pendekatan yang lebih efektif adalah dengan menggunakan rata-rata pergerakan ganda, yaitu mendapatkan pergerakan kedua dari rata-rata pergerakan pertama dengan menggunakan panjang jendela yang sama. Hal ini dikenal sebagai Rata-Rata Pergerakan Ganda untuk Proses Tren Linierdan memungkinkan kita membuat prediksi di masa depan.

Teknik Pemulusan Eksponensial

Dalam kehidupan nyata, salah satu cara pasti untuk mengalami stagnasi adalah dengan menjadi budak sejarah, dan perlu kehati-hatian ekstra untuk menghindarinya. Kita memerlukan kehati-hatian serupa ketika menyangkut rangkaian waktu di mana kita lebih mementingkan contoh-contoh terkini. Salah satu cara populer untuk melakukannya adalah melalui Teknik Pemulusan Eksponensial. Di sini, saat kita beralih ke observasi sebelumnya, kami secara eksponensial mengurangi bobot yang diberikan padanya menggunakan parameter pemulusan yang berbeda.

Pada bagian berikut, kita akan membahas Pemulusan Eksponensial Tunggal, Ganda, dan Pemulusan Eksponensial Tiga Kali Lipat.

Pemulusan Eksponensial Tunggal

Dalam jenis pemulusan ini, kita memerlukan nilai pemulusan waktu nol dan tingkat penurunan. Nilai pertama ini bisa berupa nilai awal sebenarnya, atau mungkin rata-rata dari beberapa nilai pertama, atau melalui metode lain. Satu hal yang perlu diingat adalah semakin kecil nilai tingkat eksponensial, semakin signifikan pengaruh nilai awal tersebut.

Beberapa Matematika

Inilah persamaan dasar pemulusan eksponensialyang terlihat:

`St = a*yt_1 + (1- a)*St_1`

dan tingkat penurunan bobot observasi sebelumnya ditentukan oleh faktor penghalusan(a)yang dapat memiliki nilai antara 1 dan 0.

Katakanlah aadalah 0,7, ini berarti nilai pada waktu takan sama dengan jumlah persentase aktual (a*yt_1) dan nilai ( (1- a)*St_1) yang dihaluskan pada t - 1.

Sekarang, jika kita memperluas St_1 lebih jauh, kita akan melihat

St = a yt-1 + (1 — a) [ayt-2 + (1 — a)St-2]

Jika kita terus memperluasnya, kita akan melihat sesuatu seperti ini misalnya t = 4

a*[(1-a)⁰*y3 + (1-a)¹ *y2] + (1-a)³*S2

Dimana S2 adalah nilai awal yang kita gunakan untuk memulai. Dapat kita perhatikan bahwa bobot sampel sebelumnya berkurang secara eksponensial (1-a)⁰, (1-a)¹, (1-a)²…..

Bentuk umum yang kita peroleh adalah:

Contoh

Katakanlah, kami mengumpulkan nilai-nilai berikut selama jangka waktu 10 hari.

6.4, 5.6, 7.8, 8.8, 11, 11.6, 16.7, 15.3, 21.6, 22.4

Menggunakan cuplikan pemulusan eksponensial kecil kami

Kami mendapatkan hasil sebagai berikut

Meskipun ini jauh lebih baik daripada rata-rata yang sama, kita dapat mencatat bahwa metode ini sangat buruk dalam memprediksi nilai masa depan jika terjadi tren. Lihat bagaimana setelah hari ke 10 grafiknya mendatar.

Sekarang untuk memperbaikinya kita mungkin harus meningkatkan persamaan dasar kita sehingga memperhitungkan delta pada nilai sebelumnya dengan menggunakan Teknik Pemulusan Eksponensial Ganda

Teknik Pemulusan Eksponensial Ganda

Dalam teknik ini, kita menggunakan konstanta γ lain bersama dengan konstanta faktor penghalusan α.

Apa itu Teknik Pemulusan Eksponensial Tunggal?

St = a*yt_1 + (1 — a)*St_1

Sekarang menjadi:

St = a*yt_1 + (1 — a)*(St_1 + bt_1)

Dimana kita menambahkan tren sebelumnya — bt_1ke nilai yang dihaluskan.

Namun bagaimana kita menemukan tren pada suatu periode waktu? Ini pasti akan mencakup delta antara nilai-nilai sebelumnya untuk melihat perbedaan rata-rata historis. Dan kita melihat hal yang sama dalam persamaan tren

b_t = γ*(St - St_1)+(1−γ)*bt_1

St — St_1 : Perbedaan antara nilai yang dihaluskan saat ini dan sebelumnya

bt_1 : Tren di t-1

Tampaknya kinerja ini akan lebih baik pada contoh terakhir kita. Namun, sebelum kita melanjutkan, kita perlu mencari nilai awal dari faktor tren b. Meskipun ada berbagai metode ampuh untuk menemukan titik awal yang optimal, kita dapat menggunakan perbedaan pertama, atau rata-rata dari perbedaan sebelumnya.

Contoh

Menerapkan teknik ini pada dataset kami sebelumnya menggunakan kode berikut:

kami mendapatkan hasil yang jauh lebih baik:

Dan rata-rata kesalahan kuadrat kami turun menjadi 3,17dari 8,88yang kami dapatkan dengan pemulusan eksponensial tunggal.

Prakiraan

Hingga saat ini kami telah mencari cara untuk menghaluskan data sehingga lebih mudah bagi kami untuk menafsirkannya. Namun bagaimana jika kita ingin melihat masa depan?

Untuk pemulusan eksponensial ganda, kita dapat menjumlahkan nilai pemulusan saat ini dan nilai tren untuk memprediksi nilai berikutnya. Secara umum ramalan dapat diketahui dengan menggunakan:

Prakiraan pada waktu t+M = Nilai yang Dihaluskan pada waktu t + M*Faktor Tren pada waktu t

Dalam kasus Pemulusan Eksponensial Tunggal, prediksi masa depan berbentuk garis horizontal karena memberikan kita prediksi terakhir untuk semua nilai masa depan. Ini, seperti yang ditunjukkan sebelumnya, berarti ini bukanlah teknik yang bagus jika melibatkan tren.

Grafik berikut menunjukkan perbandingan perkiraan masa depan untuk kedua teknik tersebut

Pemenangnya cukup jelas di sini.

Woo hoo!!!!

Kini setelah euforia awal berakhir, kami menyadari bahwa prediksi kami akan menunjukkan peningkatan drastis. Sekarang bagaimana jika kita tidak hanya memiliki tren tetapi juga musiman.

Referensi



Repo Github: https://github.com/Bazarovay/timeseries