1 PENDAHULUAN

1.1 Latar Belakang

Analisis deret waktu merupakan salah satu metode statistik yang digunakan untuk memahami, memodelkan, dan meramalkan data yang dikumpulkan dari waktu ke waktu. Deret waktu tidak hanya berguna untuk menggambarkan kondisi masa lalu, tetapi juga untuk memproyeksikan kondisi masa depan berdasarkan pola yang telah teridentifikasi. Analisis deret waktu terdiri dari beberapa komponen utama yaitu tren, musiman, siklus, dan komponen acak. Tren menunjukkan arah pergerakan data dalam jangka panjang, sedangkan komponen musiman menggambarkan pola yang berulang dalam periode tertentu seperti bulanan atau tahunan.

Pada analisis kali ini, digunakan data harga tomat di Desa Cipulus, yang mana harga tomat cenderung berfluktuasi sepanjang tahun. Fluktuasi ini disebabkan oleh berbagai faktor seperti musim panen, kondisi cuaca, permintaan pasar, biaya produksi, dan distribusi. Dalam upaya untuk memahami pola fluktuasi harga tomat dan membuat prediksi yang akurat mengenai pergerakan harga di masa depan, analisis deret waktu menjadi metode yang sangat berguna. Analisis deret waktu memungkinkan kita untuk mengidentifikasi tren, pola musiman, dan siklus yang terdapat dalam data harga tomat dari waktu ke waktu.

Laporan ini bertujuan untuk menganalisis data harga tomat menggunakan metode analisis deret waktu. Dengan menganalisis data historis harga tomat, kita dapat mengidentifikasi pola-pola penting yang dapat digunakan untuk memprediksi harga di masa depan.

1.2 Tinjauan Pustaka

1.2.1 Pengertian deret waktu

Analisis deret waktu adalah teknik yang digunakan untuk menganalisis data dengan mempertimbangkan faktor waktu. Data dikumpulkan secara berkala berdasarkan urutan waktu, seperti per jam, harian, mingguan, bulanan, kuartalan, atau tahunan. Analisis ini bertujuan untuk membantu perencanaan masa depan dengan lebih baik. Untuk menentukan metode peramalan yang tepat pada data deret waktu, perlu diidentifikasi pola dalam data tersebut sehingga peramalan dapat dilakukan dengan metode yang paling sesuai. Pola data dapat dikategorikan menjadi empat jenis utama yaitu, pola musiman, siklis, tren, dan acak. Pola musiman adalah fluktuasi data yang terjadi secara periodik dalam satu tahun, seperti triwulanan, kuartalan, bulanan, mingguan, atau harian. Untuk data model stokastik, terdapat beberapa model yang dapat digunakan, seperti Autoregressive (AR), Moving Average (MA), Autoregressive Moving Average (ARMA), Autoregressive Integrated Moving Average (ARIMA), Seasonal ARIMA (SARIMA), dan lainnya.

1.2.2 Model Deret Waktu

Data yang dimodelkan dengan analisis deret waktu diasumsikan memiliki sifat stasioner, artinya tidak mengalami tren dalam nilai rata-rata dan variansinya. Dalam analisis deret waktu, data diharapkan mengikuti proses stokastik, yaitu suatu proses yang dinyatakan dalam variabel acak \(Z(t)\) dan dinotasikan dengan \(Z_t\) dan memiliki fungsi kepekatan \(f(Z_t)\) yang berarti nilai \(Z_{t1}, Z_{t2},...,Z_{tn}\) pada deret waktu \(t_1, t_2, …, t_n\) secara acak mengikuti distribusi probabilitas \(f(Z_t)\).

1.2.3 Autokorelasi & Partial Autokorelasi

\(Cov (Z_t, Z_s)\) (autokorelasi) adalah suatu fungi dari perbedaan waktu \(|t-s|\). Covarian antara \(Z_t\) dan \(Z_{t+k}\) yang di definisikan sebagai berikut :

\[ 𝛾_k=Cov (Z_t, Z_{t+k})=E(Z_t-𝜇)(Z_{t+k}-𝜇) \] korelasi antara \(Z_t\) dan \(Z_{t+k}\) adalah:

\[ 𝜌_k=\frac{Cov(Z_t,Z_{t+k})}{\sqrt{Var(Z_t)}\sqrt{Var(Z_{t+k})}}=\frac {𝛾_k}{𝛾_0} \]

dangan \(Var (Z_t)=Var (Z_{t+k})=𝛾_0\) .

Autokorelasi parsial digunakan untuk mengukur korelasi antara \(Z_t\) dan \(Z_{t+k}\) setelah menghilangkan dependensi linier. Autokorelasi parsial dapat diperoleh berdasarkan model regresi dengan variabel dependen adalah \(Z_{t+k}\) dan variabel independensi adalah \(Z_{t+k-1}, Z_{t+k-2}, …, Z_t\) sehingga terbentuklah model sebagai berikut:

\[ Z_{t+k}=∅_{k1}Z_{t+k_1}+∅_{k2}Z_{t+k-2}+...+∅_{kk}Z_t+e_{t+k} \]

1.2.4 Peramalan

Model ARIMA merupakan teknik yang digunakan untuk memodelkan dan memprediksi data deret waktu. Model ini menggabungkan model AR yang menggunakan nilai data sebelumnya untuk memprediksi, model MA yang menggunakan rata-rata kesalahan prediksi di masa lalu, dan proses differencing untuk mengubah data menjadi statis. Model ARIMA non musiman dapat ditulis sebagai ARIMA (p,d,q) dengan bentuk umum sebagai berikut:

\[ 𝜙_p(B)(1-B)^dZ_t=𝜃_0+𝜃_q(B)a_t \]

dimana:

\((p,d,q)\) : orde AR(p), orde differencing(d), dan orde MA(q)

\(𝜙_p\) (B) :koefisien komponen AR orde p

\(𝜃_q\) (B) :koefisien komponen MA orde q

\(𝜃_0\) :koefisien tren deterministic

\(a_t\) : nilai residual pada saat t

Identifikasi model ARIMA dapat dilakukan dengan melihat plot time series, plot ACF, dan PACF. Plot ACF dan PACF dapat digunakan untuk menentukan orde p dan orde q dari model ARIMA non musiman.

1.3 Data

Data yang digunakan adalah tentang harga tomat di Desa Cipulus, data ini didapatkan dari sebuah prosiding seminar yang berjudul “Pentingnya Data Deret Waktu dalam Melakukan Perencanaan Produksi”.

Periode Harga
Juni 2016 4.100
Juli 2016 1.700
Agustus 2016 1.600
September 2016 2.300
Oktober 2016 3.500
November 2016 5.500
Desember 2016 1.500
Januari 2017 3.000
Februari 2017 3.300
Maret 2017 4.500
April 2017 4.000
Mei 2017 5.000

1.4 Tujuan

Tujuan dari dilakukan analisis ini adalah untuk mengetahui pergeseran harga tomat, perubahan harga tomat, dan peramalan harga tomat untuk periode selanjutnya.

2 SOURCE CODE

2.1 Library

> # Library
> library(readxl)
> library(tseries)
> library(TSA)
> library(forecast)

2.2 Impor Data

> data_laprak <- read_excel("C:/Users/User/Downloads/data laprak adv.xlsx")
> View(data_laprak)

Data di import dari file excel yang sudah disimpan. Function read_excel digunakan untuk membaca dan mengimport data dari file excel ke dalam R.

2.3 Plot Time Series

> harga<-data_laprak$harga

Mengekstrak kolom bernama harga dari dataframe data_laprak dan menyimpannya dalam variabel baru bernama harga.

> test.ts <- ts(harga,start=c(2016,6),frequency = 12)
> test.ts
      Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec
2016                          4100 1700 1600 2300 3500 5500 1500
2017 3000 3300 4500 4000 5000                                   

Data didefinisikan ke bentuk data deret waktu dan diberi nama test.ts. Function ts digunakan untuk mengubah data menjadi sebuah deret waktu. Argument yang diisikan dalam function adalah harga yang merupakan vektor data yang berisi harga tomat, start=c(2016,6) yang digunakan untuk menentukan titik awal deret waktu sebagai Juni 2016, dan frequency = 12 yang digunakan untuk frekuensi data dimana hal ini menunjukan bahwa titik data dikumpulkan per bulan.

> plot.ts(test.ts, col = "navyblue", lty=1, xlab="waktu", ylab="harga tomat", 
+         main="harga tomat juni 2016 - mei 2017")

Menampilkan plot time series. Function plot.ts digunakan untuk membuat plot time series. Argument yang diisikan dalam function adalah tets.ts yang merupakan objek deret waktu yang akan diplot, col = "navyblue" yang digunakan untuk mengatur garis warna garis menjadi biru tua, lty=1 yang digunakan untuk mengatur jenis garis menjadi garis solid, xlab="waktu" yang digunakan untuk menetapkan “waktu” sebagai label sumbu x, ylab="harga tomat" yang digunakan untuk menetapkan “harga tomat” sebagai label sumbu y, dan main="harga tomat juni 2016 - mei 2017" yang digunakan untuk menetapkan “harga tomat Juni 2016 - Mei 2017” sebagai judul plot.

2.4 Time Lag

> l_harga<- zlag(harga,1)
> l_harga
 [1]   NA 4100 1700 1600 2300 3500 5500 1500 3000 3300 4500 4000

Menghitung pergeseran data dalam variabel harga satu periode ke belakang kemudian disimpan dalam variabel l_harga. Function zlag digunakan untuk menehitung pergeseran dalam data deret waktu. Argument yang diisikan dalam function adalah harga yang merupakan objek derek waktu yang akan dihitung lagnya, dan 1 yang menunjukkan bahwa yang dihitung adalah lag 1.

2.5 Plot Differencing

> d_harga1<-diff(harga)
> d_harga1
 [1] -2400  -100   700  1200  2000 -4000  1500   300  1200  -500  1000

Menghitung perubahan harga dari satu periode ke periode yang lain kemudian menyimpannya dalam variabel d_harga1. Function diff digunakan untuk menghitung diferensiasi dalam data deret waktu. Argument yang diisikan dalam function adalah harga yang merupan objek deret waktu yang akan dihitung perubahan harganya.

> plot(d_harga1,type = "l",main="harga tomat ,hasil pembedaan pertama",xlab="waktu",ylab="harga tomat")

Menampilkan plot yang menunjukan perubahan harga tomat dari satu periode ke periode berikutnya. Function plot digunakan untuk membuat plot. Argument yang diisikan dalam function adalah d_harga1 yang merupakan objek yang akan disajikan plotnya, type = "l" yang digunakan untuk mengatur jenis garis, main="harga tomat ,hasil pembedaan pertama" yang digunakan untuk mengatur “harga tomat ,hasil pembedaan pertama” sebagai judul plot, xlab="waktu" yang digunakan untuk menetapkan “waktu” sebagai label sumbu x, dan ylab="harga tomat" yang digunakan untuk menetapkan “harga tomat” sebagai label sumbu y.

2.6 Plot Autokorelasi

> acf(harga)

Menghitung dan menampilkan plot autokorelasi dari data harga. Function acf yang digunakan untuk menghitung autokorelasi dari deret waktu. Argument yang diisikan dalam function adalah harga yang merupakan objek deret waktu yang akan dilihat autokorelasinya.

> acf(harga,lag.max = 10)

sama seperti sebelumnya, tetapi terdapat argument tambahan yaitu lag.max = 10 yang menunjukan bahwa autokorelasi akan dihitung hingga lag ke-10.

> pacf(harga, lag.max = 10, main = "PACF Harga")

Menghitung dan menampilkan plot partial autokorelasi dari data harga. Function pacf yang digunakan untuk menghitung partial autokorelasi dari deret waktu. Argument yang diisikan dalam function adalah harga yang merupakan objek deret waktu yang akan dilihat autokorelasinya, lag.max = 10 yang menunjukan bahwa autokorelasi akan dihitung hingga lag ke-10, dan main = "PACF Harga" yang digunakan untuk menetapkan “PACH harga” sebagai judul plot.

> acf(d_harga1)

Menghitung dan menampilkan plot autokorelasi dari data perubahan harga. Function acf yang digunakan untuk menghitung autokorelasi dari deret waktu. Argument yang diisikan dalam function adalah d_harga1 yang merupakan objek deret waktu yang akan dilihat autokorelasinya.

2.7 Plot Peramalan

> fit <- auto.arima(test.ts)
> summary(fit)
Series: test.ts 
ARIMA(0,0,0) with non-zero mean 

Coefficients:
           mean
      3333.3333
s.e.   373.6722

sigma^2 = 1827879:  log likelihood = -103.02
AIC=210.03   AICc=211.37   BIC=211

Training set error measures:
                        ME     RMSE  MAE       MPE     MAPE MASE      ACF1
Training set -6.063391e-13 1294.433 1100 -20.40848 43.53864  NaN 0.1023983

Memilih model ARIMA secara otomatis kemudian menyimpannya dalam variabel fit. Function auto.arima digunakan untuk memilih model ARIMA yang optimal untuk data deret waktu secara otomatis. Argument yang diisikan dalam function adalah test.ts yang merupakan objek deret waktu yang akan dipilih model ARIMAnya. Setelah itu, ringkasan dari variabel fit akan ditampilkan dengan menggunakan fungsi summary(fit).

> forecasted <- forecast(fit, h=12)  
> forecasted
         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
Jun 2017       3333.333 1600.688 5065.979 683.4803 5983.186
Jul 2017       3333.333 1600.688 5065.979 683.4803 5983.186
Aug 2017       3333.333 1600.688 5065.979 683.4803 5983.186
Sep 2017       3333.333 1600.688 5065.979 683.4803 5983.186
Oct 2017       3333.333 1600.688 5065.979 683.4803 5983.186
Nov 2017       3333.333 1600.688 5065.979 683.4803 5983.186
Dec 2017       3333.333 1600.688 5065.979 683.4803 5983.186
Jan 2018       3333.333 1600.688 5065.979 683.4803 5983.186
Feb 2018       3333.333 1600.688 5065.979 683.4803 5983.186
Mar 2018       3333.333 1600.688 5065.979 683.4803 5983.186
Apr 2018       3333.333 1600.688 5065.979 683.4803 5983.186
May 2018       3333.333 1600.688 5065.979 683.4803 5983.186

Meramalkan harga tomat 12 bulan kedepan kemudian nilai disimpan dalam variabel forecasted. Function forecast digunakan untuk memprediksi nilai untuk setiap periode kedepannya bagi data deret waktu. Argument yang diisikan dalam function adalah fit yang merupakan objek deret waktu yang berisi harga tomat yang akan diperdiksi nilai kedepannya, dan h=12 yang menunjukan bahwa harga tomat akan diperdiksi untuk 12 bulan kedepan.

> plot(forecasted, main="Peramalan Harga Tomat", xlab="Waktu", ylab="Harga Tomat")

Menampilkan plot yang menunjukan peramalan harga tomat untuk 12 bulan kedepan. Function plot digunakan untuk membuat plot. Argument yang diisikan dalam function adalah forecasted yang merupakan objek yang akan disajikan plotnya, main="Peramalan Harga Tomat" yang digunakan untuk mengatur “Peramalan Harga Tomat” sebagai judul plot, xlab="waktu" yang digunakan untuk menetapkan “waktu” sebagai label sumbu x, dan ylab="harga tomat" yang digunakan untuk menetapkan “harga tomat” sebagai label sumbu y.

3 HASIL DAN PEMBAHASAN

3.1 Plot Time Series

Dari gambar plot pertama dapat disimpulkan bahwa:

  • Tren harga tomat secara keseluruhan meningkat dari Juni 2016 hingga Mei 2017.

  • Perubahan harga tidak merata dimana sepanjang periode, dimana kenaikan paling signifikan September 2016 dan april 2017 sedangkan penurunan paling signifikan terjadi pada desember 2016.

  • Adapun harga tertinggi yang dicapai adalah Rp.5.500 dan harga terendahnya adalah Rp.1.500.

3.2 Time Lag

Dari hasil perhitungan dapat dilihat bahwa :

  1. Terdapat 12 amatan mulai dari Juni 2016 sampai Mei 2017.

  2. Pada time lag 1 didapatkan bahwa:

    • Pada Juni 2016 : NA (merujuk pada Mei 2016, yang tidak ada)

    • Pada Juli 2016 : digunakan pengamatan Juni 2016.

    • Pada Agustus 2016 : digunakan pengamatan Juli 2016.

    • Pada September 2016 : digunakan pengamatan agustus 2016.

    • Pada Oktober 2016 : digunakan pengamatan September 2016.

    • Pada November 2016 : digunakan pengamatan Oktober 2016.

    • Pada Desember 2016 : digunakan pengamatan November 2016.

    • Pada Januari 2017 : digunakan pengamatan Desember 2016.

    • Pada Februari 2017 : digunakan pengamatan Januari 2017.

    • Pada Maret 2017: digunakan pengamatan Februari 2017.

    • Pada April 2017 : digunakan pengamatan Maret 2017.

    • Pada Mei 2017 : digunakan pengamatan April 2017.

3.3 Differencing

Dari gambar plot kedua dapat disimpulkan bahwa:

  • Harga tomat meningkat secara konsisten selama 10 bulan terakhir.

  • Harga tomat mengalami fluktuasi musiman, dimana harga tomat cenderung lebih tinggi pada musim tertentu.

3.4 Autokorelasi & Partial Autokorelasi

Dari plot ketiga dan keempat yang berisi grafik ACF didapatkan bahwa terdapat autokorelasi yang signifikan pada lag 1. Hal ini menunjukkan bahwa terdapat ketergantungan antara residu antara harga tomat bulan ini dan bulan bulan sebelumnya. Kemudian setelah dilakukuan pengecekan partial autokorelasi yang dapat dilihat pada plot kelima didapatkan bahwa terdapat autokorelasi parsial yang signifikan pada lag 1. Hal ini menunjukkan bahwa terdapat ketergantungan antara residu harga tomat bulan ini dan bulan bulan sebelumnya, setelah memperhitungkan autokorelasi pada lag sebelumnya.

Kemudian dilakukan juga pengecekan autokorelasi pada perbedaan harga tomat yang mana bisa dilihat pada plot keenam dimana didapatkan bahwa autokorelasi yang signifikan pada lag 1. Hal ini menunjukkan bahwa terdapat ketergantungan antara residu antara perubahan harga tomat bulan ini dan bulan bulan sebelumnya.

3.5 Peramalan

Dari perhitungan dan plot ketujuh dapat dilihat bahwa prediksi harga tomat di masa depan menunjukkan tren kenaikan. Pada bulan Juni 2017, harga tomat diprediksi mencapai rata-rata 3.333,333 rupiah, dengan harga terendah 1.600,688 rupiah dan harga tertinggi 5.065,979 rupiah. Prediksi harga tomat terus meningkat hingga mencapai puncaknya pada bulan Juni 2017 dengan rata-rata 5.983,186 rupiah, harga terendah 683,4803 rupiah, dan harga tertinggi 5.983,186 rupiah.

4 KESIMPULAN

Kesimpulannya adalah harga tomat dari Juni 2016 hingga Mei 2017 menunjukkan tren kenaikan dengan fluktuasi musiman. Prediksi harga tomat menunjukkan tren kenaikan hingga mencapai puncaknya pada Juni 2017.

5 DAFTAR PUSTAKA

Mariana, I., & Lestari, D. A. (2017). Pentingnya Data Deret Waktu dalam Melakukan Perencanaan Produksi. Prosiding Seminar Nasional Multi Disiplin & Call For Papers Unisbank ke-3 (SENDI_U3), (pp.582-589). Majalengka.

Maulana, H. A. (2018). Pemodelan Deret Waktu dan Peramalan Curah Hujan pada Dua Belas Stasiun di Bogor. Jurnal Matematika, Statistika, dan Komputasi, vol.15, 50-63.

putri, G. A., Hendayanti, N. P., & Nurhidayati, M. (2017). Pemodelan Data Deret Waktu dengan Autogressive Integrated Moving Averge dan Logistic Smoothing Transition Autoregressive. Jurnal Varian, 54-63.