library(tidyverse) #data manipulation
library(lubridate) # date manipulation
library(forecast) # time series library
library(TTR) # for Simple moving average function
library(MLmetrics) # calculate error
library(tseries) # adf.test
library(fpp)
library(padr)
library(zoo)
library(dplyr)
library(ggplot2)
library(gridExtra)
library(imputeTS)
library(quantmod)
library(ggplot2)
library(econothemes)
Data yang digunakan adalah data IHSG sektoral keuangan (JKFINA) periode Januari 2006 sampai dengan Desember 2019 yang diperoleh dari www.yahoo.finance.com. IHSG adalah indeks harga saham gabungan secara umum dan berfungsi sebagai pengukuran kinerja suatu saham gabungan di bursa efek.IHSG dipengaruhi oleh faktor eksternal yaitu tingkat suku bunga luar negeri dan indeks harga saham luar negeri serta faktor internal yaitu nilai tukar rupiah terhadap USD, tingkat inflasi, suku bunga deposito, suku bunga SBI, dan jumlah uang beredar di masyarakat (Purba 2014).
head(df) %>%
knitr::kable(caption = "Data IHSG periode 2012-2022")
Date | JKFINA.Open | JKFINA.High | JKFINA.Low | JKFINA.Close | JKFINA.Volume | JKFINA.Adjusted |
---|---|---|---|---|---|---|
2012-01-02 | 492.05 | 493.50 | 488.52 | 491.10 | 84100000 | 491.10 |
2012-01-03 | 491.82 | 496.68 | 491.77 | 496.62 | 269100000 | 496.62 |
2012-01-04 | 495.90 | 501.61 | 495.85 | 499.21 | 254800000 | 499.21 |
2012-01-05 | 498.94 | 499.97 | 494.75 | 496.29 | 545200000 | 496.29 |
2012-01-06 | 496.01 | 496.85 | 490.24 | 492.98 | 204600000 | 492.98 |
2012-01-09 | 492.26 | 498.93 | 488.91 | 498.93 | 539600000 | 498.93 |
Tabel 1 memperlihatkan seluruh variabel yang akan digunakan. Data yang akan diguakan hanya harga saat closing, sehingga hanya kolom tanggal dan kolom harga closing yang akan diambil. Tabel 2 memperlihatkan sebagian dari data yang akan digunakan.
df1 <- df %>%
select(c(Date,JKFINA.Close))
df1$Date <- ymd(df1$Date)
head(df1) %>% knitr::kable(
caption = "Lima data pertama *subset* data yang digunakan"
)
Date | JKFINA.Close |
---|---|
2012-01-02 | 491.10 |
2012-01-03 | 496.62 |
2012-01-04 | 499.21 |
2012-01-05 | 496.29 |
2012-01-06 | 492.98 |
2012-01-09 | 498.93 |
Pada data tersebut, terlihat bahwa terdapat beberapa tanggal yang
terlewati, seperti pada tanggal 1 Januari 2012, 7 Januari 2012, dan 8
Januari 2012 dan masih banyak lagi. Setelah dilakukan investigasi,
ternyata tanggal-tanggal ini terletak pada hari Sabtu dan Minggu, dan
hari libur nasional, sehingga tanggal-tanggal yang dilewati ini harus
dimasukkan dalam dataset tersebut seperti pada
\@ref(data_tanngal_bener)
.
date.seq <- data.frame("Date" = seq(ymd(start), ymd(end), by = "days"))
df1 <- merge(date.seq, df1, by = "Date", all.x = T)
knitr::kable(head(df1),
caption = "Data dengan tanggal yang benar", align = "c",
label = "data_tanggal_bener")
Date | JKFINA.Close |
---|---|
2012-01-01 | NA |
2012-01-02 | 491.10 |
2012-01-03 | 496.62 |
2012-01-04 | 499.21 |
2012-01-05 | 496.29 |
2012-01-06 | 492.98 |
Pada analisis data deret waktu, tidak boleh ada data yang kosong dan periode deret waktu harus seragam untuk seluruh data. Untuk itu, pengecekan data kosong atau missing-values harus dilakukan terlebih dahulu.
sum(is.na(df1))
## [1] 1248
Terdapat 1248 data kosong yang berada pada dataset tersebut, sehingga harus dilakukan interpolasi terlebih dahulu. Interpolasi yang digunakan adalah spline interpolation dimana data dibagi menjadi beberapa bagian lalu data kosong disubstitusikan berdasarkan data pada bagian tersebut. Metode ini relatif mudah digunakan dan pola dan karakteristik data tetap dipertahankan (Rappai 2015).
dataimp = na_interpolation(df1, option = "spline")
head(dataimp)
sum(is.na(dataimp))
## [1] 0
Pada dataset tersebut sudah tidak ada lagi missing values sehingga analisis deret waktu dapat dilanjutkan. Setelah itu, data akan diagregasi menjadi data bulanan.
Plot data sebelum interpolasi dan setelah interpolasi dapat dilihat sebagai berikut.
windowsFonts(Times = windowsFont("Times New Roman"))
ggplot_na_imputations(df1$JKFINA.Close, dataimp$JKFINA.Close,
title = NULL,
subtitle = NULL,
size_points = 1.5,
size_imputations = 1.5,
xlab = "\nTahun",
ylab = "Harga saat closing\n",
x_axis_labels = dataimp$Date,
label_known = "Sebelum imputasi",
label_imputations = "Setelah imputasi",
shape_points = 20,
shape_imputations = 20,
legend_size = 5,
theme = theme_classic(base_family = 'Times',
base_size = 12))
Terlihat bahwa imputasi data dengan metode spline interpolation
dapat memberikan nilai-nilai yang memiliki pola yang sama dengan data
aslinya. Setelah melakukan imputasi, maka data akan diagregasikan
menjadi data rataan per harga closing IHSG per bulannya.
dataimp$Date <- floor_date(ymd(dataimp$Date),"month")
df2 <- dataimp %>%
group_by(Date) %>%
summarize(Close = mean(JKFINA.Close))
Statistika deskriptif singkat dari data tersebut adalah sebagai berikut.
summary(df2)
## Date Close
## Min. :2012-01-01 Min. : 484.4
## 1st Qu.:2014-07-16 1st Qu.: 662.9
## Median :2017-02-01 Median : 824.5
## Mean :2017-01-30 Mean : 926.3
## 3rd Qu.:2019-08-16 3rd Qu.:1203.4
## Max. :2022-03-01 Max. :1615.8
Didapatkan nilai rata-rata sebesar 926.3 dan median sebesar 824.5. Untuk nilai minimum data tersebut yaitu sebesar 484.429 terjadi pada bulan Juni tahun 2012 sedangkan untuk nilai maksimum data tersebut sebesar 1615.753 terjadi pada bulan Maret tahun 2022.
Pada bulan Desember 2019 IHSG bergerak menguat hingga 4,79% hal tersebut sudah biasa terjadi karena sejak tahun 2011 sudah 7 kali IHSG selalu meningkat pada penutupan perdagangan (akhir tahun). Selain peristiwa akhir tahun, peristiwa Idul Adha di Indonesia pun bisa memberikan efek positif terhadap IHSG (Nugroho. 2017) INI HARUS DIUBAH
Salah satu metode eksplorasi yang paling cepat untuk dilakukan adalah dengan melakukan plot time-series. Plot ini memperlihatkan secara cepat bagaimana pola dan trend dari data itu sendiri.
ggplot(df2, aes(x = Date, y = Close)) +
geom_line(width = 1.5, col = "steelblue") +
geom_point(size = 1.5, col = "steelblue") +
scale_x_date(date_breaks = "year", date_labels = "%Y") +
scale_y_continuous(breaks = seq(200,
1500,
by = 200)
) +
xlab("\nPeriode Waktu") +
ylab("Harga saat closing\n") +
theme_classic() +
theme(text = element_text(size = 12, family = "Times"),
panel.border = element_rect(color = "gray", fill = NA))
Seiring dengan berjalannya waktu, harga closing IHSG semakin meningkat.
Tentunya hal ini bukan tanpa sebab, karena IHSG sangat terikat dengan
fenomena ekonomi makro, baik internal, seperti inflasi, suku bunga,
nilai tukar, dan lainnya, serta eksternal, seperti indeks bursa harga
luar negeri, harga minyak mentah, harga emas, dan kestabilan politik
suatu negara (Wijaya 2015). Penelitian oleh Tambunan dan Aminda (2021)
menyatakan bahwa trend naiknya IHSG dapat dijelaskan secara kuat oleh
kurs rupiah. Dari plot tersebut tidak terlihat adanya plot musiman. Hal
ini ditandai dengan tidak adanya pola siklik pada data tersebut.
df2 %>%
mutate("year" = format(Date, "%Y"),
"month" = format(Date, "%m")) %>%
group_by(year) %>%
ggplot(aes(x = reorder(year, Close), y = Close)) +
geom_boxplot(fill = "steelblue") +
coord_flip() +
theme_classic(base_size = 12, base_family = "Times") +
theme(panel.spacing = unit(0.25, "lines"),
panel.border = element_rect(color = "black",
fill = NA,
size = 0))
Terlihat bahwa apabila data dipenggal per tahun, terlihat sekali bahwa
keragaman antar tahun sangat berbeda. Tahun 2012 terlihat memiliki
keragaman paling kecil dengan keragaman paling besar terlihat pada tahun
2020. Untuk melihat mengapa hal tersebut dapat terjadi, dapat dilihat
pada grafik di bawah ini. TAMBAHIN BERITA TERUTAMA DI 2012 SAMA
2019-2021
df2 %>%
mutate("Year" = format(Date, "%Y")) %>%
group_by(Year) %>%
filter(Year < 2017) %>%
ggplot(aes(x = Date, y = Close)) +
geom_line(col = "steelblue") +
geom_point(col = "steelblue") +
xlab("\nPeriode Waktu") +
ylab("Harga saat closing\n") +
scale_x_date(date_breaks = "2 months", date_labels = "%b") +
theme_classic(base_family = "Times") +
theme(panel.spacing = unit(0.25, "lines"),
panel.border = element_rect(color = "black", fill = NA, size = 1),
axis.text.x.bottom = element_text(size = 7)) +
facet_grid(cols = vars(Year), scales = "free_x")
Pada tahun 2006-2007, terlihat bahwa IHSG naik relatif teratur dengan IHSG naik dari 138.889 pada awal tahun dan ditutup pada akhir tahun dengan harga 263.4099. detikFinance (2006) melaporkan bahwa pada akhir 2006, IHSG mencapai nilai tertingginya sepanjang sejarah, dan terus meningkat hingga 2007. Pada tahun 2008, nilai IHSG turun drastis, akibat krisis moneter dunia yang terjadi pada tahun tersebut. Dari bulan Januari hingga Desember nilai IHSG menurun secara perlahan sampai dengan triwulan ke-IV. Pada periode ini terdapat lonjakan penurunan yang cukup drastis antara bulan September sampai November akibat krisis keuangan tersebut (Kompas 2008). Tahun 2009-2010 menandai kebangkitan IHSG, dengan peningkatan paling drastis terjadi pada periode ini. Tahun 2009 IHSG hanya terjadi penurunan pada bulan Februari akibat arus negatif bursa regional (Kompas 2009). Pembelian saham oleh investor asing mampu mendongkrak menuju titik tertinggi setelah mengalami penurunan akibat krisis moneter (detikFinance 2009). Pola kenaikan juga terus terjadi pada tahun 2010 yang juga didorong oleh masuknya investor-investor asing (Kompas 2010). Tahun 2011 memperlihatkan trend yang terus naik, tetapi tidak sesignifikan periode sebelumnya. Kinerja ekonomi Indonesia yang stabil dan krisis utang Eropa menjadi faktor utama yang menjelaskan trend IHSG pada tahun tersebut (Juita et al. 2015). Krisis utang Eropa juga mempengaruhi kinerja IHSG pada 2012. Pada periode ini pertumbuhan relatif stabil tetapi terlihat bahwa terdapat penurunan yang relatif besar pada kuartal awal akibat krisis hutang Eropa. INI HARUS DIUBAH.
df2 %>%
mutate("Year" = format(Date, "%Y")) %>%
group_by(Year) %>%
filter(Year >= 2017) %>%
ggplot(aes(x = Date, y = Close)) +
geom_line(col = "steelblue") +
geom_point(col = "steelblue") +
xlab("\nPeriode Waktu") +
ylab("Harga saat closing (Rp)\n") +
scale_x_date(date_breaks = "3 months", date_labels = "%b") +
theme_classic(base_family = "Times") +
theme(panel.spacing = unit(0.3, "lines"),
panel.border = element_rect(color = "black", fill = NA, size = 0.5),
axis.text.x.bottom = element_text(size = 7)) +
facet_grid(cols = vars(Year), scales = "free_x")
Pada 2013 terjadi penurunan curam akibat meningkatnya suku bunga
(Badriah 2015). Kemudian pada 2014 terjadi peningkatan yang kuat dengan
trend yang terus meningkat, sampai dengan awal 2015. Pertengahan 2015
terjadi penurunan tajam karena proyeksi negatif pertumbuhan ekonomi pada
awal 2015 (Widodo 2017). Tahun 2016 IHSG mulai meningkat lagi dengan
pertumbuhan yang cepat pada pertengahan tahun. Program tax
amnesty yang dilakukan pada tahun tersebut mampu mendorong kinerja
IHSG (Afriyadi 2016). Tahun 2017 IHSG mebgalami trend peningkatan yang
sangat kuat dan stabil. IHSG tahun 2018 cenderung melemah di pertiga
awal tahun. Ada beberapa factor penurunan IHSG salah satunya sejumlah
katalis negative baik dari dalam negeri hingga luar negeri. Diawal tahun
2019 IHSG sempat menguat, namun dipertengahan tahun mulai melemah dan
Kembali menguat diakhir tahun. IHDG bergerak fluktuatif karena ada
beberapa hal salah satunya perang dagang antara AS-China (Muhammad
2020). INI HARUS DIUBAH.
Afriyadi AD. 2016 Desember 30. Tertinggi kedua di Asia, IHSG naik 15.32 persen pada 2016. Liputan6.com. Saham. [diakses 2022 April 6]. https://www.liputan6.com/saham/read/2692209/tertinggi-kedua-di-asia-ihsg-naik-1532-persen-pada-2016.
Ahmar AS, Guritno S, Abdurakhman, Rahman A, Awi, Alimuddin, Minggi I, Tiro MA, Aidid MK, Suwardi, et al.. 2016. Modelling data containing outliers using ARIMA Additive Outlier (ARIMA-AO). Journal of Physics: Conference Series. doi:10.1088/1742-6596/954/1/012010.
Badriah A. 2015. Analisis faktor ekonomi yang mempengaruhi IHSG di Bursa Efek Indonesia (BEI) tahun 2012-2014. Jurnal Jurusan Pendidikan Ekonomi (JJPE). 5(1). doi:http://dx.doi.org/10.23887/jjpe.v5i1.6075.
detikFinance. 2006 Desember 28. Tutup 2006, IHSG capai puncak kejayaan. detikFinance.com. Bursa dan Valas. [diakses 2022 April 5]. https://finance.detik.com/bursa-dan-valas/d-724958/tutup-2006-ihsg-capai-puncak-kejayaan.
detikFinance. 2009 Desember 30. Perjalanan IHSG sepanjang 2009. detikFinance.com. Bursa dan Valas. [diakses 2022 April 5]. https://finance.detik.com/bursa-dan-valas/d-1268203/perjalanan-ihsg-sepanjang-2009.
Kompas. 2008 Desember 12. Tahun 2008, IHSG berprestasi dan terpuruk. Kompas.com. Bisnis & Keuangan. [diakses 2022 April 5]. https://tekno.kompas.com/read/2008/12/30/22124067/tahun.2008.ihsg.berprestasi.dan.terpuruk.
Juita PC, Wardi Y, Aimon H. 2014. Analisis pertumbuhan ekonomi, dan indeks harga saham gabungan di Indonesia. Jurnal Kajian Ekonomi. 2(4):1-19.
Kompas. 2009 Februari 17. Saham lemas, IHSG turun 1.79 persen. Kompas.com. Bisnis & Keuangan. [diakses 2022 April 5]. https://nasional.kompas.com/read/2009/02/17/16125621/index-html.
Kompas. 2010 Desember 17. Selama 2010 kinerja IHSG fantastis. Kompas.com. Bisnis & Keuangan. [diakses 2022 April 5]. https://money.kompas.com/read/2010/12/17/14472514/selama.2010.kinerja.ihsg.fantastis?page=all.
Muhammad. 2020. Pengaruh penurunan IHSG tahun 2018-2019 pada pengambilan keputusan investasi (studi kasus pada investor saham syariah di UIN Antasari Banjarmasin) [tesis]. Banjarmasin: Universitas Islam Kalimantan.
Purba B. 2014. Analisis kointegrasi antara Indeks Harga Saham Gabungan (IHSG), Jumlah Uang Beredar (JUB), dan Indeks Harga Pedagang Besar (IHPB) di Indonesia periode tahun 2007-2013. Jurnal Saintech. 4(6):16-22.
Sasikirono, N., & Meidiaswati, H. (2017). Holiday effect in the Indonesian stock market. Advances in Intelligent Systems Research, 131:109-112.
Suwito F. 2020. Influence Analysis Of Bi Rate, Inflation And Ihsg On Stock Return Of Banking Sector Listed On Indonesian Stock Exchange. Jurnal Bina Akutansi, 7(1): 41-66.
Rappai G. 2015. Modelling non-equidistant time series using spline interpolation. Hungarian Statistical Review. 19:22-46.
Tambunan N, Aminda RS. 2021. Pengaruh inflasi, suku bunga, dan kurs terhadap Indeks Harga Saham Gabungan (IHSG). Outlook 2022: Transformasi UMKM di Era Pasar Digital; 2021 Desember 20; Sukoharjo. Sukoharjo (ID): Sekolah Tinggi Ilmu Ekonomi AAS. hlm 569-578.
Widodo W. 2017. Analisis pengaruh Indeks Harga Saham Gabungan regional Asia terhadap Indeks Harga Saham Gabungan Indonesia. Jurnal Ekonomi dan Bisnis. 1(2): 148-164.
Wijaya TSJ. 2015. Faktor-faktor yang mempengaruhi nilai IHSG yang terdaftar di Bursa Efek Indonesia. Jurnal Ilmu dan Riset Manajemen. 4(6):1-16.