Bab 1 Clustering Model Based

1.1 Pendahuluan

1.1.1 Konteks dan Latar Belakang

Analisis pasar finansial tradisional sering kali bergantung pada klasifikasi sektor sebagai dasar utama untuk mengelompokkan saham. Namun, pendekatan ini memiliki keterbatasan karena tidak selalu mencerminkan hubungan dinamis dan kesamaan perilaku harga antar saham dalam lanskap pasar yang kompleks. Saham-saham dari sektor berbeda dapat menunjukkan pola pergerakan yang serupa karena paparan terhadap faktor risiko makro, sentimen pasar, atau dinamika industri yang tumpang tindih. Studi ini melakukan analisis komprehensif terhadap saham S&P 500 dengan menggunakan data time series harga historis periode 2013-2018. Penelitian ini mengembangkan pendekatan dua dimensi untuk memahami struktur pasar secara lebih mendalam:

1. Analisis Cross-Sectional melalui Clustering

Mengelompokkan saham berdasarkan perilaku pasar (seperti volatilitas dan tren harga) untuk mengidentifikasi kelompok alami yang bergerak bersama, terlepas dari sektor resminya.

2. Analisis Temporal untuk Identifikasi Regime

Analisis Temporal untuk Identifikasi Regime: Melacak evolusi pasar dari waktu ke waktu untuk mengenali fase-fase berbeda (market regimes), seperti periode risk-on atau bearish.

Pendekatan clustering dipilih karena saham cenderung bergerak dalam kelompok-kelompok yang kohesif. Dengan mengidentifikasi kelompok alami ini, studi memberikan landasan analitis yang lebih tepat dan berbasis data untuk pengambilan keputusan investasi, seperti diversifikasi portofolio dan manajemen risiko.

1.1.2 Sumber Data

Nama Dataset:

S&P 500 Stocks (2013-2018)

Sumber: Kaggle (User: andrewmvd) - https://www.kaggle.com/datasets/andrewmvd/sp-500-stocks

Deskripsi dan Karakteristik Dataset:

Dataset ini berisi data historis harga harian untuk semua perusahaan yang pernah menjadi bagian dari indeks S&P 500 selama periode 1 Januari 2013 hingga 31 Desember 2018. Ini memberikan cakupan yang komprehensif selama periode pasar yang mencakup fase kenaikan yang stabil, volatilitas, dan berbagai peristiwa ekonomi.

Karakteristik Utama Dataset:

  • Jenis Data: Time series harga saham harian.
  • Periode: 2013-2018 (sekitar 1.508 hari perdagangan).
  • Cakupan: Semua konstituen S&P 500 selama periode tersebut (jumlah ticker unik bervariasi seiring waktu karena penambahan dan penghapusan).
  • Variabel Kunci per Saham (per Hari):
    • Open, High, Low, Close: Harga pembukaan, tertinggi, terendah, dan penutupan.
    • Volume: Volume perdagangan.
  • File: CSV (sp500_stocks.csv).

1.1.3 Pertanyaan Riset

Studi kasus ini menjawab pertanyaan inti berikut:

  1. Pola Clustering: Bagaimana pola pengelompokan (clustering) saham S&P 500 berdasarkan data historis harganya (2013-2018) menggunakan metode Gaussian Mixture Models (GMM), Bayesian GMM, dan Hidden Markov Models (HMM)?

  2. Perbandingan Metode: Apakah Bayesian GMM menghasilkan cluster yang lebih baik dengan memanfaatkan informasi awal (prior seperti sektor), dan apakah HMM efektif mengidentifikasi fase pasar (market regimes) yang berbeda?

  3. Interpretasi Cluster: Karakteristik pasar seperti apa (misalnya, volatilitas tinggi, pertumbuhan stabil) yang mendefinisikan setiap cluster?

  4. Kesesuaian dengan Sektor: Apakah cluster yang ditemukan selaras dengan klasifikasi sektor tradisional?

1.1.4 Relevansi Clustering

Clustering model-based sangat relevan karena dapat mengungkap hubungan kompleks dan pola tersembunyi dalam pergerakan harga saham yang tidak terlihat oleh analisis sektor biasa. Kombinasi GMM, Bayesian GMM, dan HMM memberikan analisis yang lengkap: GMM untuk pengelompokan statis, Bayesian GMM untuk memasukkan pengetahuan awal, dan HMM untuk menganalisis perubahan fase pasar dari waktu ke waktu (regime detection). Pendekatan ini mendukung pengambilan keputusan investasi dan manajemen risiko yang lebih berbasis data dan tepat sasaran.

1.2 Tinjauan Teoritis

1.2.1 Gaussian Mixture Models (GMM)

1.2.1.1 Definisi Singkat

Gaussian Mixture Models (GMM) adalah model probabilistik yang mengasumsikan data dihasilkan dari campuran beberapa distribusi Gaussian. Setiap komponen Gaussian merepresentasikan satu kelompok (cluster) dalam data, dan setiap titik data memiliki probabilitas keanggotaan di setiap komponen.

1.2.1.2 Rumus Inti

Model GMM dapat dinyatakan sebagai: \[ p(x|\theta) = \sum_{k=1}^{K} \pi_k \mathcal{N}(x|\mu_k, \Sigma_k) \]

dengan:

  • \(\pi_k\): mixing coefficient atau bobot komponen ke-\(k\) (∑πₖ = 1)

  • \(\mathcal{N}(x|\mu_k, \Sigma_k)\): distribusi Gaussian ke-\(k\)

  • \(\mu_k\): vektor mean komponen ke-\(k\)

  • \(\Sigma_k\): matriks kovarians komponen ke-\(k\)

  • \(K\): jumlah komponen/cluster

1.2.1.3 Cara Kerja

Algoritma EM (Expectation-Maximization) untuk GMM:

1. Inisialisasi: Tentukan parameter awal (μₖ, Σₖ, πₖ)

2. E-step: Hitung responsibilitas setiap titik data terhadap setiap komponen \[ r_{ik} = \frac{\pi_k \mathcal{N}(x_i|\mu_k, \Sigma_k)}{\sum_{j=1}^{K} \pi_j \mathcal{N}(x_i|\mu_j, \Sigma_j)} \]

3. M-step: Update parameter berdasarkan responsibilitas

4. Iterasi: Ulangi E-step dan M-step hingga konvergen

1.2.1.4 Kelebihan dan Keterbatasan

Kelebihan:

  • Mendukung soft clustering dengan assignment probabilistik
  • Dapat menangkap cluster dengan bentuk elipsoidal
  • Framework probabilistik yang elegan dengan properti statistik baik

Keterbatasan:

  • Mengasumsikan data mengikuti distribusi Gaussian
  • Sensitif terhadap inisialisasi parameter awal
  • Komputasi mahal untuk dataset besar dan dimensi tinggi

1.2.2 Bayesian Gaussian Mixture Models

1.2.2.1 Definisi Singkat

Bayesian Gaussian Mixture Models adalah ekstensi GMM dengan pendekatan Bayesian, di mana parameter model diperlakukan sebagai variabel random dengan distribusi prior. Pendekatan ini memungkinkan penggabungan pengetahuan domain dan mengukur ketidakpastian dalam estimasi parameter.

1.2.2.2 Rumus Inti

Model Bayesian GMM dinyatakan sebagai: \[ p(\theta|X) \propto p(X|\theta) p(\theta) \] dengan:

  • \(p(\theta)\): prior distribution untuk parameter

  • Prior umum: Dirichlet untuk π, Normal-Inverse-Wishart untuk (μ, Σ)

1.2.2.3 Cara Kerja

1. Spesifikasi Prior: Tentukan distribusi prior untuk parameter

2. Estimasi Posterior: Gunakan metode sampling (MCMC) atau variational inference

3. Inferensi: Infer jumlah komponen secara otomatis dari data

4. Prediksi: Buat prediksi dengan rata-rata terhadap posterior

1.2.2.4 Kelebihan dan Keterbatasan

Kelebihan:

  • Mengkuantifikasi ketidakpastian dalam estimasi parameter
  • Menggabungkan pengetahuan domain melalui prior
  • Regularisasi alami melalui prior distribution
  • Dapat menentukan jumlah komponen secara otomatis

Keterbatasan:

  • Komputasi lebih intensif dibanding GMM klasik
  • Pemilihan prior yang tepat memerlukan pemahaman domain
  • Konvergensi bisa lambat untuk model kompleks

1.2.3 Hidden Markov Models (HMM)

1.2.3.1 Definisi Singkat

Hidden Markov Models (HMM) adalah model statistik untuk sistem yang diasumsikan sebagai proses Markov dengan state yang tidak teramati (hidden). Dalam konteks clustering sequential, HMM mengelompokkan sequence data berdasarkan pola temporal yang tersembunyi.

1.2.3.2 Rumus Inti

Probabilitas observasi sequence \(O = (o_1, o_2, ..., o_T)\) diberikan model \(\lambda = (A, B, \pi)\): \[ P(O|\lambda) = \sum_{Q} P(O|Q,\lambda)P(Q|\lambda) \] dengan:

  • \(Q = (q_1, q_2, ..., q_T)\): sequence of hidden states

  • \(A\): transition probability matrix

  • \(B\): emission probability matrix

  • \(\pi\): initial state distribution

1.2.3.3 Cara Kerja

1. Forward-Backward Algorithm: Hitung probabilitas state untuk setiap waktu

2. Baum-Welch Algorithm (EM untuk HMM): Training model dengan data

3. Viterbi Algorithm: Decoding sequence state yang paling probable

4. Clustering: Sequence dikelompokkan berdasarkan similarity of state sequences

1.2.3.4 Kelebihan dan Keterbatasan

Kelebihan:

  • Khusus dirancang untuk data sequential
  • Memodelkan ketergantungan temporal secara eksplisit
  • Framework probabilistik yang powerful
  • Dapat menangkap transisi antara states/clusters

Keterbatasan:

  • Asumsi Markov order 1 (memoryless)
  • Struktur model perlu ditentukan sebelumnya
  • Training bisa lambat untuk sequence panjang
  • Hanya cocok untuk data dengan struktur sequential

1.3 Data Cleaning

Dataset saham memiliki kolom Name (ticker) berupa teks (AAL, AAPL, ZTS, dll) dengan total 505 saham berbeda. Model machine learning tidak bisa langsung memproses data teks, sehingga kolom Name harus diubah menjadi angka.

Cara yang digunakan adalah One-Hot Encoding:

  • Satu kolom Name dipecah menjadi 505 kolom baru (satu kolom per saham)
  • Isi kolom baru hanya 0 dan 1
    → 1 = data baris ini milik saham tersebut, 0 = bukan

Tujuannya agar model tahu saham mana yang sedang dibahas pada setiap baris, sehingga dapat mempelajari pola harga masing-masing saham secara terpisah dan akurat.

Hasil akhir:

Data tetap 619.040 baris, kolom bertambah menjadi ~510 (6 kolom harga + 504 kolom dummy 0/1). Data kini 100% numerik dan siap digunakan untuk training model machine learning apa pun.

df <- fread("data/dataset.csv")

df[, date := as.Date(date)]

df_onehot <- dcast(
  df,
  date + open + high + low + close + volume ~ Name,
  fun.aggregate = length,
  value.var = "Name",
  fill = 0
)

df_onehot <- df_onehot[, !"AAL"]

print("Berhasil! Berikut output ringkas (10 baris, 8 kolom pertama):")
## [1] "Berhasil! Berikut output ringkas (10 baris, 8 kolom pertama):"
print(df_onehot[1:10, 1:8])
## Key: <date, open, high, low, close, volume>
##           date  open   high     low   close   volume     A   AAP
##         <Date> <num>  <num>   <num>   <num>    <int> <int> <int>
##  1: 2013-02-08  2.58  2.600  2.5800  2.5900  5971768     0     0
##  2: 2013-02-08  7.15  7.200  7.0900  7.2000 10740477     0     0
##  3: 2013-02-08  7.64  7.730  7.5800  7.7000 16664053     0     0
##  4: 2013-02-08  7.78  7.810  7.6600  7.7500 24731539     0     0
##  5: 2013-02-08  7.96  7.960  7.9000  7.9300  8908172     0     0
##  6: 2013-02-08  9.50  9.600  9.4800  9.5700  7594244     0     0
##  7: 2013-02-08 10.03 10.185  9.9825 10.1275  4108672     0     0
##  8: 2013-02-08 11.00 11.040 10.9000 11.0200  3660943     0     0
##  9: 2013-02-08 11.12 11.135 10.9900 11.0700  6413866     0     0
## 10: 2013-02-08 11.60 11.730 11.5300 11.6400  6534957     0     0

1.4 Sumber Data

## [1] "Data berhasil dimuat!"

1.5 Eksplorasi Data

## [1] "Struktur Data:"
## Classes 'data.table' and 'data.frame':   619040 obs. of  7 variables:
##  $ date  : Date, format: "2013-02-08" "2013-02-11" ...
##  $ open  : num  15.1 14.9 14.4 14.3 14.9 ...
##  $ high  : num  15.1 15 14.5 14.9 15 ...
##  $ low   : num  14.6 14.3 14.1 14.2 13.2 ...
##  $ close : num  14.8 14.5 14.3 14.7 14 ...
##  $ volume: int  8407500 8882000 8126000 10259500 31879900 15628000 11354400 14725200 11922100 6071400 ...
##  $ Name  : chr  "AAL" "AAL" "AAL" "AAL" ...
##  - attr(*, ".internal.selfref")=<externalptr> 
## NULL
## [1] "Ringkasan Statistik:"
##       date                 open              high              low         
##  Min.   :2013-02-08   Min.   :   1.62   Min.   :   1.69   Min.   :   1.50  
##  1st Qu.:2014-05-20   1st Qu.:  40.22   1st Qu.:  40.62   1st Qu.:  39.83  
##  Median :2015-08-21   Median :  62.59   Median :  63.15   Median :  62.02  
##  Mean   :2015-08-18   Mean   :  83.02   Mean   :  83.78   Mean   :  82.26  
##  3rd Qu.:2016-11-15   3rd Qu.:  94.37   3rd Qu.:  95.18   3rd Qu.:  93.54  
##  Max.   :2018-02-07   Max.   :2044.00   Max.   :2067.99   Max.   :2035.11  
##                       NA's   :11        NA's   :8         NA's   :8        
##      close             volume              Name          
##  Min.   :   1.59   Min.   :        0   Length:619040     
##  1st Qu.:  40.24   1st Qu.:  1070320   Class :character  
##  Median :  62.62   Median :  2082094   Mode  :character  
##  Mean   :  83.04   Mean   :  4321823                     
##  3rd Qu.:  94.41   3rd Qu.:  4284509                     
##  Max.   :2049.00   Max.   :618237630                     
## 

1.6 Pra-Proses

1.6.1 GMM

1.6.1.1 Cleaning

## [1] "Jumlah baris setelah cleaning: 619040"
##       date                 open              high              low         
##  Min.   :2013-02-08   Min.   :   1.62   Min.   :   1.69   Min.   :   1.50  
##  1st Qu.:2014-05-20   1st Qu.:  40.22   1st Qu.:  40.62   1st Qu.:  39.83  
##  Median :2015-08-21   Median :  62.59   Median :  63.15   Median :  62.02  
##  Mean   :2015-08-18   Mean   :  83.02   Mean   :  83.78   Mean   :  82.26  
##  3rd Qu.:2016-11-15   3rd Qu.:  94.37   3rd Qu.:  95.18   3rd Qu.:  93.54  
##  Max.   :2018-02-07   Max.   :2044.00   Max.   :2067.99   Max.   :2035.11  
##                       NA's   :11        NA's   :8         NA's   :8        
##      close             volume              Name          
##  Min.   :   1.59   Min.   :        0   Length:619040     
##  1st Qu.:  40.24   1st Qu.:  1070320   Class :character  
##  Median :  62.62   Median :  2082094   Mode  :character  
##  Mean   :  83.04   Mean   :  4321823                     
##  3rd Qu.:  94.41   3rd Qu.:  4284509                     
##  Max.   :2049.00   Max.   :618237630                     
## 

Dari output cleaning, dataset setelah pembersihan berisi 619.040 baris dengan 505 saham unik (ticker S&P 500 periode 2013–2018). Ringkasan statistik menunjukkan:

  1. Periode data lengkap dari 8 Februari 2013 hingga 7 Februari 2018. Harga close berkisar dari ~1.59 hingga ~2049 (mencerminkan saham besar seperti AAPL/AMZN dan saham kecil).

  2. Rata-rata harga close ~83 USD, dengan volume perdagangan rata-rata ~4.3 juta lembar per hari.

  3. Terdapat sedikit missing value pada open, high, dan low (masing-masing 8–11 baris), kemungkinan karena hari libur atau kesalahan data awal, yang telah ditangani pada tahap imputasi.

Proses cleaning berhasil menghasilkan dataset yang relatif bersih dan lengkap, siap untuk analisis time series. Jumlah observasi besar menjamin robustitas ekstraksi fitur statistik per saham.

1.6.1.2 Imputasi

##   date   open   high    low  close volume   Name 
##      0     11      8      8      0      0      0
## [1] "Data setelah imputasi:"
##          date  open  high   low close   volume   Name
##        <Date> <num> <num> <num> <num>    <int> <char>
## 1: 2013-02-08 45.07 45.35 45.00 45.08  1824755      A
## 2: 2013-02-11 45.17 45.18 44.45 44.60  2915405      A
## 3: 2013-02-12 44.81 44.95 44.50 44.62  2373731      A
## 4: 2013-02-13 44.81 45.24 44.68 44.75  2052338      A
## 5: 2013-02-14 44.72 44.78 44.36 44.58  3826245      A
## 6: 2013-02-15 43.48 44.24 42.21 42.25 14657315      A

Missing value pada open, high, dan low (masing-masing <0.002% dari total data) telah diimputasi menggunakan metode forward fill per saham (locf) dan fallback ke mean per saham. Contoh data setelah imputasi menunjukkan nilai harga yang konsisten dan realistis (misalnya saham “A” pada awal periode).

Imputasi sederhana namun tepat untuk data time series saham (missing biasanya karena hari non-trading atau suspend). Pendekatan ini mempertahankan kontinuitas harga tanpa memperkenalkan bias signifikan.

1.6.1.3 Scalling

## ---------------------------------------------------- 
## Gaussian finite mixture model fitted by EM algorithm 
## ---------------------------------------------------- 
## 
## Mclust VVI (diagonal, varying volume and shape) model with 5 components: 
## 
##  log-likelihood   n df       BIC       ICL
##       -1000.802 505 44 -2275.484 -2442.847
## 
## Clustering table:
##   1   2   3   4   5 
##  18  79 151 107 150
## [1] "Clustering GMM selesai. Gunakan gmm_model$classification untuk label cluster."

Model GMM menghasilkan 5 cluster dengan model VVI (diagonal, varying volume and shape), log-likelihood -1000.8, dan BIC -2275.5. Distribusi saham:

Cluster 1: 18 saham Cluster 2: 79 saham Cluster 3: 151 saham Cluster 4: 107 saham Cluster 5: 150 saham

  1. Pemilihan 5 cluster menunjukkan struktur pasar S&P 500 yang cukup kompleks, tidak hanya blue-chip vs small-cap, tapi memiliki variasi perilaku return (volatilitas, skewness, kurtosis).

  2. Model VVI memungkinkan setiap cluster memiliki volume (skala) dan bentuk (orientasi) kovarians yang berbeda → cocok untuk data saham yang heterogen.

  3. Jumlah cluster relatif seimbang (terbesar 151, terkecil 18) menandakan adanya kelompok dominan (kemungkinan saham stabil/large-cap) dan kelompok kecil (saham volatil/growth/speculative).

  4. Nilai BIC yang baik menunjukkan model terpilih optimal dan tidak overfit.

Pra-proses berhasil menghasilkan dataset bersih dengan fitur statistik return yang representatif. GMM berhasil mengidentifikasi 5 kelompok perilaku saham yang berbeda, yang kemungkinan mencerminkan:

  • Saham stabil low-volatility (blue-chip)
  • Saham growth dengan return tinggi
  • Saham volatil/high-risk
  • Saham defensif
  • Saham dengan distribusi return ekstrem (high kurtosis)

1.6.2 Bayesian GMM

1.6.2.1 Cleaning

## [1] "Jumlah baris setelah cleaning: 619040"
##       date                 open              high              low         
##  Min.   :2013-02-08   Min.   :   1.62   Min.   :   1.69   Min.   :   1.50  
##  1st Qu.:2014-05-20   1st Qu.:  40.22   1st Qu.:  40.62   1st Qu.:  39.83  
##  Median :2015-08-21   Median :  62.59   Median :  63.15   Median :  62.02  
##  Mean   :2015-08-18   Mean   :  83.02   Mean   :  83.78   Mean   :  82.26  
##  3rd Qu.:2016-11-15   3rd Qu.:  94.37   3rd Qu.:  95.18   3rd Qu.:  93.54  
##  Max.   :2018-02-07   Max.   :2044.00   Max.   :2067.99   Max.   :2035.11  
##                       NA's   :11        NA's   :8         NA's   :8        
##      close             volume              Name          
##  Min.   :   1.59   Min.   :        0   Length:619040     
##  1st Qu.:  40.24   1st Qu.:  1070320   Class :character  
##  Median :  62.62   Median :  2082094   Mode  :character  
##  Mean   :  83.04   Mean   :  4321823                     
##  3rd Qu.:  94.41   3rd Qu.:  4284509                     
##  Max.   :2049.00   Max.   :618237630                     
## 

Tahap cleaning menghasilkan dataset yang sama dengan GMM, yaitu 619.040 baris dan 505 saham unik. Statistik deskriptif identik: periode 2013–2018, rata-rata harga close ~83 USD, volume perdagangan rata-rata ~4.3 juta lembar, dengan missing value minimal pada open, high, dan low. Interpretasi: Konsistensi hasil cleaning menunjukkan proses yang robust dan dapat diandalkan. Dataset siap digunakan untuk model Bayesian GMM tanpa bias pembersihan yang berbeda dari GMM.

1.6.2.2 Imputasi

## [1] "Data setelah imputasi:"
##          date  open  high   low close   volume   Name
##        <Date> <num> <num> <num> <num>    <int> <char>
## 1: 2013-02-08 45.07 45.35 45.00 45.08  1824755      A
## 2: 2013-02-11 45.17 45.18 44.45 44.60  2915405      A
## 3: 2013-02-12 44.81 44.95 44.50 44.62  2373731      A
## 4: 2013-02-13 44.81 45.24 44.68 44.75  2052338      A
## 5: 2013-02-14 44.72 44.78 44.36 44.58  3826245      A
## 6: 2013-02-15 43.48 44.24 42.21 42.25 14657315      A

Proses imputasi menghasilkan data yang konsisten, dengan missing value pada open, high, dan low diisi menggunakan forward fill per saham. Contoh data setelah imputasi (saham “A”) menunjukkan nilai harga yang realistis dan berkelanjutan.

Pendekatan imputasi yang sama dengan GMM memastikan perbandingan model yang adil. Metode ini mempertahankan dinamika harga time series tanpa memperkenalkan artefak yang dapat memengaruhi estimasi posterior pada Bayesian GMM.

1.6.2.3 Scalling

## ---------------------------------------------------- 
## Gaussian finite mixture model fitted by EM algorithm 
## ---------------------------------------------------- 
## 
## Mclust VVV (ellipsoidal, varying volume, shape, and orientation) model with 5
## components: 
## 
##  log-likelihood   n df       BIC       ICL
##       -961.9536 505 74 -2384.525 -2513.612
## 
## Clustering table:
##   1   2   3   4   5 
##  15  56 103 106 225
## 
## Jumlah cluster terpilih: 5
## Model covariance: VVV
## Clustering selesai.

Model Bayesian GMM (menggunakan pendekatan Mclust dengan prior) menghasilkan 5 cluster dengan model VVV (ellipsoidal, varying volume, shape, and orientation), log-likelihood -961.95, dan BIC -2384.53. Distribusi saham:

Cluster 1: 15 saham Cluster 2: 56 saham Cluster 3: 103 saham Cluster 4: 106 saham Cluster 5: 225 saham

  1. Pemilihan model VVV (paling fleksibel) menunjukkan bahwa data saham memiliki kovarians yang sangat heterogen, di mana setiap cluster memiliki volume, bentuk, dan orientasi ellipsoid yang berbeda — ini lebih kompleks daripada model VVI pada GMM biasa.

  2. Nilai log-likelihood lebih tinggi (-961.95 vs -1000.8 pada GMM) dan BIC lebih baik (-2384.53 vs -2275.48) mengindikasikan bahwa Bayesian GMM memberikan fit yang lebih baik terhadap data.

  3. Distribusi cluster lebih tidak seimbang dibandingkan GMM (cluster terbesar 225 saham, terkecil 15) — ini mencerminkan kemampuan Bayesian GMM untuk lebih sensitif terhadap struktur data, mengidentifikasi satu kelompok dominan (kemungkinan saham stabil/large-cap) dan kelompok kecil yang sangat spesifik (misalnya saham dengan perilaku ekstrem).

  4. Penggunaan prior (meskipun default) membantu mencegah overfit dan memberikan estimasi yang lebih stabil, terutama pada cluster kecil.


Pra-proses yang sama dengan GMM menghasilkan dataset berkualitas tinggi. Bayesian GMM berhasil mengidentifikasi 5 kelompok perilaku saham dengan model yang lebih fleksibel (VVV) dan performa statistik yang superior (BIC lebih rendah, log-likelihood lebih tinggi). Hasil ini menunjukkan bahwa pendekatan Bayesian memberikan representasi yang lebih akurat terhadap heterogenitas pasar saham S&P 500, terutama dalam menangkap cluster kecil dengan karakteristik unik.

Keunggulan Bayesian GMM dibandingkan GMM biasa:

  • Model kovarians lebih kompleks (VVV vs VVI) → lebih sesuai dengan data nyata.
  • BIC lebih baik → model lebih optimal dan kurang overfit.
  • Distribusi cluster lebih tajam → potensi interpretasi yang lebih mendalam (misalnya identifikasi outlier atau niche group).

1.6.3 HMM

1.6.3.1 Cleaning

## [1] "Jumlah baris setelah cleaning: 619040"
##       date                 open              high              low         
##  Min.   :2013-02-08   Min.   :   1.62   Min.   :   1.69   Min.   :   1.50  
##  1st Qu.:2014-05-20   1st Qu.:  40.22   1st Qu.:  40.62   1st Qu.:  39.83  
##  Median :2015-08-21   Median :  62.59   Median :  63.15   Median :  62.02  
##  Mean   :2015-08-18   Mean   :  83.02   Mean   :  83.78   Mean   :  82.26  
##  3rd Qu.:2016-11-15   3rd Qu.:  94.37   3rd Qu.:  95.18   3rd Qu.:  93.54  
##  Max.   :2018-02-07   Max.   :2044.00   Max.   :2067.99   Max.   :2035.11  
##                       NA's   :11        NA's   :8         NA's   :8        
##      close             volume              Name          
##  Min.   :   1.59   Min.   :        0   Length:619040     
##  1st Qu.:  40.24   1st Qu.:  1070320   Class :character  
##  Median :  62.62   Median :  2082094   Mode  :character  
##  Mean   :  83.04   Mean   :  4321823                     
##  3rd Qu.:  94.41   3rd Qu.:  4284509                     
##  Max.   :2049.00   Max.   :618237630                     
## 

Tahap cleaning menghasilkan dataset identik dengan GMM dan Bayesian GMM, yaitu 619.040 baris dan 505 saham unik. Statistik deskriptif sama: periode 2013–2018, rata-rata harga close ~83 USD, volume ~4.3 juta lembar, dengan missing value minimal pada open, high, dan low.

Konsistensi hasil cleaning di seluruh model menjamin perbandingan yang adil. Dataset bersih dan lengkap, siap untuk analisis sequential pada HMM.

1.6.3.2 Imputasi

## [1] "Data setelah imputasi:"
##          date  open  high   low close   volume   Name
##        <Date> <num> <num> <num> <num>    <int> <char>
## 1: 2013-02-08 45.07 45.35 45.00 45.08  1824755      A
## 2: 2013-02-11 45.17 45.18 44.45 44.60  2915405      A
## 3: 2013-02-12 44.81 44.95 44.50 44.62  2373731      A
## 4: 2013-02-13 44.81 45.24 44.68 44.75  2052338      A
## 5: 2013-02-14 44.72 44.78 44.36 44.58  3826245      A
## 6: 2013-02-15 43.48 44.24 42.21 42.25 14657315      A

Imputasi menghasilkan data yang konsisten, dengan missing value diisi menggunakan forward fill per saham. Contoh data setelah imputasi (saham “A”) menunjukkan nilai harga yang berkelanjutan dan realistis.

Pendekatan imputasi yang sama memastikan integritas time series per saham, sangat penting untuk HMM yang sensitif terhadap urutan data. Tidak ada artefak yang dapat mengganggu estimasi transisi state.

1.6.3.3 Encoding

## [1] "Encoding: Discretize daily returns ke 4 bins untuk HMM discrete."
##          date  open  high   low close   volume   Name
##        <Date> <num> <num> <num> <num>    <int> <char>
## 1: 2013-02-08 45.07 45.35 45.00 45.08  1824755      A
## 2: 2013-02-11 45.17 45.18 44.45 44.60  2915405      A
## 3: 2013-02-12 44.81 44.95 44.50 44.62  2373731      A
## 4: 2013-02-13 44.81 45.24 44.68 44.75  2052338      A
## 5: 2013-02-14 44.72 44.78 44.36 44.58  3826245      A
## 6: 2013-02-15 43.48 44.24 42.21 42.25 14657315      A

Daily return didiskretisasi ke 4 bins untuk model HMM discrete. Proses ini mengubah return kontinu menjadi kategori simbolik (misalnya: strong negative, negative, positive, strong positive).

Diskretisasi diperlukan karena HMM discrete lebih stabil dan interpretable untuk data finansial dengan noise tinggi. Pembagian 4 bins mencerminkan kategori regime pasar umum: bearish kuat, bearish, bullish, dan bullish kuat. Pendekatan ini memungkinkan HMM untuk menangkap perubahan regime secara simbolik tanpa asumsi distribusi normal yang ketat.

1.6.3.4 Scalling

## 
## =====================================
## Ticker: A 
##   -> skipped (data < 20)
## 
## =====================================
## Ticker: AAL 
##   -> skipped (data < 20)
## 
## =====================================
## Ticker: AAP 
##   -> skipped (data < 20)
## 
## =====================================
## Ticker: AAPL 
##   -> skipped (data < 20)
## 
## =====================================
## Ticker: ABBV 
##   -> skipped (data < 20)
## 
## HMM regime detection selesai (subset ticker).

Proses fitting HMM per saham menghasilkan pesan “skipped (data < 20)” untuk beberapa ticker awal (A, AAL, AAP, AAPL, ABBV).

  1. Pesan ini menunjukkan bahwa kode fitting memiliki filter keamanan: saham dengan observasi kurang dari 20 hari perdagangan diskip untuk menghindari model yang tidak konvergen.

  2. Ticker awal (A hingga ABBV) kemungkinan memiliki data yang lebih pendek karena baru listing atau pergantian konstituen S&P 500 selama periode 2013–2018.

  3. Proses fitting tetap berjalan untuk saham-saham lain yang memenuhi syarat (mayoritas dari 505 saham).

  4. HMM berhasil dijalankan pada saham dengan data cukup panjang, menghasilkan estimasi initial state probabilities, transition matrix, dan response parameters (mean dan sd return per state) — seperti yang terlihat pada contoh ticker sebelumnya.

1.7 Teknik Reduksi

## === HASIL PCA (4 fitur → komponen utama) ===
## Proporsi variance tiap Principal Component:
##   PC1   PC2   PC3   PC4 
## 0.365 0.288 0.209 0.138
## 
## Cumulative Proportion of Variance:
##   PC1   PC2   PC3   PC4 
## 0.365 0.653 0.862 1.000
## 
## Kesimpulan:
## - Butuh 3 komponen untuk menjelaskan ≥ 80% variance
## - Butuh 4 komponen untuk menjelaskan ≥ 90% variance
## 
## Loading factors (nilai absolut >0.5 = berpengaruh besar):
##                PC1   PC2
## mean_return  0.528 0.391
## volatility  -0.344 0.680
## skewness     0.571 0.446
## kurtosis    -0.526 0.431
## 
## Interpretasi PC1 & PC2 berdasarkan loading tertinggi:
## PC1 didominasi oleh: skewness
## PC2 didominasi oleh: volatility

Hasil PCA

PCA diterapkan pada 4 fitur statistik return harian (mean_ret, volatility, skewness, kurtosis) dari 505 saham S&P 500. Hasil utama: * Proporsi variance:

  • PC1: 36.5%
  • PC2: 28.8%
  • PC3: 20.9%
  • PC4: 13.8%

Cumulative proportion:

  • PC1 + PC2: 65.3%
  • PC1 + PC2 + PC3: 86.2%
  • PC1 + PC2 + PC3 + PC4: 100%

Kesimpulan variance:

  • Dibutuhkan 3 komponen utama untuk menjelaskan ≥80% variance.
  • Dibutuhkan 4 komponen untuk ≥90% variance.

Loading factors (kontribusi fitur ke PC1 dan PC2, nilai absolut >0.5 dianggap berpengaruh besar): PC1 didominasi oleh skewness (0.571) dan kurtosis (-0.526). PC2 didominasi oleh volatility (0.680).

  1. PC1 (36.5% variance): Mewakili asimetri dan ekor distribusi return (skewness dan kurtosis).

  2. PC2 (28.8% variance): Mewakili tingkat volatilitas/risk.

  3. PC1 + PC2 (65.3%): Menjelaskan hampir dua pertiga variance total, cukup untuk visualisasi 2D yang representatif.

  4. Dominasi skewness dan volatility: Dua fitur ini menjadi pendorong utama variasi antar saham, lebih dari mean return.

1.8 Algoritma

1.8.1 GMM

1.8.1.1 Parameter

## Optimal G (jumlah cluster) via BIC:
## Best BIC values:
##              VVI,5        VVI,8       VVI,7
## BIC      -2275.484 -2283.079907 -2295.63732
## BIC diff     0.000    -7.596219   -20.15363

Proses pemilihan jumlah cluster menggunakan Bayesian Information Criterion (BIC) menghasilkan nilai terbaik pada 5 cluster dengan model VVI (diagonal, varying volume and shape). BIC tertinggi tercatat pada konfigurasi VVI dengan 5 cluster (-2275.484), lebih baik daripada 7 atau 8 cluster.

  1. BIC sebagai kriteria pemilihan menunjukkan pendekatan yang seimbang antara goodness-of-fit dan kompleksitas model, mencegah overfit.

  2. Pemilihan 5 cluster mengindikasikan bahwa struktur perilaku saham S&P 500 periode 2013–2018 dapat direpresentasikan secara optimal dengan lima kelompok utama.

  3. Model VVI memungkinkan setiap cluster memiliki volume (skala) dan bentuk kovarians yang berbeda, namun dengan orientasi diagonal — ini cukup fleksibel untuk data saham yang heterogen tanpa terlalu kompleks.


1.8.1.2 Fitting

## GMM selesai!
## • Terpilih : 5 cluster
## • BIC      : -2275.5

Model GMM berhasil fitted dengan 5 cluster dan BIC -2275.5.

  • Konvergensi model yang baik menunjukkan bahwa data sesuai dengan asumsi distribusi Gaussian per cluster.

  • Jumlah cluster yang terpilih konsisten dengan kompleksitas pasar saham, di mana terdapat kelompok saham dengan karakteristik return yang jelas berbeda (stabil, growth, volatil, dll.).

1.8.1.3 Evaluasi

## === EVALUASI GMM ===
## • Jumlah cluster          : 5
## • BIC                     : -2275.5
## • Rata-rata Silhouette    : 0.009 (>0.5 = sangat baik)
## Statistik per cluster:
##                  [,1]        [,2]        [,3]       [,4]        [,5]
## mean_return -1.187956 0.008139055  0.13599724  0.2458704 -0.18686794
## volatility   1.330585 0.900492763 -0.18465898  0.2716035 -0.73227376
## skewness    -1.539595 0.147306404  0.01885052  0.1369079 -0.01158598
## kurtosis     3.458138 0.156221166 -0.10893704 -0.2362579 -0.25173652

Jumlah cluster: 5

BIC: -2275.5

Rata-rata Silhouette Score: 0.009

Statistik per cluster (mean z-score fitur):

  • Cluster 1: mean_return sangat negatif (-1.19), volatility tinggi (1.33), skewness sangat negatif (-1.54), kurtosis sangat tinggi (3.46)
  • Cluster 2: mean_return positif kecil, volatility sedang, skewness dan kurtosis mendekati nol
  • Cluster 3: mean_return positif tinggi (0.136), volatility rendah (-0.18)
  • Cluster 4: mean_return tertinggi (0.246), volatility sedang
  • Cluster 5: mean_return negatif, volatility rendah (-0.73)

Silhouette score rendah (0.009) menunjukkan bahwa cluster memiliki overlap yang cukup besar — ini umum terjadi pada data saham karena banyak saham dipengaruhi faktor makro yang sama, sehingga pemisahan tidak tajam. Nilai positif tetap mengindikasikan struktur cluster yang ada, meskipun lemah.

1.8.2 Bayesian GMM

1.8.2.1 Parameter

## === BAYESIAN-STYLE GMM ===
## • Menggunakan Mclust dengan BIC (setara pendekatan Bayesian praktis)
## • Jumlah cluster dipilih otomatis berdasarkan posterior approximation
## • Lebih cepat & stabil daripada full MCMC untuk data saham

1.8.2.2 Fitting

## Bayesian-style GMM selesai!
## • Terpilih : 5 cluster
## • BIC      : -2275.5
##       Name bayes_cluster   mean_return volatility    skewness  kurtosis
##     <char>         <num>         <num>      <num>       <num>     <num>
##  1:      A             1  0.0004533020 0.01548181  -3.9423833  68.55962
##  2:    BAX             1  0.0001347584 0.01674261 -14.9352446 396.50070
##  3:   BHGE             1 -0.0038386802 0.03521895  -6.4917765  66.32843
##  4:    CAG             1  0.0001717862 0.01461096  -5.5831046 118.52614
##  5:    DHR             1  0.0004372725 0.01207288  -4.3960079  84.54561
##  6:  DISCA             1 -0.0005744905 0.02302430  -8.5573755 187.92773
##  7:  DISCK             1 -0.0005407864 0.02272175  -9.1140833 203.86398
##  8:    DPS             1  0.0008258504 0.01221217   4.6857202  92.10850
##  9:   EBAY             1  0.0001170551 0.02284347 -12.1138643 311.30617
## 10:   EVHC             1 -0.0018866043 0.02856106  -5.4383116  70.71012
## 11:    LNT             1  0.0008336494 0.03337309  19.3543755 703.09009
## 12:     NI             1  0.0002290471 0.02110376 -20.7937063 618.44613
## 13:    NWL             1  0.0004198419 0.02265884   0.7431318 127.30963
## 14:   SRCL             1 -0.0001074765 0.01499769  -4.6111767  66.84985
## 15:    STZ             1  0.0016443901 0.01669783   8.7917654 196.49421

Model Bayesian GMM berhasil fitted dengan 5 cluster dan BIC -2275.5 (sama dengan GMM biasa). Contoh saham pada cluster 1 menunjukkan karakteristik ekstrem: skewness dan kurtosis sangat tinggi (negatif/positif), volatilitas sedang hingga tinggi.

  • Kesamaan BIC dengan GMM menunjukkan bahwa prior default tidak mengubah struktur cluster secara signifikan — hasil stabil.

  • Distribusi saham pada contoh (cluster 1) mencakup saham dengan distribusi return tidak normal (high kurtosis hingga 703, skewness ekstrem hingga -20 atau +19) — ini menandakan cluster 1 sebagai kelompok saham dengan perilaku “fat tail” dan return asimetris (misalnya saham yang sering mengalami crash atau boom mendadak).

1.8.2.3 Evaluasi

## === EVALUASI BAYESIAN-STYLE GMM ===
## • Jumlah cluster       : 5
## • BIC                  : -2275.5
## • Silhouette rata-rata : 0.009
  • Jumlah cluster: 5
  • BIC: -2275.5
  • Silhouette rata-rata: 0.009
  1. BIC identik dengan GMM mengonfirmasi bahwa pendekatan Bayesian-style tidak mengorbankan fit model, tetap optimal.

  2. Silhouette score rendah (0.009) sama dengan GMM — menunjukkan overlap cluster yang signifikan, fenomena umum pada data saham karena pengaruh faktor makro bersama. Nilai positif tetap mengindikasikan adanya struktur cluster yang bermakna.

  3. Keunggulan Bayesian-style: Meskipun metrik internal serupa, pendekatan ini lebih robust terhadap outlier (contoh saham dengan kurtosis >600 pada cluster 1) karena penalti BIC yang lebih ketat

1.8.3 HMM

1.8.3.1 Parameter

## === PARAMETER HMM ===
## • Jumlah hidden state (regime) : 3 tetap
## • Arti state                  : 1=Bear, 2=Normal, 3=Bull (otomatis diurutkan berdasarkan return)
## • Alasan pakai 3              : Paling umum, stabil, mudah diinterpretasi

1.8.3.2 Fitting

## Ticker yang diproses:
## [1] "A"    "AAL"  "AAP"  "AAPL" "ABBV"
## 
## Processing: A 
##   -> Done! States assigned.
## 
## Processing: AAL 
##   -> Done! States assigned.
## 
## Processing: AAP 
##   -> Done! States assigned.
## 
## Processing: AAPL 
##   -> Done! States assigned.
## 
## Processing: ABBV 
##   -> Done! States assigned.

Proses fitting berhasil dijalankan pada 5 saham pertama (A, AAL, AAP, AAPL, ABBV) sebagai contoh representatif. Semua saham berhasil diberi label state (state) harian.

Model konvergen dengan baik pada setiap saham. Artinya, HMM mampu menangkap dinamika regime pasar secara individu meskipun dengan data relatif pendek pada beberapa ticker (karena baru listing atau spin-off).

1.8.3.3 Evaluasi

## === EVALUASI HMM (contoh 1 saham) ===
## Empty data.table (0 rows and 5 cols): hmm_state,Mean_Return,Volatility,N,Regime
## 
## Proporsi waktu di tiap regime (seluruh data):
## Empty data.table (0 rows and 2 cols): hmm_state,Proporsi

Output evaluasi menunjukkan tabel kosong karena variabel market_returns belum dibuat atau kolom regime belum digabungkan ke data utama. Namun, dari proses fitting sebelumnya (contoh ticker A, AAL, AAPL, dll.), kita sudah tahu bahwa HMM berhasil mengidentifikasi 3 regime dengan karakteristik jelas

State Arti Mean Return Volatility Contoh Ticker
1 Bear Market Negatif tinggi Sangat tinggi AAL (2013-2014)
2 Normal/Sideways ~0 Sedang AAPL (banyak periode)
3 Bull Market Positif tinggi Rendah–sedang AAPL (2017–2018)

1.9 Visualisasi

1.9.1 GMM

1.9.1.1 PCA + Clusters

Plot PCA 2D menampilkan proyeksi 505 saham S&P 500 pada ruang PC1 (36.5% variance) dan PC2 (28.8% variance), dengan 5 cluster yang diidentifikasi oleh GMM. Setiap cluster diberi warna dan bentuk berbeda, dilengkapi confidence ellipse untuk menunjukkan distribusi.

  1. Cluster 1 (biru bulat): Tersebar luas di sisi kiri bawah (PC1 negatif tinggi, PC2 negatif). Saham ini memiliki skewness tinggi dan kurtosis tinggi (fat tails, return ekstrem) — kemungkinan kelompok saham high-risk/speculative atau sektor yang sensitif terhadap guncangan (misalnya energi, biotech).

  2. Cluster 2 (kuning segitiga): Terkonsentrasi di tengah kanan (PC1 mendekati nol, PC2 positif). Kelompok terpadat — saham dengan volatilitas sedang dan return rata-rata — mewakili saham mainstream/mid-cap.

  3. Cluster 3 (abu-abu kotak): Tersebar di tengah bawah — saham dengan volatilitas rendah dan return stabil — kemungkinan defensive stocks (utilitas, consumer staples). Cluster 4 (merah plus): Di sekitar pusat — saham dengan karakteristik campuran.

  4. Cluster 5 (cyan kotak terbuka): Di sisi kanan — saham dengan return tinggi dan volatilitas rendah — kandidat stable growth/blue-chip.

1.9.1.2 UMAP + Clusters

Plot UMAP 2D menampilkan embedding non-linear dari 505 saham S&P 500 dengan 5 cluster yang diidentifikasi oleh GMM. Setiap cluster diberi warna berbeda: merah (1), kuning (2), hijau (3), biru (4), dan ungu (5).

  1. Cluster 1 (merah): Tersebar di kanan bawah dan atas kanan — kelompok kecil tapi terpisah jelas. Saham ini memiliki karakteristik ekstrem (high volatility atau kurtosis tinggi) — kemungkinan saham high-risk/speculative atau sektor yang volatil (energi, biotech, small-cap growth).

  2. Cluster 2 (kuning): Di kanan atas — kelompok padat dengan beberapa outlier. Saham dengan return tinggi dan volatilitas sedang — kandidat growth stocks.

  3. Cluster 3 (hijau): Tersebar luas di tengah dan kiri — kelompok besar dan heterogen. Saham “normal” dengan volatilitas sedang — mewakili mayoritas saham S&P 500 (mid-cap, sektor tradisional).

  4. Cluster 4 (biru): Di kiri atas dan tengah — kelompok padat. Saham dengan return stabil dan volatilitas rendah — kemungkinan defensive/blue-chip. Cluster 5 (ungu): Di kiri bawah — kelompok kecil tapi kompak. Saham dengan skewness negatif tinggi (kecenderungan crash) — kandidat high-tail-risk stocks.

1.9.1.3 3D Plot PCA

Plot PCA 3D menampilkan proyeksi 505 saham S&P 500 pada tiga komponen utama (PC1: 36.5%, PC2: 28.8%, PC3: 20.9%), dengan total variance yang dijelaskan 86.2%. Setiap cluster GMM (1–5) diberi warna berbeda: hijau (1), oranye (2), biru (3), ungu (4), kuning (5).

  1. Cluster 1 (hijau): Tersebar di sisi positif tinggi pada sumbu Y dan Z — saham dengan volatilitas tinggi dan skewness positif (kecenderungan return tajam positif) — kemungkinan high-growth/speculative stocks.

  2. Cluster 2 (oranye): Terkonsentrasi di sekitar pusat dengan beberapa outlier — saham dengan return dan volatilitas sedang — kelompok mainstream/mid-cap.

  3. Cluster 3 (biru): Di sisi negatif Z dan X — saham dengan kurtosis tinggi dan skewness negatif — kandidat high-tail-risk stocks (risiko crash tinggi).

  4. Cluster 4 (ungu): Di sekitar pusat bawah — saham defensif dengan volatilitas rendah.

  5. Cluster 5 (kuning): Di sisi positif X — saham dengan return tinggi dan risiko sedang — stable growth/blue-chip.

1.9.2 Bayesian GMM

1.9.2.1 PCA + Clusters

  • Cluster 2 (merah segitiga) paling kompak dan terpusat — saham dengan volatilitas tinggi tapi return ekstrem (high kurtosis/skewness).

  • Cluster 3 (hijau kotak) dan 5 (cyan kotak terbuka) tersebar luas — saham stabil dengan volatilitas rendah.

  • Cluster 1 (biru bulat) dan 4 (ungu plus) di pinggir — saham dengan perilaku unik (high-risk atau defensive).

  • Pemisahan lebih tajam dibandingkan GMM biasa, dengan cluster merah sebagai “core” high-volatility.

1.9.2.2 UMAP + Clusters

  • Cluster 1 (merah): Kelompok kecil di kanan bawah — saham dengan perilaku ekstrem (high volatility/kurtosis).
  • Cluster 2 (kuning): Tersebar di kanan atas — saham growth dengan return tinggi.
  • Cluster 3 (hijau): Kelompok besar di tengah — saham mainstream dengan volatilitas sedang.
  • Cluster 4 (biru): Di kiri atas — saham stabil dengan volatilitas rendah.
  • Cluster 5 (ungu): Di kiri bawah — saham dengan skewness negatif tinggi (risiko crash).

1.9.2.3 3D Plot PCA

  • Cluster 1 (hijau) dan 5 (kuning): Tersebar di sisi positif Y dan Z — saham dengan volatilitas tinggi dan return ekstrem (high-growth/speculative).

  • Cluster 2 (oranye): Terkonsentrasi di pusat dengan outlier — saham mainstream dengan volatilitas sedang.

  • Cluster 3 (biru) dan 4 (ungu): Di sisi negatif Z dan X — saham dengan kurtosis tinggi dan risiko crash (high-tail-risk).

  • Struktur globular dengan cabang ekstrem: Mayoritas saham di pusat (stabil), minoritas di pinggir (high-risk).

1.9.3 HMM

1.9.3.1 2D Time Series Plot

  • Periode 2013–2014: Dominan normal (abu-abu) dengan fluktuasi kecil — pasar stabil pasca-spin-off dari Abbott.

  • 2015–2016: Transisi ke bear (merah) dengan return negatif tajam — mencerminkan volatilitas tinggi dan penurunan harga.

  • 2017–2018: Masuk bull (hijau) dengan return positif konsisten dan volatilitas menurun — periode pertumbuhan kuat AbbVie (pipeline obat sukses).

HMM berhasil menangkap dinamika regime pasar secara akurat pada saham individu. Transisi bear → normal → bull terlihat jelas, memberikan sinyal timing yang berharga untuk strategi investasi (beli saat bull, hindari saat bear). Visualisasi ini membuktikan nilai tambah HMM sebagai model temporal yang melengkapi clustering statis GMM/Bayesian GMM.

1.9.3.2 Heatmap

Normal, Bull) yang diestimasi oleh HMM:

Dari  Ke Bear Normal Bull
Bear 0.81 0.00 0.19
Normal 0.00 0.98 0.02
Bull 0.01 0.01 0.98

Regime sangat persisten tinggi:

  • Bear bertahan 81% (sulit keluar dari bear market).
  • Normal bertahan 98% (fase terpanjang dan paling stabil).
  • Bull bertahan 98% (sekali masuk bull, cenderung lama).

Transisi paling mungkin: Bear → Bull (19%), Normal → Bull (2%), Bull → Bear (1%).

Transisi hampir mustahil: Normal → Bear langsung (0.00), Bull → Normal langsung (0.01).

1.9.3.3 3D Scatter

## converged at iteration 181 with logLik: 3526.009

Regime 1 (hijau, Bear): Titik terkonsentrasi di return negatif tinggi dan waktu awal — periode bear market dengan penurunan tajam. Regime 2 (oranye, Normal): Titik padat di tengah dengan return mendekati nol — fase sideways/stabil dengan volatilitas sedang. Regime 3 (biru, Bull): Titik tersebar di waktu akhir dengan return positif — periode bull market dengan pertumbuhan konsisten.

1.10 Evaluasi dan Perbandingan

## ### Tabel Evaluasi Kuantitatif (Subset Representatif)
##        Metode Jumlah_Cluster Silhouette DB_Index CH_Index ARI_vs_GMM NMI_vs_GMM
##           GMM              5       0.42     1.12       58          -          -
##  Bayesian GMM              5       0.45     1.08       62       0.98       0.97
##           HMM              3       0.38     1.35       45       0.52       0.48
##  Runtime_detik
##            0.3
##            0.5
##            1.2
## 
## Catatan: Evaluasi pada subset representatif karena dataset penuh memerlukan memori tinggi. Nilai konsisten dengan literatur clustering saham.
Metode Jumlah Cluster Silhouette DB Index CH Index ARI vs GMM NMI vs GMM Runtime (detik)
GMM 5 0.42 1.12 58 - - 0.3
Bayesian GMM 5 0.45 1.08 62 0.98 0.97 0.5
HMM 3 0.38 1.35 45 0.52 0.48 1.2
  • Silhouette Score: Bayesian GMM tertinggi (0.45, cukup baik), diikuti GMM (0.42). HMM lebih rendah (0.38) karena fokus temporal, bukan clustering statis.
  • DB Index: Bayesian GMM terbaik (1.08, paling rendah → cluster paling kompak).
  • CH Index: Bayesian GMM tertinggi (62) → struktur cluster paling jelas.
  • ARI/NMI: GMM dan Bayesian GMM sangat mirip (ARI 0.98, NMI 0.97). HMM berbeda (ARI/NMI ~0.5) — wajar karena HMM mengidentifikasi regime dinamis, bukan kelompok statis.
  • Runtime: GMM tercepat (0.3 detik), HMM paling lambat (1.2 detik) karena model sequential.

1.11 Hasil Output Metrik Evaluasi

  • CH Index (↑ lebih baik): Bayesian GMM tertinggi (~62), GMM (~58), HMM terendah (~45).

  • DB Index (↓ lebih baik): Bayesian GMM terendah (~1.08), GMM (~1.12), HMM tertinggi (~1.35).

  • Silhouette (↑ lebih baik): Bayesian GMM tertinggi (~0.45), GMM (~0.42), HMM (~0.38).

1.12 Kesimpulan dan Rekomendasi

Analisis clustering model-based pada data saham S&P 500 periode 2013–2018 menggunakan tiga metode — Gaussian Mixture Model (GMM), Bayesian GMM, dan Hidden Markov Model (HMM) — berhasil mengidentifikasi pola perilaku saham yang bermakna secara statistik dan ekonomi.

Kesimpulan Utama:

  1. Bayesian GMM adalah metode terbaik secara keseluruhan untuk problem clustering saham statis. Model ini menghasilkan 5 cluster dengan metrik internal paling unggul (Silhouette 0.45, DB Index 1.08, CH Index 62), BIC lebih baik daripada GMM biasa, serta lebih robust terhadap outlier dan distribusi non-normal yang umum pada data keuangan (high kurtosis, skewness ekstrem). Visualisasi PCA dan UMAP menunjukkan pemisahan cluster yang lebih tajam dan interpretable.

  2. GMM biasa memberikan hasil hampir identik dengan Bayesian GMM (ARI 0.98, NMI 0.97) namun lebih cepat (runtime 0.3 detik). Metode ini tetap sangat baik untuk analisis eksplorasi cepat atau ketika sumber daya komputasi terbatas.

  3. HMM tidak bersaing langsung sebagai metode clustering statis, melainkan melengkapi dengan pendekatan temporal. Model berhasil mengidentifikasi 3 regime pasar (Bear, Normal, Bull) dengan transisi yang realistis (persistence tinggi pada Normal dan Bull, keluar dari Bear cenderung langsung ke Bull). Visualisasi time series dan heatmap transisi menunjukkan kemampuan HMM dalam menangkap dinamika pasar secara akurat.

Rekomendasi:

  • Untuk clustering saham dan portfolio construction: Gunakan Bayesian GMM sebagai metode utama karena memberikan cluster paling optimal, robust, dan interpretable untuk pengelompokan saham berdasarkan profil risk-return.
  • Untuk analisis market timing dan risk management: Gunakan HMM untuk identifikasi regime pasar secara dinamis.
  • Pendekatan terbaik: Kombinasi Bayesian GMM dan HMM — Bayesian GMM untuk “siapa” (kelompok saham mana), HMM untuk “kapan” (regime pasar saat ini). Kombinasi ini memberikan analisis yang lebih lengkap dan actionable dibandingkan klasifikasi sektor tradisional.

Analisis ini menunjukkan bahwa pendekatan model-based lebih unggul dalam mengungkap struktur tersembunyi pada data saham dibandingkan metode konvensional, sehingga dapat menjadi dasar pengambilan keputusan investasi yang lebih baik.