Algoritme untuk membuat data yang awalnya tidak ada.

Ketika persediaan mencapai nol, penjualan barang tidak mungkin diamati. Namun, kami mungkin masih tertarik untuk menyimpulkan kuantitas ini untuk digunakan dalam aplikasi peramalan dan prediksi selanjutnya. Dengan menggunakan โ€œkumpulan dataโ€ yang mengkatalogkan lebih dari 500 ribu transaksi di situs e-niaga populer ASOS, saya akan mendemonstrasikan bagaimana penyelesaian matriks yang kuat dapat digunakan untuk memulihkan permintaan yang tidak teramati.

Selain Pra-Pemrosesan Data.

Untuk mempermudah, kami akan mempertimbangkan 20 item yang paling banyak terjual pada tahun 2011 dalam rentang 150 hari. Pembatalan pesanan yang tidak terpenuhi akan dibuang dan tidak dianggap berkontribusi terhadap permintaan. Kami juga akan mengabaikan item apa pun yang diperkenalkan baru-baru ini karena sebagian besar data penjualannya tidak lengkap.

The data has 541909 rows and 8 columns.

Memvisualisasikan Data.

Beralih ke logaritma natural penjualan untuk setiap produk-selanjutnya disebut sebagai โ€œlog-penjualanโ€-kita dapat melihat beberapa pola utama.

Pertama, kita dapat melihat bahwa distribusi tampak hampir simetris dengan beberapa outlier yang tampak berwarna biru. Hal ini penting untuk memilih fungsi kerugian yang tepat untuk memperkirakan penjualan kayu. Kita juga melihat bahwa tanggal dengan permintaan yang tidak teramati (tambalan kosong di peta panas) tampaknya tersebar secara acak sepanjang waktu dengan beberapa porsi besar yang berurutan seperti pada produk 22469. Terakhir, dari plot garis deret waktu,

kita dapat melihat bahwa penjualan kayu memiliki beberapa outlier atau kerusakan yang jarang terjadi (seperti produk 15036 pada awal Oktober 2010).

Menyimpulkan Permintaan menggunakan Penyelesaian Matriks yang Kuat.

Misalkan ๐›บ adalah himpunan indeks (๐‘–, ๐‘—) yang sesuai dengan permintaan yang diamati pada produk ๐‘— pada tanggal ๐‘–. Untuk menyimpulkan berapa permintaan pada tanggal-tanggal yang tidak dipenuhi (mungkin karena kekurangan persediaan), kita akan menyelesaikan masalah berikut

dimana ๐›ธ adalah matriks yang memuat log penjualan dan

jika (๐‘–, ๐‘—) berada di ๐›บ dan sama dengan nol sebaliknya. Dengan kata lain, kita menetapkan ๐›ธ sama persis dengan ๐‘ณ + ๐‘บ pada indeks yang sesuai dengan permintaan yang diamati. Entri yang tidak teramati merupakan parameter bebas dalam model.

Model ini kemudian mengembalikan dua bagian, ๐‘ณ dan ๐‘บ, yang menguraikan ๐›ธ. Matriks renggang ๐‘บ mengekstrak outlier dan kejadian ekstrem dari ๐›ธ. Komponen ๐‘ณ akan dianggap sebagai salinan ๐›ธ yang tidak diganggu dengan permintaan yang tidak teramati disimpulkan memungkinkan ๐‘ณ memiliki norma nuklir minimum. Tujuan dari ๐‘บ adalah untuk memungkinkan rekonstruksi ๐›ธ secara akurat tanpa parameternya terganggu oleh peristiwa ekstrem yang jarang atau tidak biasa. Oleh karena itu, ini dikenal sebagai penyelesaian matrikskuat.

Dengan menggunakan pustaka pemrograman cembung cvxpy, kami melakukan penyelesaian matriks yang kuat pada penjualan log dan memvisualisasikan hasilnya.

Memvisualisasikan Permintaan yang Disimpulkan.

Sekarang kembali ke peta panas data penjualan log ๐›ธ (atas), kami membandingkan secara visual di samping dekomposisinya menjadi komponen renggang ๐‘บ (tengah) dan komponen tanpa noise ๐‘ณ (bawah).

Kita dapat melihat bahwa perkiraan permintaan yang terkandung dalam ๐‘ณ tampaknya menangkap dinamika penjualan di berbagai produk dan jauh dari penurunan. Hal ini menunjukkan adanya beberapa dinamika nontrivial yang menghubungkan produk satu sama lain. Kami juga dapat melihat dengan jelas beberapa contoh di ๐‘บ di mana produk tertentu mungkin mengalami oversold atau undersold dibandingkan produk lainnya.

Intuisi.

Metode ini bekerja dengan menangkap hubungan antara penjualan item yang berbeda dan menggunakannya untuk menginterpolasi nilai yang tidak teramati. Misalnya, jika produk A, B, dan C saling berkaitan (misalnya dengan memiliki pola musiman yang serupa), dan kita dapat mengamati pergerakan bersama produk tersebut setiap hari, maka kita dapat menebak berapa banyak produk B yang terjual jika kita hanya dapat mengamati A dan C. Dengan kata lain, kita dapat menyimpulkan permintaan produk B dari A dan C.

Namun, ada perbedaan unik antara pendekatan ini dan sekadar melakukan regresi berganda pada item yang diamati: Dalam kerangka regresi, kita perlu mengetahui A dan C untuk memprediksi B. Namun bagaimana jika B dan A hilang pada hari tertentu? Bagaimana kita menggunakan model untuk B jika salah satu fiturnya tidak ada? Dan keesokan harinya, misalkan hanya B saja yang diamati. Bagaimana kita melakukan ini untuk A dan C?

Norma inti adalah relaksasi cembung dari operator pangkat dan norma ๐“โ‚ masing-masing untuk operator kardinalitas. Dengan demikian, penguraian ๐›ธ menjadi komponen ๐‘ณ dan ๐‘บ dapat dianalogikan dengan melakukan regresi linier berpenalti ๐“โ‚ pada nilai tunggal dari ๐›ธ. Permintaan yang tidak teramati adalah parameter bebas dalam model, serupa dengan bobot regresi. Penalti pada ๐‘บ juga memungkinkan kita memangkas observasi yang tidak biasa jika memungkinkan ๐‘ณ yang mengeksploitasi lebih banyak struktur di ๐›ธ, mirip dengan mengubah bobot sampel dalam regresi.

Oleh karena itu, kami tidak memerlukan sejumlah fitur yang tetap untuk menyimpulkan permintaan di setiap periodeโ€”hal ini dapat bervariasi setiap harinya.

Seberapa Berhasilkah Metode ini?

Bagian sebelumnya menunjukkan bagaimana menerapkan metode ini untuk menyimpulkan permintaan. Namun, kami tidak memiliki data dasar yang tersedia untuk membandingkan hasil dengan permintaan sebenarnya. Di bagian ini, kami akan menyensor lebih lanjut; kami akan dengan sengaja menyensor entri yang diamati untuk suatu produk dan memulihkannya menggunakan penyelesaian matriks yang kuat. Kemudian kita akan memeriksa seberapa dekat permintaan yang disimpulkan dengan permintaan sebenarnya dan menganalisis distribusi kesalahan empiris.

Contoh Sederhana.

Kita akan mulai dengan contoh yang terlalu disederhanakan untuk mendapatkan gambaran konseptual tentang apa yang terjadi. Secara khusus, kami akan menyensor produk 47566 selama dua minggu sekitar akhir tahun 2011.

Sekarang kami memulihkan permintaan menggunakan penyelesaian matriks yang kuat (kuning), memvisualisasikannya di samping kebenaran dasar (garis putus-putus biru) dan batas kesalahan ยฑ15% (wilayah berarsir biru).

Kita dapat melihat bahwa rekonstruksi tersebut ternyata sangat akurat, meskipun faktanya penjualannya disensor secara berturut-turut.

Contoh yang Realistis.

Sekarang kami mempertimbangkan skema penyensoran yang lebih realistis dengan mengambil sampel 500 indeks secara acak dari ๐›บ (tanpa pengembalian) dan menyensornya. Biarkan himpunan baru ini dilambangkan dengan ๐›บโ‚€โŠ‚๐›บ. Kami kemudian akan menyimpulkan permintaan dan menganalisis kesalahan rekonstruksi. Perhatikan bahwa kami tidak hanya akan mencoba memulihkan permintaan yang telah kami sensor di ๐›บโ‚€, namun juga permintaan yang sudah hilang dari kumpulan data (yaitu {1,โ€ฆ,๐‘š}ร—{1,โ€ฆ,๐‘›}โˆ– ๐›บ).

Memvisualisasikan data penjualan log asli ๐›ธ (atas), data penjualan log yang disensor lebih lanjut (tengah), dan komponen yang direkonstruksi ๐‘ณ (bawah):

Untuk memahami keakuratan rekonstruksi, kami akan mengevaluasi bentuk distribusi sisa modelโ€”perbedaan antara penjualan kayu yang direkonstruksi dan penjualan kayu yang sebenarnya. (Hal ini dapat berguna untuk aplikasi peramalan hilir seperti analisis sensitivitas parameter atau kumpulan ketidakpastian pengoptimalan yang kuat.) Dengan 500 residu, beberapa aspek menarik dari pendekatan ini dapat diamati darinya.

Distribusi residunya kira-kira simetris, meskipun agak berekor berat. Dengan transformasi yang sesuai, kemungkinan besar hal itu dapat diubah menjadi normal. Hal ini memungkinkan kami menentukan permintaan yang disimpulkan tidak hanya berdasarkan prediksi model, namun juga berdasarkan distribusi penuh (dalam hal ini log-normal karena kami menggunakan data penjualan log). Kita juga bisa melihatnya dari output berikut

Residuals of Log-Sales:
Mean Error: 0.1038 
Sqrt Mean Squared Error: 0.4107
Standard Error: 0.3974
Excess Skew: -0.0840
Excess Kurtosis: 0.8728
Percent Error on Raw Sales:
Mean Error: -0.0037
Sqrt. Mean Squared Error: 0.1486
Standard Error: 0.1486
Excess Skew: -2.5220
Excess Kurtosis: 8.5739

bahwa rata-rata deviasi kuadratnya adalah 15% dari penjualan mentah. Dengan kata lain, permintaan yang direkonstruksi dari model ini dapat dianggap berada dalam kisaran 15% dari jumlah yang akan terjual pada hari itu.

Kesimpulan.

Dalam demonstrasi ini, kami meninjau penggunaan penyelesaian matriks yang kuat untuk menyimpulkan permintaan dari serangkaian deret waktu multivariat yang berpotensi non-stasioner. Kami menemukan bahwa dengan memasukkan beberapa produk, kami dapat menyimpulkan permintaan secara relatif akurat ketika permintaan tersebut tidak diamati karena kekurangan persediaan. Selain itu, kami memiliki cara untuk mengetahui kapan jumlah penjualan yang tidak biasa diamati (melalui ๐‘บ) dan untuk mempelajari bentuk distribusi kesalahan dari perkiraan permintaan.

Pendekatan ini dapat diambil lebih lanjut, dengan potensi hasil yang lebih akurat, dengan membiarkan kelambatan dan transformasi non-linier lainnya menambah matriks data ๐›ธ sebelum melakukan penyelesaian matriks.