Proposal DCD

Problem Statement

Background

Kebangkrutan adalah sebuah kejadian yang semua pelaku bisnis, baik individual maupun perusahaan, tidak ingin terjadi pada mereka. Secara definisi, ini adalah situasi yang dimana perusahaan terpaksa menutup usahanya akibat kondisi keuangan mereka yang kurang sehat. Mungkin ada beberapa dari kita yang berpikir, atau pernah berpikir: “Lah kalau gitu salah bisnisnya dong, bikin produk kok ga unik. Pantesan gaada yang mau beli!” Cara pikir tersebut tidak hanya mengabaikan betapa sulitnya proses membuat sebuah produk yang unik, berguna, dan inovatif, namun juga betapa rumitnya proses-proses bisnis yang terjadi di balik layar.

Berikut ini adalah tiga contoh kebangkrutan yang dialami oleh 3 perusahaan besar di Indonesia (yang bisa dikatakan inovatif pada waktunya) ini dapat memberikan gambaran mengenai apa saja yang menyebabkan sebuah perusahaan bangkrut.

PT Sariwangi Agricultural Estate Agency

PT Sariwangi dikenal sebagai salah satu produsen teh terbesar di Indonesia. Berdiri pada tahun 1973, PT Sariwangi merupakan perusahaan teh pertama di Indonesia yang menjual produknya dalam bentuk kantung teh yang dapat langsung diseduh (disebut teh celup), sebuah bentuk penyajian teh yang jauh lebih praktis dibandingkan teh dalam bentuk bubuk. Selain inovasi pertamanya, PT Sariwangi juga diketahui sudah mulai melakukan ekspor produknya pada tahun 1985 ke Amerika Serikat, Australia, Inggris, Timur Tengah, dan Rusia. Pada tahun 1989, PT Unilever membeli merk Sariwangi, sehingga PT Sariwangi AEA berubah menjadi produsen dan supplier teh untuk PT Unilever yang menjual teh tersebut di bawah nama Sariwangi. PT Sariwangi AEA sendiri diketahui membuat produk-produk teh lainnya seperti Sarimurni Teh Kantong Bundar setelah merk Sariwangi diambil, namun sepertinya masyarakat sudah terlanjur lebih akrab dengan merek Sariwangi dibandingkan Sarimurni.

Pada tahun 2018, PT Sariwangi AEA dinyatakan bangkrut. Diketahui bahwa perusahaan tersebut mengambil keputusan untuk memperluas sistem drainase air dan teknologi penyiraman kebun teh mereka sebagai bentuk dari ekspansi bisnis. Untuk merealisasikan rencana tersebut, PT Sariwangi AEA meminjam dana sebesar Rp 1.5 triliun dari banyak bank, salah satunya adalah Bank ICBC. Masalahnya, rencana tersebut tidak menghasilkan kembali yang diharapkan, sehingga PT Sariwangi juga harus menanggung beban dari aktivitas mereka diatas utang yang diambil. Singkat cerita, PT Sariwangi dinyatakan tidak dapat membayar kewajiban mereka kepada Bank ICBC, dan dinyatakan bangkrut oleh Majelis Hakim Pengadilan Niaga pada 16 Oktober 2018.

PT Nyonya Meneer

PT Nyonya Meneer adalah perusahaan produsen jamu yang berdiri pada tahun 1919. Sebagai produsen jamu, perusahaan tersebut meluncurkan berbagai macam produk kesehatan dengan fokus terhadap kebutuhan wanita. Perusahaan jamu ini tidak hanya beroperasi di Indonesia, namun juga memiliki pasar pada negara-negara lain seperti Malaysia, Jepang, Korea Selatan, Singapura, Taiwan, dan China.

Sejarah singkatnya, Nyonya Meneer (Lauw Ping Nio) akhirnya berhasil menyembuhkan suaminya dengan jamu racikannya. Suaminya pada saat itu mengalami sakit berat yang sulit disembuhkan meskipun sudah meminum obat dari dokter. Nyonya Meneer kemudian memutuskan untuk mencoba membantu orang-orang terdekatnya dengan jamu-jamu yang diraciknya dan menyadari bahwa ia memiliki bakat dalam pembuatan jamu. Ia akhirnya memutuskan untuk membangun usaha jamu ini dan memberikan nama usahanya “Jamu Cap Potret Nyonya Meneer”. Nyonya Meneer sendiri sudah meninggal sejak tahun 1978, namun usahanya diwariskan kepada generasi-generasi penerusnya secara turun temurun.

Sejarah juga menunjukkan bahwa beberapa tahun sebelum perusahaan ini bangkrut, perusahaan ini sempat mengalami masalah-masalah internal. Beberapa kasus tersebut adalah tidak membayarkan gaji kepada karyawannya dan juga tidak mampu membayarkan utang kepada 35 kreditur. Ketidakmampuan untuk membayar 35 kreditur itulah yang membuat Nyonya Meneer akhirnya dinyatakan bangkrut pada tahun 2017, yang dimana terdapat utang sebesar Rp 89 Miliar.

7-Eleven

7-Eleven pertama masuk Indonesia pada tahun 2009 sebagai convenience store pertama di Indonesia di bawah naungan PT Modern Putraindonesia. Sebagai convenience store, 7-Eleven menyediakan pelayanan yang sebelumnya tidak pernah dirasakan: makanan siap saji, minuman, makanan ringan, bahkan layanan internet. Ini membuat convenience store tidak hanya tempat untuk membeli keperluan, namun juga untuk makan atau sekedar bersantai. Meskipun secara teori 7-Eleven harusnya dapat bertumbuh dengan baik, nyatanya convenience store ini justru dinyatakan bangkrut pada tahun 2017.

Ada beberapa alasan yang menyebabkan 7-Eleven bangkrut mengalami masa sulit pada saat masih beroperasi di Indonesia, mulai dari situasi hukum yang kurang mendukung, manajemen keuangan yang kurang pandai sehingga tidak dapat menutup biaya operasi mereka (terlalu fokus membayar bunga pinjaman), kerugian yang terlalu besar karena pendapatan tidak sesuai ekspektasi, dan pesaing-pesaing yang lebih mudah dikunjungi masyarakat seperti Alfamart dan Indomart yang membuat model bisnis yang serupa namun menawarkan produk mereka dalam harga yang lebih terjangkau.

Ketiga perusahaan tersebut memiliki premis dan awal yang sangat menjanjikan. PT Sariwangi AEA memperkenalkan sebuah inovasi baru yang mempermudah proses penyajian teh bagi mereka yang sering mengkonsumsi teh. Nyonya Meneer memiliki potensi untuk berkembang tidak hanya melalui produk kesehatan, namun juga melalui budaya meracik jamu yang unik untuk Indonesia. 7-Eleven seharusnya bisa membawakan disrupsi ketika melawan pesaing-pesaingnya. Namun kenyataannya ketiga perusahaan tersebut bangkrut (Brilian, 2022).

Ini menunjukkan bahwa premis bisnis dan awal yang manis bukan jaminan bahwa sebuah usaha dapat terus berkembang secara jangka panjang. Bila ketiga kasus diatas diperhatikan, terdapat beberapa penyebab yang membuat ketiga usaha terkenal tersebut menjadi bangkrut:

  • Memiliki utang yang terlalu banyak, sehingga tidak bisa dibayar. (Pada kasus 7-Eleven, utang yang kebanyakan justru menyebabkan mereka tidak memiliki dana untuk menutup beban operasional mereka)
  • Kesalahan dalam proyeksi pendapatan dan keuntungan mereka, yang berujung pada pengambilan keputusan yang salah
  • Manajemen yang kurang pandai
  • Kurang dapat berkompetisi dengan pesaing mereka

Informasi seperti ini biasanya dicerminkan oleh laporan keuangan sebuah perusahaan. Tentu saja angka tidak dapat menjelaskan kondisi performa perusahaan dengan sempurna, namun angka-angka tersebut tetap dapat menjadi refleksi mengenai bagaimana perusahaan menjalankan bisnis mereka. Bila kita melihat kembali penyebab kebangkrutan diatas:

  • Utang yang berlebihan dapat diidentifikasi melalui laporan keuangan, antara dengan melihat terjadinya kenaikan jumlah utang yang berlebihan dari tahun ke tahun (baik utang jangka pendek maupun utang jangka panjang) atau melihat bahwa aset mereka sebagian besar dibiayai oleh utang (Lebih banyak utang dibandingkan model).
  • Dampak dari proyeksi pendapatan dan keuntungan yang salah dapat dilihat dari jumlah beban yang dibayarkan atau utang.
    • Proyeksi yang terlalu optimis dapat ditunjukkan dari jumlah beban yang berlebihan (melakukan produksi yang berlebihan) dan utang yang berlebihan (Mengambil pinjaman untuk membiayai aktivitas)
    • Proyeksi yang terlalu pesimis dapat ditunjukkan dari jumlah beban yang kurang (mengindikasikan tidak melakukan banyak produksi) atau utang yang turun drastis (tidak memiliki dana tambahan untuk menjalankan aktivitas bisnis), sehingga perusahaan.
  • Manajemen yang kurang pandai dapat diindikasikan oleh banyak hal dari laporan keuangan. Indikasinya bisa dalam bentuk utang dan beban bisnis yang berlebihan, kurangnya aset lancar perusahaan, pendapatan tinggi namun laba rendah, kurang efektif dalam menggunakan aset-aset yang dimiliki perusahaan dalam beroperasi, dan seterusnya.
  • Ketidakmampuan dalam berkompetisi dicerminkan oleh tidak adanya perkembangan atau bahkan terjadi penurunan dalam pendapatan perusahaan, laba kotor, laba operasional, atau laba bersih.

Dengan memanfaatkan informasi yang terdapat pada laporan keuangan, pihak manajemen memiliki dasar arahan mengenai bagaimana kinerja perusahaan pada saat itu berdasarkan variable-variable keuangan di laporan mereka. Kesempatan terjadinya pengambilan keputusan yang salah menjadi berkurang karena mereka bisa mengajukan solusi yang relevan dengan kondisi keuangan mereka saat itu.

Business impact yang ditawarkan dari project Anda

Projek ini diharapkan dapat membantu para pelaku bisnis melihat aspek-aspek apa saja yang penting bagi keberlangsungan sebuah perusahaan dari sudut pandang laporan keuangan sebuah perusahaan.

Siapa target user dan apa benefit yang mereka peroleh?

Proyek ini diperuntukkan kepada para pelaku bisnis, baik dalam bentuk perorangan maupun perusahaan. Lebih spesifiknya, projek ini dapat digunakan oleh bagian-bagian yang mengatur kondisi internal perusahaan seperti manajer keuangan perusahaan.

Implementasi ke business serupa

Selain dari manajemen sebuah perusahaan, output dari proyek juga diharapkan untuk dapat digunakan oleh investor, baik investor individual maupun yang bekerja dalam sebuah sekuritas, untuk mempermudah proses valuasi sebuah perusahaan.

Tujuan/Output dari Project

Dikarenakan jenis machine learning adalah model Unsupervised Learning, maka output tidak bisa berupa prediktor apakah perusahaan akan mengalami kebangkrutan atau tidak berdasarkan rasio keuangan yang ditemukan. Hasilnya justru akan berupa clustering, yang dimana para user bisa melihat karakteristik-karakteristik apa saja yang dimiliki oleh semua perusahaan di Indonesia.

Tujuan dari clustering karakteristik ini adalah untuk memberikan insight kepada perusahaan mengenai aspek-aspek keuangan apa saja yang memiliki hubungan dengan tingkat performa perusahaan (terutama laba) dan juga karakteristik seperti apa yang dimiliki oleh perusahaan yang memiliki performa baik atau buruk. Pemberian insight tersebut bertujuan untuk membantu manajemen perusahaan dalam melihat seberapa “sehat” perusahaan dan mendiagnosa faktor apa yang membuat perusahaan memiliki performa buruk.

Kebangkrutan dan kinerja buruk perusahaan secara umum bukanlah sebuah hal yang dapat sepenuhnya dihindari karena adanya faktor-faktor eksternal yang diluar kendali perusahaan. Namun harapannya output dapat meminimalisir resiko kebangkrutan atau menjadi patokan untuk memperbaiki kinerja perusahaan dari sudut pandang internal perusahaan.

Data Collection

Informasi singkat mengenai data yang akan digunakan

Data yang dimiliki mengandung informasi mengenai ratio keuangan dari 440 perusahaan di Indonesia yang terdaftar di Bursa Efek Indonesia, terbagi dalam beberapa worksheet. Data yang terkumpul berasal dari akhir tahun 2011 sampai akhir tahun 2022 dalam bentuk kuartal. Penulis memilih jangka 10 tahun untuk memastikan ratio keuangan yang ditunjukkan pada data adalah nilai yang wajar dari tahun ke tahun dan meminimalisir pengaruh dari kejadian-kejadian besar seperti pandemi COVID-19 yang melanda dunia pada tahun 2020.

Data memiliki informasi-informasi sebagai berikut:

  • Working Capital Ratio: Ratio ini digunakan untuk mengukur likuiditas perusahaan, atau kemampuan perusahaan untuk membayar utang jangka pendek mereka. Semakin tinggi ratio ini, semakin bagus kemampuan perusahaan untuk membayar utang jangka pendek mereka. Formulanya adalah sebagai berikut:

\[Working Capital Ratio = \frac{Current Assets - Current Liabilities}{Total Assets}\]

  • Retained Earnings/Total Assets: Ratio ini menunjukkan bagaimana perusahaan membayar beban bisnis mereka. Nilai yang tinggi pada ratio ini menunjukkan bahwa perusahaan masih memiliki sisa dana yang banyak untuk dianggap sebagai keuntungan perusahaan setelah membayarkan bebannya. Formula adalah sebagai berikut:

\[Retained Earnings/Total Assets = \frac{Beginning Retained Earnings - Net Income- Dividend}{Total Asset}\]

  • Return on Assets: Ratio ini menunjukkan kemampuan perusahaan untuk menghasilkan keuntungan berdasarkan jumlah aset yang dimilikinya. Formulanya adalah sebagai berikut:

\[Return On Assets = \frac{Net Income}{Total Asset}\]

  • Return on Equity: Ratio ini mirip seperti return on asset. Bedanya, rasio ini digunakan untuk melihat seberapa besar keuntungan yang didapatkan oleh perusahaan berdasarkan jumlah modal yang dimiliki perusahaan. Formulanya adalah sebagai berikut

\[Return On Equity = \frac{Net Income}{Total Equity} \]

  • Debt Ratio: Debt ratio digunakan untuk menghitung seberapa banyak aset yang dimiliki perusahaan ada dalam bentuk utang. Ratio yang lebih dari satu menunjukkan bahwa utang mereka jauh lebih banyak dibandingkan aset mereka, sehingga yang diharapkan adalah ratio yang kecil. Formulanya adalah sebagai berikut:

\[Debt Ratio = \frac{Total Debts}{Total Assets}\]

  • Total Asset Turnover: Total Asset Turnover mengukur seberapa efisien perusahaan dalam menggunakan aset yang dimilikinya berdasarkan seberapa banyak pendapatan yang dihasilkan oleh perusahaan berdasarkan jumlah aset yang dimilikinya. Formulanya adalah sebagai berikut:

\[Total Asset Turnover = \frac{Net Revenue}{Average Total Assets}\]

  • Debt to Equity: Ratio ini menunjukkan seberapa banyak utang yang ditanggung oleh perusahaan dibandingkan modal yang dimiliki oleh perusahaan. Formulanya adalah sebagai berikut

\[ Debt to Equity = \frac{Total Debt}{Total Equity}\]

  • Net Profit Margin: Ratio ini menunjukkan seberapa banyak keuntungan yang dapat diberikan kepada para pemegang saham atau diinvestasikan kembali ke bisnis setelah dipotong beban aktivitas bisnis dan juga bunga dan pajak. Semakin tinggi ratio ini menunjukkan semakin besar keuntungan yang didapatkan. Formulanya adalah sebagai berikut:

\[ Net Profit Margin = \frac{Net Income}{Revenue}\]

  • Market Value of Equity/Book Value of Total Liabilities: Ratio ini digunakan untuk mengukur optimisme pasar saham dalam kondisi keuangan sebuah perusahaan. Formulanya adalah sebagai berikut:

\[\frac{Market Value Of Equity}{Total Debt} \]

  • Current Ratio: Current ratio memiliki fungsi yang hampir mirip dengan working capital ratio, yaitu untuk melihat seberapa mampu perusahaan dalam melunaskan utang jangka pendek mereka. Bedanya adalah formula perhitungan ratio tersebut.

\[ Current Ratio = \frac{Current Asset}{Current Liabilities} \]

  • Cash Ratio: Ratio ini juga memiliki fungsi yang mirip dengan working capital ratio dan current ratio, namun kali ini mengukur seberapa likuid sebuah perusahaan dengan hanya melihat jumlah aset kas (dan setara) yang dimiliki oleh perusahaan

\[ Cash Ratio = \frac{Cash And Equivalents}{Current Liabilities} \]

  • Operating Cash Flow Ratio: Ratio ini digunakan untuk mengukur seberapa banyak kas yang dapat dihasilkan untuk melunasi utang jangka pendek mereka. Hasil yang tinggi menunjukkan bahwa perusahaan dapat menghasilkan kas yang lebih dari cukup untuk membayar utang. Formulanya adalah sebagai berikut:

\[ Operating Cash Flow Ratio: \frac{Operating Cash Flow}{Current Liabilities}\]

  • Interest Coverage Ratio: Ratio ini digunakan untuk melihat seberapa mampu sebuah perusahaan dapat membayarkan bunga dari utang yang ditanggungnya. Formulanya adalah sebagai berikut:

\[Interest Coverage Ratio = \frac{Operating Income}{Interest Expenses}\]

  • Gross Profit Margin: Ratio ini menunjukkan seberapa besar laba kotor yang dapat dihasilkan oleh perusahaan jika dibandingkan dengan jumlah pendapatan yang dihasilkannya. Formulanya adalah sebagai berikut:

\[Gross Profit Margin = \frac{Gross Profit}{Revenue} \]

  • Operating Profit Margin: Ratio ini menunjukkan seberapa banyak jumlah laba yang dihasilkan oleh perusahaan sesudah membayarkan beban aktivitas bisnis, namun sebelum membayarkan bunga dan pajak, dibandingkan dengan pendapatannya. Formulanya adalah sebagai berikut:

\[Operating Profit Margin = \frac{Operating Income}{Revenue}\]

Sumber Data, Pengumpulan, dan Apakah Dapat Dipertanggunjawabkan?

Sumber data didapatkan dari Bloomberg Intelligence, sebuah produk yang dibuat oleh perusahaan Bloomberg yang biasa digunakan oleh para analis pasar saham untuk melakukan analisis baik terhadap pasar secara keseluruhan, sebuah industri tertentu, atau bahkan sebuah saham tertentu.

Bloomberg sendiri adalah sebuah perusahaan yang bergerak dalam bidang keuangan. Lebih spesifiknya, jasa mereka adalah mengolah menyediakan informasi ekonomi, baik secara makro maupun mikro, untuk membantu orang-orang yang menggunakan jasanya membuat keputusan keuangan yang bijak.

Apakah data sudah sesuai kebutuhan bisnis

Variable-variable dari data yang didapatkan berhubungan dengan jumlah utang yang dimiliki oleh perusahaan, seberapa mampu perusahaan melakukan pembayaran utang, dan seberapa mampu perusahaan menghasilkan pendapatan dan keuntungan. Informasi-informasi tersebut, walaupun tidak sempurna karena hanya dalam bentuk angka, dapat merefleksikan kondisi seperti apa yang sedang dialami oleh perusahaan. Sebagai tambahan, variable-variable tersebut dipilih karena terdapat beberapa literatur yang menemukan hubungan signifikan antara variable-variable tersebut dengan kebangkrutan sebuah perusahaan (Alifiah et al., 2013; Anggelia, 2012; ATIKA & HANDAYANI, 2013; Dewi & Hadri, 2017; Haq et al., 2013; Jiming & Weiwei, 2011; Saleh & Sudiyatno, 2013)

Satu tantangan dari data yang dimiliki adalah jumlah NA yang kemungkinan besar muncul akibat perusahaan-perusahaan yang bangkrut yang dimasukkan ke dataset. Selain itu adalah tidak adanya label mengenai status perusahaan (bangkrut atau tidak, diakuisisi atau tidak) sehingga jenis model yang dibuat adalah unsupervised machine learning.

Data Preparation

Bagian ini akan menjelaskan mengenai apa yang harus dilakukan dalam dalam membentuk data mentah menjadi bentuk yang diperlukan.

Target/Prediktor

Prediktornya adalah semua variable yang sudah dijelaskan sebelumnya. Berhubung datanya tidak memiliki label dan harus menggunakan metode Unsupervised Learning, tidak ada target pada model ini.

Tahapan apa saja yang perlu dilakukan pada proses data preparation?

Ada dua hal yang perlu dilakukan pada tahap ini:

  • Menentukan apa yang perlu dilakukan terhadap beberapa perusahaan yang datanya tidak ditemukan dari hasil penarikan Bloomberg. Ini diindikasikan dengan string “#N/A” dari awal periode (31 Desember 2011). Sejauh ini, sudah ditemukan bahwa terdapat 74 perusahaan yang tidak ditemukan informasinya.

  • Mengatur bentuk data mentah. Masing-masing variable disajikan menyamping dan harus dibuat memanjang kebawah.

Proses Pembentukan Data Mentah

Sebelumnya, penulis ingin meminta maaf karena tidak dapat menunjukkan proses pengolahan data mentah. Ini dikarenakan jika ditunjukkan, perangkat akan kehabisan memory sehingga proposal ini tidak dapat di knit dan di publish. Penulis akan mencoba sebisa mungkin untuk menjelaskan langkah-langkah apa saja yang dilakukan penulis untuk membentuk data mentah menjadi data yang bisa diolah.

Penjelasan Bentuk Data Mentah

Perlu diketahui bahwa selain bentuk memanjang kesamping, data mentah disimpan dalam bentuk file excel, dan di dalamnya terdapat variable-variable ratio yang dibagi menjadi sheetnya sendiri. Jadi terdapat sheet untuk variable Current Ratio, Gross Profit Margin, Total Asset Turnover, dan seterusnya.

Selain itu, data juga memiliki sebuah masalah lagi, yang dimana terdapat beberapa perusahaan yang datanya sudah tidak ada dari awal periode pengolahan data, ditandai dengan string “#N/A”. Masing-masing sheet memiliki jumlah “#N/A” yang berbeda-beda, yang dimana ada sheet yang jumlah informasi hilangnya lebih banyak dari yang lain. Sheet variable dengan “N/A” terbanyak adalah variable Gross Profit Margin, sehingga jumlah data yang akan diolah nanti harus disesuaikan dengan jumlah data yang terdapat pada variable tersebut.

Bentuk data yang siap diolah akan ditunjukkan pada akhir penjelasan pengolahan data

Penamaan Ulang Kolom

Ketika pertama membaca data mentah dengan fungsi read_xlsx, terdapat kejanggalan pada nama kolom, yang dimana kolom yang seharusnya menunjukkan informasi period justru hanya menunjukkan angka-angka yang terkesan random. Angka-angka random tersebut terjadi untuk semua sheet variable, sehingga setelah pembacaan data perlu dilakukan penggantian nama kolom. Pada proses ini, dilakukan juga pivot longer agar data memanjang kebawah.

Sebagai informasi tambahan, setiap sheet ratio keuangan dijadikan objek masing-masing. Setelah menjadi objek, objek akan dimasukkan ke dataframe baru bernama all_ratios, yang mengandung informasi Ticker perusahaan, nama lengkap perusahaan, periode, dan juga nilai ratio keuangan mereka.

Chunk berikut menunjukkan ilustrasi pengolahan data dengan variable Gross Profit Margin, sebagai variable pertama yang dimasukkan kedalam dataframe.

# all_ratios<- gross_marg %>%  
#  rename("31/12/2011"="40908",
#         "31/03/2012"="40999",
#        "30/06/2012"="41090",
#        "30/09/2012"="41182",
#         
#        "31/12/2012"="41274",
#         "31/03/2013"="41364",
#        "30/06/2013"="41455",
#        "30/09/2013"="41547",
#     Seterusnya Sampai Akhir Periode...
#
#       "31/12/2021"="44561",
#         "31/03/2022"="44651",
#         "30/06/2022"="44742",
#         "30/09/2022"="44834",
#         
#         "31/12/2022"="44926") %>%
#  pivot_longer(-c("Ticker", "Company name"),
#             names_to = "Quarter",
#             values_to = "GPM")

Proses Pembersihan NA Pertama

Untuk membersihkan data dari perusahaan yang tidak lengkap tersebut, penulis membuat objek berupa list perusahaan-perusahaan yang datanya tidak tersedia dari bloomberg, kemudian melakukan subsetting kepada variable-variable lainnya agar variable-variable tersebut hanya mengandung informasi perusahaan yang data rationya tersedia. Pembentukan objek untuk list perusahaan yang datanya tidak tersedia dilakukan sebagai berikut. Sebagai informasi, objek ini dibuat setelah memasukkan variable Gross Profit Margin kedalam dataframe “all_ratios”.

#no_avail<- all_ratios[all_ratios$Quarter =="31/12/2011" & is.na(all_ratios$GPM),"Ticker"]

# Quarter "31/12/2011" adalah periode pertama analisa. Dengan menggunakan fungsi & is.na pada kolom GPM, penulis dapat menemukan perusahaan apa saja yang datanya memang tidak tersedia pada bloomberg

objek “no_avail” kemudian diapply kepada dataframe no_avail sebagai berikut

#all_ratio_clean<- all_ratios[! all_ratios$Ticker %in% no_avail$Ticker,]

#Subsetting diatas bertujuan untuk mengeluarkan perusahaan-perusahaan yang terdapat pada objek "no_avail"

Setelah objek tersebut terbentuk, objek kemudian diapply pada pembentuk variable-variable lainnya, seperti berikut

#re_to_ta_dirt <- read_xlsx("fixed data.xlsx", sheet = "RE to TA", na = "#N/A")
#re_to_ta_cln <- re_to_ta_dirt %>% 
#  rename("31/12/2011"="40908",
#         "31/03/2012"="40999",
#         "30/06/2012"="41090",
#         "30/09/2012"="41182",
#         
#         "31/12/2012"="41274",
#        "31/03/2013"="41364",
#         "30/06/2013"="41455",
#         "30/09/2013"="41547",
#       Seterusnya sampai akhir periode...
#
#       "31/12/2021"="44561",
#         "31/03/2022"="44651",
#         "30/06/2022"="44742",
#         "30/09/2022"="44834",
#         
#         "31/12/2022"="44926") %>%
#  pivot_longer(-c("Ticker", "Company name"),
#             names_to = "Quarter",
#             values_to = "RE/TA")
#
#re_to_ta_cln <- re_to_ta_cln[!re_to_ta_cln$Ticker %in% no_avail$Ticker,]

Penggabungan Semua Variable ke Dataframe “all_ratio”

Variable-variable yang sudah terbentuk dan dibersihkan dengan subsetting objek “no_avail” tidak tergabung secara otomatis ke dataframe “all_ratio”. Contoh penggabungan dilakukan sebagai berikut.

#all_ratio_clean <- cbind(all_ratio_clean, "RE/TA"=re_to_ta_cln$`RE/TA`)

#Parameter pertama pada fungsi cbind adalah nama dataframe utama kita, yaitu all_ratio_clean

#Parameter kedua adalah "Nama Kolom baru (RE/TA)" = objek yang kolomnya ingin kita ambil ("re_to_ta_cln$RE/TA")

Proses ini dilakukan sampai semua variable sudah tergabung kedalam satu dataframe.

Exploratory Data Analysis

Setelah terbentuknya data mentah, tahap ini baru bisa dilakukan.

Proses Pembersihan NA Kedua

Jumlah baris pada dataframe “all_ratio_clean”, termasuk yang NA, adalah 33351750. Dari 33 juta data tersebut:

  • Terdapat 14439782 data yang tidak lengkap, atau sekitar 43.3% dari keseluruhan data. Maksud tidak lengkap disini akan dijelaskan dengan contoh berikut: Pada periode 31/12/2021, variable Gross Profit Margin dari perusahaan UNVR adalah NA, namun variable lainnya lengkap)
  • Terdapat 18911968 data yang lengkap, atau sekitar 56.7% dari data terisi dengan lengkap. Data lengkap disini berarti perusahaan yang pada sebuah periode memiliki informasi ratio keuangan yang lengkap

Pilihan treatment untuk data yang NA adalah untuk menghapus data-data yang tidak lengkap tersebut. Keputusan ini diambil karena jumlah data yang tersedia masih sangatlah banyak, sehingga penulis percaya bahwa penghapusan informasi tidak akan membuat output machine learning terkompromi. Penghapusan dilakukan dengan fungsi complete.cases, ilustrasi sebagai berikut:

# complete_ratios<- all_ratio_clean[complete.cases(all_ratio_clean),]

# subsetting menghasilkan data frame yang dimana setiap baris memiliki kolom yang terisi. Artinya, dataframe "complete_ratios" memiliki 56.7% dari dataframe "all_ratio_clean"

Analisa Descriptive Statistics

Berikut adalah dataframe complete_ratios yang sudah dijadikan file .csv.

comp_rats <- read_csv("complete_ratios.csv")
## Rows: 18911968 Columns: 18
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (3): Ticker, Company name, Quarter
## dbl (15): GPM, WC, RE/TA, ROA, ROE, TD/TA, ATR, TD/TE, PM, Marcap/TL, CR, Cs...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Sedangkan berkut ini adalah bentuk dari data frame yang kita miliki. Bisa dilihat bahwa semua variable yang diperlukan sudah masuk kedalam data frame yang sama.

head(comp_rats)
## # A tibble: 6 × 18
##   Ticker   `Company name` Quarter   GPM     WC `RE/TA`   ROA   ROE `TD/TA`   ATR
##   <chr>    <chr>          <chr>   <dbl>  <dbl>   <dbl> <dbl> <dbl>   <dbl> <dbl>
## 1 ASII IJ… Astra Interna… 31/12/…  19.1 0.109     37.1  13.3  32.4    29.2  1.22
## 2 ASII IJ… Astra Interna… 31/03/…  18.2 0.115     37.8  12.7  30.6    28.8  1.19
## 3 ASII IJ… Astra Interna… 30/06/…  19.1 0.0797    35.5  12.3  32.2    31.1  1.18
## 4 ASII IJ… Astra Interna… 30/09/…  19.8 0.0561    35.5  11.6  31.1    30.4  1.13
## 5 ASII IJ… Astra Interna… 31/12/…  19.8 0.0770    37.3  11.5  29.5    31.1  1.12
## 6 ASII IJ… Astra Interna… 31/03/…  17.4 0.0549    38.4  10.9  27.3    29.0  1.08
## # ℹ 8 more variables: `TD/TE` <dbl>, PM <dbl>, `Marcap/TL` <dbl>, CR <dbl>,
## #   Csh_Rat <dbl>, OCF <dbl>, ICR <dbl>, OPM <dbl>

Sekarang akan dilakukan analisa descriptive statistics dari dataframe “comp_rats”. Ini bertujuan untuk melihat karakteristik dari data kita dari segi statistika.

summary(comp_rats)
##     Ticker          Company name         Quarter               GPM          
##  Length:18911968    Length:18911968    Length:18911968    Min.   :-4688.51  
##  Class :character   Class :character   Class :character   1st Qu.:   12.38  
##  Mode  :character   Mode  :character   Mode  :character   Median :   22.53  
##                                                           Mean   :   24.61  
##                                                           3rd Qu.:   44.52  
##                                                           Max.   :   99.90  
##        WC                RE/TA                ROA           
##  Min.   :-32209.34   Min.   :-2850.613   Min.   :-135.7889  
##  1st Qu.:    -0.03   1st Qu.:    1.970   1st Qu.:  -0.1664  
##  Median :     0.12   Median :   17.861   Median :   2.7752  
##  Mean   :    -1.24   Mean   :    8.656   Mean   :   3.5191  
##  3rd Qu.:     0.34   3rd Qu.:   35.066   3rd Qu.:   7.1726  
##  Max.   : 25219.22   Max.   :  126.099   Max.   : 123.4038  
##       ROE                TD/TA              ATR              TD/TE         
##  Min.   :-582.2934   Min.   :  0.000   Min.   :-0.4072   Min.   :    0.00  
##  1st Qu.:  -0.3113   1st Qu.:  8.249   1st Qu.: 0.2919   1st Qu.:   12.55  
##  Median :   6.2716   Median : 22.589   Median : 0.7244   Median :   43.62  
##  Mean   :   5.8155   Mean   : 24.190   Mean   : 0.9003   Mean   :  100.25  
##  3rd Qu.:  15.3064   3rd Qu.: 36.519   3rd Qu.: 1.2267   3rd Qu.:   93.24  
##  Max.   : 281.4613   Max.   :229.311   Max.   :16.9061   Max.   :56644.72  
##        PM              Marcap/TL              CR               Csh_Rat        
##  Min.   :-76749.03   Min.   :       0   Min.   :   0.0077   Min.   :  0.0002  
##  1st Qu.:    -1.07   1st Qu.:       1   1st Qu.:   1.0430   1st Qu.:  0.0736  
##  Median :     3.29   Median :       2   Median :   1.4587   Median :  0.2184  
##  Mean   :   -13.64   Mean   :    7154   Mean   :   2.7876   Mean   :  0.7783  
##  3rd Qu.:    10.72   3rd Qu.:      16   3rd Qu.:   2.3382   3rd Qu.:  0.6292  
##  Max.   : 11943.15   Max.   :20298389   Max.   :2640.6715   Max.   :701.1413  
##       OCF                  ICR                  OPM            
##  Min.   :-13594.814   Min.   :-9.993e+09   Min.   :-22365.272  
##  1st Qu.:    -0.021   1st Qu.: 0.000e+00   1st Qu.:     1.511  
##  Median :     0.039   Median : 3.000e+00   Median :     7.489  
##  Mean   :     0.125   Mean   : 5.489e+05   Mean   :    -5.384  
##  3rd Qu.:     0.155   3rd Qu.: 9.000e+00   3rd Qu.:    17.824  
##  Max.   : 13180.317   Max.   : 1.258e+10   Max.   :  2146.156

Berdasarkan hasil summary(), variable paling menonjol di data adalah variable Marcap/TL (Market Value of Equity/Total Liabilities), yang dimana nilai rata-rata menunjukkan angka 7145, namun kuartal pertama, median, dan kuartal ketiganya tidak sampai setinggi itu. Selain dari nilai rata-ratanya, nilai maximal dari variable tersebut mencapai 20 juta. Variable ICR (Interest Coverage Ratio) juga menunjukkan nilai-nilai statistik deskriptif yang sangat tinggi, dengan rata-ratanya yang berada di sekitar 548900.

Perlu diingat bahwa semua nilai dalam variable yang terdapat pada data adalah sebuah ratio yang terbentuk dengan membandingkan satu item dari laporan keuangan dengan item lainnya. Nilai-nilai ekstrim juga dapat ditemukan di nilai-nilai minimal dan maksimal pada sebagian besar variable lainnya. Ini mengindikasikan bahwa data kita memiliki outlier yang cukup besar.

Menghilangkan Outlier

Nilai-nilai outlier yang terlalu besar dapat memperburuk kualitas model machine learning. Model machine learning menggunakan data yang disediakan, maka model akan mempelajari dan mengikuti karakteristik-karakteristik yang terdapat pada data. Keberadaan outlier akan berpotensi membuat model “bereaksi berlebihan” dan mencoba menyocokkan outputnya dengan outlier-outlier tersebut. Ini menyebabkan hasil akhir dari model machine learning menjadi tidak akurat dan tidak dapat menginterpretasi data baru dengan baik.

Bila kita melihat kembali pada hasil descriptive statistics kita, bisa dilihat bahwa sebagian besar variable yang kita gunakan memiliki jangkauan nilai yang sangat besar. Bagian nilai min dan max bisa mencapai angka ribuan atau bahkan jutaan, padahal variable yang dimiliki adalah rasio. Sedangkan nilai kuartal 1, median, kuartal 3, dan rata-rata berkisar pada nilai-nilai yang sesuai dengan hasil perhitungan rasio pada umumnya. Selain itu, jumlah data yang kita miliki sangatlah banyak (sekitar 18 juta data), sehingga mengimplikasikan bahwa jumlah data yang mengandung outlier juga sangatlah banyak.

Jadi bila diringkas, masalah outlier pada dataframe adalah sebagai berikut:

  1. Nilai outlier yang terlalu besar
  2. Jumlah data yang memiliki outlier terlalu banyak

Karakteristik data yang tidak normal seperti itu mengindikasikan bahwa outlier perlu dihilangkan dari data kita. Chunk-chunk berikut digunakan untuk membersihkan outlier:

# Untuk mempercepat waktu komputasi (jika nanti diperlukan), variable ticker dan company name akan diubah menjadi category terlebih dahulu
comp_rats <- comp_rats %>% 
  mutate_at(.vars = vars("Ticker", "Company name"),
            as.factor) 

Berikut adalah fungsi yang digunakan untuk menghilangkan outlier:

outliers <- function(x) {

  Q1 <- quantile(x, probs=.25)
  Q3 <- quantile(x, probs=.75)
  iqr = Q3-Q1

 upper_limit = Q3 + (iqr*1.5)
 lower_limit = Q1 - (iqr*1.5)

 x > upper_limit | x < lower_limit
}

remove_outliers <- function(df, cols = names(df)) {
  for (col in cols) {
    df <- df[!outliers(df[[col]]),]
  }
  df
}

Fungsi tersebut bekerja dengan menghilangkan outlier pada kolom dataframe yang dipilih. Karena outlier terdapat pada semua variable yang akan digunakan, maka penulis akan memasukkan semua kolom variable ke dalam fungsi yang sudah dibuat.

complete_ratios_no_outs<- remove_outliers(comp_rats, c("GPM","WC","RE/TA", "ROA", "ROE", "TD/TA", "ATR", "TD/TE", "PM", "Marcap/TL", "CR", "Csh_Rat", "OCF","ICR", "OPM"))

Berikut adalah hasil descriptive statistics dataframe setelah dibersihkan dari outlier

summary(complete_ratios_no_outs)
##             Ticker                                   Company name    
##  BUDI IJ Equity:  50210   Mas Murni Indonesia Tbk PT       :  51613  
##  JPFA IJ Equity:  48504   Budi Starch & Sweetener Tbk PT   :  50210  
##  TRST IJ Equity:  46108   Japfa Comfeed Indonesia Tbk PT   :  48504  
##  CSAP IJ Equity:  46048   Trias Sentosa Tbk PT             :  46108  
##  IPOL IJ Equity:  45580   Catur Sentosa Adiprana Tbk PT    :  46048  
##  MAPI IJ Equity:  45275   Indopoly Swakarsa Industry Tbk PT:  45580  
##  (Other)       :4611992   (Other)                          :4605654  
##    Quarter               GPM               WC               RE/TA        
##  Length:4893717     Min.   :-8.404   Min.   :-0.59268   Min.   :-46.119  
##  Class :character   1st Qu.:12.735   1st Qu.:-0.01913   1st Qu.:  7.815  
##  Mode  :character   Median :19.477   Median : 0.11908   Median : 19.136  
##                     Mean   :25.037   Mean   : 0.14673   Mean   : 19.065  
##                     3rd Qu.:33.771   3rd Qu.: 0.30810   3rd Qu.: 30.467  
##                     Max.   :86.691   Max.   : 0.89486   Max.   : 76.241  
##                                                                          
##       ROA                ROE               TD/TA            ATR        
##  Min.   :-10.5193   Min.   :-20.4616   Min.   : 0.00   Min.   :0.0130  
##  1st Qu.:  0.4076   1st Qu.:  0.8888   1st Qu.:17.45   1st Qu.:0.4418  
##  Median :  2.4303   Median :  5.6314   Median :27.70   Median :0.8290  
##  Mean   :  2.8465   Mean   :  6.4715   Mean   :27.21   Mean   :0.8968  
##  3rd Qu.:  5.0931   3rd Qu.: 12.1197   3rd Qu.:37.25   3rd Qu.:1.2412  
##  Max.   : 17.6226   Max.   : 35.2686   Max.   :62.39   Max.   :2.5839  
##                                                                        
##      TD/TE              PM             Marcap/TL              CR        
##  Min.   :  0.00   Min.   :-15.3225   Min.   : 0.00202   Min.   :0.0781  
##  1st Qu.: 30.80   1st Qu.:  0.2848   1st Qu.: 0.49834   1st Qu.:1.0872  
##  Median : 56.73   Median :  2.7780   Median : 1.23472   Median :1.3476  
##  Mean   : 65.93   Mean   :  3.3721   Mean   : 2.76375   Mean   :1.4895  
##  3rd Qu.: 93.95   3rd Qu.:  6.3079   3rd Qu.: 2.99835   3rd Qu.:1.7641  
##  Max.   :191.67   Max.   : 26.0348   Max.   :36.28557   Max.   :4.1785  
##                                                                         
##     Csh_Rat            OCF                ICR              OPM         
##  Min.   :0.0002   Min.   :-0.28138   Min.   :-7.648   Min.   :-12.898  
##  1st Qu.:0.0671   1st Qu.:-0.02122   1st Qu.: 1.044   1st Qu.:  3.315  
##  Median :0.1681   Median : 0.03013   Median : 2.435   Median :  7.141  
##  Mean   :0.2676   Mean   : 0.04904   Mean   : 3.265   Mean   :  8.661  
##  3rd Qu.:0.3748   3rd Qu.: 0.11714   3rd Qu.: 4.840   3rd Qu.: 12.878  
##  Max.   :1.1938   Max.   : 0.40402   Max.   :15.834   Max.   : 31.114  
## 

Bisa dilihat sekarang bahwa kondisi outlier pada data kita sudah lebih baik dibandingkan sebelumnya.

Visualisasi Boxplot

Berikut adalah visualisasi boxplot sederhana untuk melihat persebaran data kita

boxplot(complete_ratios_no_outs$GPM, 
        complete_ratios_no_outs$WC,
        complete_ratios_no_outs$`RE/TA`, 
        complete_ratios_no_outs$ROA, 
        complete_ratios_no_outs$ROE, 
        complete_ratios_no_outs$`TD/TA`, 
        complete_ratios_no_outs$ATR, 
        complete_ratios_no_outs$`TD/TE`, 
        complete_ratios_no_outs$PM, 
        complete_ratios_no_outs$`Marcap/TL`, 
        complete_ratios_no_outs$CR, 
        complete_ratios_no_outs$Csh_Rat, 
        complete_ratios_no_outs$OCF, 
        complete_ratios_no_outs$ICR, 
        complete_ratios_no_outs$OPM,
        main = "Distribusi Variable",
        names = c("GPM",
                  "WC",
                  "RE/TA",
                  "ROA",
                  "ROE",
                  "TD/TA",
                  "ATR",
                  "TD/TE",
                  "PM",
                  "Marcap/TL",
                  "CR",
                  "Csh Rat",
                  "OCF",
                  "ICR",
                  "OPM"))

Bisa dilihat bahwa terdapat masih terdapat outlier pada variable-variable data. Ini menandakan bahwa tidak semua outlier dapat dihilangkan dari dataframe, namun perlu diingat bahwa kondisi data kita saat ini sudah jauh lebih baik dibandingkan data mentah sebelumnya

Correlation Heatmap

Langkah selanjutnya adalah untuk melihat hubungan korelasi antar setiap variable. Tujuannya adalah untuk melihat variable-variable apa saja yang dapat diekspektasikan untuk bergerak bersama pada output machine learning nanti.

ggcorr(complete_ratios_no_outs, label = TRUE)
## Warning in ggcorr(complete_ratios_no_outs, label = TRUE): data in column(s)
## 'Ticker', 'Company name', 'Quarter' are not numeric and were ignored

Bisa dilihat dari heatmap bahwa terdapat banyak hubungan antar variable yang korelasinya bisa dikatakan cukup kuat. Selain itu, ada juga 2 hubungan korelasi yang sangat kuat

  • Debt Ratio (TD/TA) dan Total Debt to Total Equity (TD/TE) memiliki korelasi positif sebesar 0.9
  • Return on Assets dan Return on Equity memiliki korelasi positif sebesar 0.9

Ada juga 3 variable yang korelasi dengan variable lainnya minim atau bahkan tidak ada:

  • Working Capital Ratio (WC) tidak memiliki hubungan korelasi sama sekali
  • Markep Value of Equity/Total Liabilities (Marcap/TL) dan Operating Cash Flow Ratio (OCF) hanya memiliki hubungan korelasi positif yang lemah sebesar 0.2 dengan satu sama lain, dan tidak berkorelasi dengan variable lainnya.

Selain 4 hubungan mencolok tersebut, ada juga hubungan yang perlu diperhatikan nantinya, yaitu hubungan antara profitabilitas perusahaan dengan variable-variable lainnya. Salah satu contoh variable pengukur profitabilitas pada data kita adalah ratio laba bersih perusahaan, yaitu Net Profit Margin (PM). Variable tersebut memiliki hubungan-hubungan sebagai berikut

Hubungan Korelasi Positif

Hubungan korelasi positif memberikan perkiraan terhadap variable apa saja yang mencerminkan performa perusahaan yang bagus:

  • Operating Profit Margin (0.6)
  • Return on Asset (0.5)
  • Return on Equity (0.5)
  • Interest Coverage Ratio (0.4)
  • Gross Profit Margin (0.3)
  • Cash Ratio (0.2)
  • Retained Earnings/Total Assets (0.2)
  • Current Ratio (0.1)

Seperti yang dikatakan sebelumnya, ini dikarenakan variable-variable tersebut memiliki korelasi positif dengan Net Profit Margin (laba bersih yang diperoleh perusahaan). Artinya kita bisa membuat perkiraan bahwa 8 variable tersebut akan bergerak ke arah yang sama dengan Net Profit Margin pada output akhir model

Hubungan Korelasi Negatif

Hubungan korelasi negatif memberikan perkiraan terhadap variable apa saja mencerminkan performa perusahaan yang kurang baik:

  • Total Debt/Total Equity (-0.1)
  • Asset Turnover Ratio (-0.1)
  • Debt Ratio (-0.1)

Artinya variable-variable ini dapat diperkirakan untuk bergerak berlawanan arah dengan variable Net Profit Margin kedepannya

Perlu diketahui bahwa Net Profit Margin bukanlah satu-satunya ratio keuangan yang mengukur profitabilitas sebuah perusahaan. Ratio Gross Profit Margin dan Operational Profit Margin juga dapat digunakan untuk mengukur keuntungan yang diperoleh perusahaan. Correlation matrix ini digunakan sebagai acuan mengenai bagaimana output hasil akhir model nantinya.

Langkah-Langkah Akhir

Tahap terakhir ini adalah untuk melihat jumlah data yang tersisa sesudah dibersihkan dari outlier.

nrow(complete_ratios_no_outs)
## [1] 4893717

Selain itu, chunk berikut adalah untuk menunjukkan jumlah perusahaan yang tersisa pada dataframe kita setelah dibersihkan dari outlier.

n_distinct(complete_ratios_no_outs$Ticker)
## [1] 273

Sebagai referensi, terdapat 440 perusahaan dalam data sebelum dibersihkan (Ini termasuk perusahaan yang datanya tersedia dan juga tidak tersedia di Bloomberg). Setelah pembersihan data pertama, terdapat 353 perusahaan yang tersisa. Dengan kata lain, terjadi penghapusan terhadap 167 perusahaan, yang dimana 87 perusahaan dihilangkan karena data ratio keuangannya tidak lengkap, dan 80 perusahaan hilang karena memiliki outlier yang terlalu besar.

Product Design

Bagian akhir dari proposal ini adalah mengenai product design yang diajukan sebagai output dari machine learning ini.

Algoritma yang Digunakan

Model unsupervised learning ini akan menggunakan algoritma fuzzy clustering (package fclust di R). Alasan dipilihnya algoritma ini adalah supaya user juga dapat melihat apakah seberapa besar kemungkinan perusahaan mengalami penurunan performa dengan melihat seberapa besar probabilitas sebuah perusahaan untuk menjadi bagian dari cluster lain. Tujuan melihat probabilitas tersebut adalah supaya pihak manajemen perusahaan dapat segera melakukan tindakan pencegahan sebelum situasi perusahaan menjadi memburuk. Selain itu, bisa juga untuk perusahaan-perusahaan yang justru keuangannya sedang memburuk untuk melihat seberapa besar kesempatan mereka untuk dapat memperbaiki kinerja mereka.

Fitur Product

Terdapat dua bagian pada dashboard yang akan dibuat dari output unsupervised machine learning:

Visualisasi Umum

Pertama adalah visualisasi yang menunjukkan clustering profile keuangan perusahaan di Indonesia, beserta dengan variable-variable apa saja yang terkait dengan performa perusahaan. Ini adalah untuk memberikan sebuah insight umum mengenai variable apa saja yang harus diperhatikan jika ingin performa perusahaan yang baik.

Custom Input Untuk Unseen Data

Kedua adalah membuat kolom-kolom yang dimana user dapat menginput ratio keuangan perusahaan mereka untuk melihat kira-kira di cluster mana perusahaan mereka berada dan juga bagaimana kondisi performa mereka. Apakah ratio keuangan mereka diasosiasikan dengan performa yang baik atau justru performa yang buruk. Ratio yang diinput oleh perusahaan sama dengan ratio yang digunakan pada pembentukan model machine learning.

Referensi