Peramalan menggunakan Autoregression
Latar Belakang
Pada era globalisasi, perkembangan bidang industri maju dengan pesat. Dengan seiringnya perkembangan perekonomian, kebutuhan furniture atau perabotan rumah tangga semakin meningkat. Furniture mempunyai daya saing global yang bernilai tinggi. Produk furniture berasal dari bahan baku yang masih melimpah seperti, rotan, bambu , kayu dan bahan yang lain seperti plastik dan logam (Amarta dan Ma’rifah 2021 dalam Susatyo et al. 2022).
Perusahaan yang bergerak dibidang pendistribusian produk atau bidang jasa penjualan pasti menginginkan keberhasilan dalam aktivitasnya di masa depan. Dalam hal ini, seorang pemimpin perusahaan harus mempunyai kemampuan untuk bisa menetapkan keputusan yang tepat untuk menghadapi masa depan yang penuh dengan ketidakpastian. Salah satu cara agar perusahaan bisa meraih tujuannya yaitu melakukan forecasting atau peramalan. Perusahaan harus bisa meramalkan besarnya permintaan atau penjualan akan barang atau jasa yang dihasilkan (Wardah dan Iskandar 2016 dalam Susatyo et al. 2022).
Berkaitan dengan penyusunan rencana penjualan, informasi yang didapatkan dari peramalan penjualan akan memberikan gambaran yang bermanfaat untuk prospek permintaan produk tersebut di pasar. Baik buruknya prospek penjualan suatu produk pada dasarnya tidak hanya bergantung pada kemampuan maupun penggunaan metode peramalan yang tepat (Susatyo et al. 2022).
Hasil dari sebuah peramalan dalam prakteknya tidak secara mutlak tepat karena keadaan di masa depan yang tidak menentu. Meskipun demikian, jika semua faktor penting yang mempengaruhi telah diperhitungkan dan model hubungan dari faktor tersebut bisa ditentukan dengan baik, maka hasil dari peramalan yang dilakukan akan mendekati kondisi yang sebenarnya (Wardah dan Iskandar 2016 dalam Susatyo et al. 2022). Hampir semua bagian di dalam perusahaan sangat membutuhkan hasil dari sebuah peramalan. Hasil peramalan di lingkungan bisnis umumnya memiliki implikasi pada peramalan penjualan. Oleh karena itu, peramalan penjualan dalam sebuah perusahaan sangat diperlukan untuk jangka pendek maupun jangka panjang (Susatyo et al. 2022).
Oleh karena itu, metode peramalan subjektif dengan menggunakan Autoregression akan dilakukan untuk memprediksi nilai penjualan furnitur dan perabot rumah tangga di masa depan dengan melihat ada atau tidaknya pengaruh dari nilai penjualan pada waktu-waktu sebelumnya.
Data
Load Package
library(tidyverse)## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.3.6 ✔ purrr 0.3.4
## ✔ tibble 3.1.8 ✔ dplyr 1.0.10
## ✔ tidyr 1.2.1 ✔ stringr 1.4.1
## ✔ readr 2.1.2 ✔ forcats 0.5.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
library(seasonal) ##
## Attaching package: 'seasonal'
##
## The following object is masked from 'package:tibble':
##
## view
library(fpp2)## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
## ── Attaching packages ────────────────────────────────────────────── fpp2 2.4 ──
## ✔ forecast 8.17.0 ✔ expsmooth 2.3
## ✔ fma 2.4
Import Data
Data yang akan digunakan adalah data ritel yaitu penjualan furnitur dan perabot rumah tangga yang terdiri atas 321 amatan.
#membuka file data
furniture <- read.csv("C:/Users/User/Documents/DIAH/SEMESTER 5/STA1341 METODE PERAMALAN DERET WAKTU/retail-sales-furniture-and-home-furnishings-stores.csv")
nrow(furniture)## [1] 321
head(furniture)## realtime_start realtime_end date value
## 1 2018-12-11 2018-12-11 1992-01-01 3846
## 2 2018-12-11 2018-12-11 1992-02-01 3908
## 3 2018-12-11 2018-12-11 1992-03-01 4157
## 4 2018-12-11 2018-12-11 1992-04-01 4141
## 5 2018-12-11 2018-12-11 1992-05-01 4275
## 6 2018-12-11 2018-12-11 1992-06-01 4357
Data tersebut merupakan data bulanan yang dimulai pada tahun 1992.
Selanjutnya, kolom value akan diubah menjadi objek deret
waktu dengan fungsi ts().
sales <- ts(furniture$value)
sales## Time Series:
## Start = 1
## End = 321
## Frequency = 1
## [1] 3846 3908 4157 4141 4275 4357 4407 4446 4328 4497 4687 5287
## [13] 4104 3908 4369 4372 4535 4568 4682 4733 4621 4775 5158 5631
## [25] 4018 4140 4827 4700 4867 4958 4980 5356 5203 5328 5734 6305
## [37] 4649 4410 5084 4818 5195 5196 5190 5506 5418 5505 6090 6409
## [49] 4788 4833 5410 5310 5603 5479 5673 5893 5589 5970 6425 6734
## [61] 5311 5116 5715 5670 6010 5805 6027 6263 6094 6369 6781 7554
## [73] 5822 5581 6162 6038 6225 6310 6466 6502 6329 6693 7186 8098
## [85] 5922 5996 6790 6481 6684 6853 6961 7240 7139 7339 8006 8883
## [97] 6638 6989 7622 7134 7635 7487 7508 7974 7535 7667 8346 8635
## [109] 7050 6797 7572 6940 7551 7491 7456 7971 7078 7603 8548 9427
## [121] 7149 7091 7777 7370 7991 7502 7671 8205 7456 7859 8839 9528
## [133] 7190 6713 7618 7374 8078 7753 8074 8384 8017 8351 9018 10166
## [145] 7651 7613 8499 7991 8112 8443 8895 8883 8441 8718 9594 10917
## [157] 7908 7973 8787 8418 8649 8966 8957 9607 9216 9110 10232 11297
## [169] 8595 8457 9412 8556 9209 9447 9244 9940 9511 9178 10195 11051
## [181] 8802 8423 9415 8553 9266 9171 9194 9867 8885 9069 10012 10487
## [193] 8163 8104 8381 8029 8604 8117 8495 8456 7676 7712 8121 8862
## [205] 6796 6593 6907 6608 6974 6922 7194 7159 6967 6853 7375 8401
## [217] 6324 6468 7271 6729 6932 6902 7243 7330 7101 6793 7630 8482
## [229] 6244 6488 7530 6896 7086 7039 7241 7685 7450 6967 7931 9029
## [241] 6866 7169 7784 6872 7683 7378 7551 8064 7439 7260 8260 9216
## [253] 7297 7089 7875 7314 7834 7558 7977 8461 7848 8059 8842 9195
## [265] 7201 7227 8104 7791 8384 7881 8403 8734 8371 8441 8950 10231
## [277] 7964 7514 8616 8261 8893 8576 9110 9148 8967 9108 9488 10925
## [289] 8188 8395 9281 8629 9036 9157 9235 9639 9621 9160 10089 11038
## [301] 8480 8471 9945 8878 9755 9717 9588 10246 9879 9851 10915 11636
## [313] 9016 8816 10353 9527 10286 10103 10113 10615 9928
Karena data tersebut adalah data bulanan yang dimulai pada tahun 1992, maka akan diperbarui dengan syntax sebagai berikut.
sales <- ts(furniture$value, frequency = 12, start = 1992)
sales## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 1992 3846 3908 4157 4141 4275 4357 4407 4446 4328 4497 4687 5287
## 1993 4104 3908 4369 4372 4535 4568 4682 4733 4621 4775 5158 5631
## 1994 4018 4140 4827 4700 4867 4958 4980 5356 5203 5328 5734 6305
## 1995 4649 4410 5084 4818 5195 5196 5190 5506 5418 5505 6090 6409
## 1996 4788 4833 5410 5310 5603 5479 5673 5893 5589 5970 6425 6734
## 1997 5311 5116 5715 5670 6010 5805 6027 6263 6094 6369 6781 7554
## 1998 5822 5581 6162 6038 6225 6310 6466 6502 6329 6693 7186 8098
## 1999 5922 5996 6790 6481 6684 6853 6961 7240 7139 7339 8006 8883
## 2000 6638 6989 7622 7134 7635 7487 7508 7974 7535 7667 8346 8635
## 2001 7050 6797 7572 6940 7551 7491 7456 7971 7078 7603 8548 9427
## 2002 7149 7091 7777 7370 7991 7502 7671 8205 7456 7859 8839 9528
## 2003 7190 6713 7618 7374 8078 7753 8074 8384 8017 8351 9018 10166
## 2004 7651 7613 8499 7991 8112 8443 8895 8883 8441 8718 9594 10917
## 2005 7908 7973 8787 8418 8649 8966 8957 9607 9216 9110 10232 11297
## 2006 8595 8457 9412 8556 9209 9447 9244 9940 9511 9178 10195 11051
## 2007 8802 8423 9415 8553 9266 9171 9194 9867 8885 9069 10012 10487
## 2008 8163 8104 8381 8029 8604 8117 8495 8456 7676 7712 8121 8862
## 2009 6796 6593 6907 6608 6974 6922 7194 7159 6967 6853 7375 8401
## 2010 6324 6468 7271 6729 6932 6902 7243 7330 7101 6793 7630 8482
## 2011 6244 6488 7530 6896 7086 7039 7241 7685 7450 6967 7931 9029
## 2012 6866 7169 7784 6872 7683 7378 7551 8064 7439 7260 8260 9216
## 2013 7297 7089 7875 7314 7834 7558 7977 8461 7848 8059 8842 9195
## 2014 7201 7227 8104 7791 8384 7881 8403 8734 8371 8441 8950 10231
## 2015 7964 7514 8616 8261 8893 8576 9110 9148 8967 9108 9488 10925
## 2016 8188 8395 9281 8629 9036 9157 9235 9639 9621 9160 10089 11038
## 2017 8480 8471 9945 8878 9755 9717 9588 10246 9879 9851 10915 11636
## 2018 9016 8816 10353 9527 10286 10103 10113 10615 9928
Fungsi ts() mengasumsikan bahwa data tersebut merupakan
data bulanan dengan angka 12 untuk frekuensi bulanan yang dimulai dari
tahun 1992.
Time Series Plot
autoplot(sales, main = "Furniture and Home Furnishing Sales: 1992-2018")Pada plot di atas terlihat beberapa hal yaitu terdapat trend naik secara umum, trend-nya tidak konstan dan bergerak turun selama resesi, serta terdapat perbedaan penjualan berdasarkan bulan.
Metode Peramalan: Autoregression
Autoregression adalah regresi, kecuali nilai x yang kita gunakan
untuk memprediksi nilai y adalah nilai masa lalu dari y. Dengan kata
lain, y memprediksi nilai masa depan y. Pertama, kita perlu mengetahui
apakah nilai masa lalu merupakan prediktor yang baik untuk nilai masa
depan. Kita dapat melihat korelasi antara suatu deret dengan nilai masa
lalunya dengan membuat plot autokorelasi dengan fungsi
ggAcf().
Catatan: Series sering kali tidak memiliki korelasi dengan nilai masa lalu, membuat model autoregresif tidak berguna.
ggAcf(sales)Berdasarkan gambar di atas, pada sumbu x kita memiliki periode waktu sebelumnya. Pada sumbu y kita melihat nilai ACF dari periode waktu pada sumbu x.
Di sini kita melihat korelasi yang kuat antara nilai sekarang dan nilai sebelumnya, seperti yang ditunjukkan oleh batang vertikal. Ini masuk akal karena nilai terbaru memberikan indikator trend. Terlihat juga korelasi yang cukup baik dengan nilainya setahun yang lalu. Ini masuk akal karena nilainya memuncak pada waktu yang sama setiap tahun.
Karena nilai-nilai ini terkait erat (yaitu korelasi tinggi). Kita dapat membuat model autoregressive yang efektif dengan fungsi ar(). Akan dibuat regresi linier dengan menemukan koefisien antara nilai masa lalu dan saat ini.
autoregression_sales <- ar(sales)
autoregression_sales##
## Call:
## ar(x = sales)
##
## Coefficients:
## 1 2 3 4 5 6 7 8
## 0.8187 0.0140 0.1290 -0.1174 0.1522 -0.0093 -0.0843 0.0369
## 9 10 11 12 13 14 15 16
## 0.1900 -0.2756 -0.0021 0.6540 -0.4697 -0.0564 -0.0605 0.0750
## 17 18 19 20 21 22 23 24
## -0.0769 -0.0386 0.1307 -0.0457 -0.1665 0.1873 0.0311 0.1907
## 25
## -0.2359
##
## Order selected 25 sigma^2 estimated as 166701
ar() merekomendasikan agar kita menggunakan urutan 25.
Artinya kita menggunakan 25 nilai sebelumnya untuk memprediksi yang
berikutnya. Koefisien juga ditampilkan pada output di atas.
autoplot(forecast(autoregression_sales, level = 0, h = 12))# level = 0 prevents a confidence interval from being generatedDapat diperhatikan bahwa model ini secara visual tidak seperti yang diharapkan karena plot ramalannya cenderung akan menurun. Lalu kita akan mengurangi musim data, mencoba memprediksinya, dan kemudian menyesuaikannya kembali.
decomposed_sales <- seas(sales) # time series decomposition
decomposed_sales <- data.frame(decomposed_sales$data) # makes a data frame out of the output of seas() which is not a data frame
time_series_sales_trend <- ts(decomposed_sales$trend, frequency = 12, start = 1992) # turn the trend into a time series
ar_forecast <- forecast(ar(time_series_sales_trend), h = 12) # forecast the trend
autoplot(sales) + autolayer(ar_forecast$mean * tail(decomposed_sales$seasonal, 12), color="blue") # ar_forecast$mean memberikan hasil ramalan
# Mengalikan dengan 12 faktor musiman terakhir untuk menyesuaikan kembali
#tail() untuk memilih nilai terakhir dari sesuatu, lalu angka 12 untuk memberi faktor musiman terbaru. tail() bekerja seperti head()
#autolayer() menambahkan series lain ke plotPlot di atas sudah lebih baik dari plot sebelumnya karena bentuk plot ramalannya cenderung memiliki trend naik seperti waktu-waktu sebelum terjadi penurunan penjualan.
Kesimpulan
Data di atas cocok dibuat peramalan menggunakan autoregression karena terdapat korelasi yang kuat antara nilai sekarang dan nilai sebelumnya. Namun apabila hasil plotnya kurang sesuai, dapat dilakukan penyesuaian agar plot peramalan menjadi lebih baik. Apabila series tidak memiliki korelasi dengan nilai masa lalu, maka membuat model autoregresif tidak berguna sehingga perlu menggunakan metode peramalan yang lain.
Daftar Pustaka
Susatyo AA, Jufriyanto M, Rizqi AW. Analisis Peramalan Penjualan Produk Furniture di PT. Katwara. Jurnal Teknovasi. 9(1):69-82.
Kaggle.com. Diakses pada 14 September 2022 dari https://www.kaggle.com/code/brwalk/an-introduction-to-time-series-forecasting-in-r/notebook
- Syadiah (G1401201042)