1. DESKRIPSI DATASET

Sumber

Dataset yang digunakan adalah Global Earthquake-Tsunami Risk Assessment Dataset yang diperoleh dari platform Kaggle. Dataset ini berisi informasi mengenai gempa bumi signifikan yang terjadi di seluruh dunia selama periode tahun 2001–2022 dan dirancang untuk mendukung penelitian terkait prediksi tsunami, analisis gempa bumi, serta penilaian risiko bencana seismik.

Jumlah Observasi

Dataset terdiri dari 782 observasi, di mana setiap observasi merepresentasikan satu kejadian gempa bumi signifikan dengan magnitudo minimal 6,5 skala Richter yang tercatat di berbagai wilayah dunia selama periode pengamatan.

Jumlah Variabel

Dataset memiliki 13 variabel, yang terdiri dari:

12 variabel prediktor (independen):

  1. magnitude
  2. cdi
  3. mmi
  4. sig
  5. nst
  6. dmin
  7. gap
  8. depth
  9. latitude
  10. longitude
  11. Year
  12. Month

1 variabel target (dependen): tsunami Variabel-variabel tersebut menggambarkan karakteristik gempa bumi, lokasi geografis, kualitas pengamatan seismik, serta waktu kejadian gempa.

Tujuan Analisis

Tujuan analisis pada dataset ini adalah untuk mengidentifikasi faktor-faktor yang memengaruhi potensi terjadinya tsunami akibat gempa bumi serta mengeksplorasi pola hubungan antara karakteristik seismik dengan kejadian tsunami.

Secara khusus, analisis dilakukan untuk:

  1. Memahami karakteristik gempa bumi yang tercatat dalam dataset.
  2. Mengeksplorasi pola distribusi dan hubungan antar variabel melalui Exploratory Data Analysis (EDA).
  3. Mengidentifikasi variabel yang memiliki pengaruh besar terhadap potensi tsunami.
  4. Menyiapkan data untuk pengembangan model klasifikasi yang dapat digunakan dalam prediksi risiko tsunami dan sistem peringatan dini bencana.

Dengan demikian, hasil analisis diharapkan dapat memberikan informasi yang berguna dalam mitigasi bencana dan pengambilan keputusan terkait risiko tsunami.

- INPUT DATASET

# . Load library yang diperlukan
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.2.0     ✔ readr     2.2.0
## ✔ forcats   1.0.1     ✔ stringr   1.6.0
## ✔ ggplot2   4.0.2     ✔ tibble    3.3.1
## ✔ lubridate 1.9.5     ✔ tidyr     1.3.2
## ✔ purrr     1.2.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(corrplot)
## corrplot 0.95 loaded
library(car)
## Loading required package: carData
## 
## Attaching package: 'car'
## 
## The following object is masked from 'package:dplyr':
## 
##     recode
## 
## The following object is masked from 'package:purrr':
## 
##     some
# . Membaca data
data <- read.csv("C:/Users/HP/OneDrive - untirta.ac.id/Ekspolasi Visualisasi Data/earthquake_data_tsunami.csv")

2.Exploratory Data Analysis (EDA).

2.1 Statistik Deskriptif,

# Statistik Deskriptif
# Melihat ringkasan statistik (mean, median, min, max)
summary(data)
##    magnitude          cdi             mmi             sig        
##  Min.   :6.500   Min.   :0.000   Min.   :1.000   Min.   : 650.0  
##  1st Qu.:6.600   1st Qu.:0.000   1st Qu.:5.000   1st Qu.: 691.0  
##  Median :6.800   Median :5.000   Median :6.000   Median : 754.0  
##  Mean   :6.941   Mean   :4.334   Mean   :5.964   Mean   : 870.1  
##  3rd Qu.:7.100   3rd Qu.:7.000   3rd Qu.:7.000   3rd Qu.: 909.8  
##  Max.   :9.100   Max.   :9.000   Max.   :9.000   Max.   :2910.0  
##       nst             dmin             gap             depth       
##  Min.   :  0.0   Min.   : 0.000   Min.   :  0.00   Min.   :  2.70  
##  1st Qu.:  0.0   1st Qu.: 0.000   1st Qu.: 14.62   1st Qu.: 14.00  
##  Median :140.0   Median : 0.000   Median : 20.00   Median : 26.30  
##  Mean   :230.3   Mean   : 1.326   Mean   : 25.04   Mean   : 75.88  
##  3rd Qu.:445.0   3rd Qu.: 1.863   3rd Qu.: 30.00   3rd Qu.: 49.75  
##  Max.   :934.0   Max.   :17.654   Max.   :239.00   Max.   :670.81  
##     latitude         longitude            Year          Month       
##  Min.   :-61.848   Min.   :-179.97   Min.   :2001   Min.   : 1.000  
##  1st Qu.:-14.596   1st Qu.: -71.67   1st Qu.:2007   1st Qu.: 3.250  
##  Median : -2.572   Median : 109.43   Median :2013   Median : 7.000  
##  Mean   :  3.538   Mean   :  52.61   Mean   :2012   Mean   : 6.564  
##  3rd Qu.: 24.654   3rd Qu.: 148.94   3rd Qu.:2017   3rd Qu.:10.000  
##  Max.   : 71.631   Max.   : 179.66   Max.   :2022   Max.   :12.000  
##     tsunami      
##  Min.   :0.0000  
##  1st Qu.:0.0000  
##  Median :0.0000  
##  Mean   :0.3887  
##  3rd Qu.:1.0000  
##  Max.   :1.0000

Interpretasi: Dataset ini mencakup gempa bumi berkekuatan minimal 6,5 magnitudo yang terjadi antara tahun 2001 hingga 2022. Secara keseluruhan, nilai rata-rata magnitudo adalah 6,94 dengan median 6,8, menunjukkan distribusi yang sedikit right-skewed — sebagian besar gempa berada di kisaran moderat-kuat, namun terdapat beberapa kejadian ekstrem hingga magnitudo 9,1. Kedalaman gempa (depth) sangat bervariasi, mulai dari 2,7 km hingga 670,81 km, dengan rata-rata 75,88 km dan median hanya 26,3 km, mengindikasikan dominasi gempa dangkal yang umumnya lebih destruktif. Variabel sig (signifikansi gempa) juga memiliki rentang yang lebar (650–2910), menandakan perbedaan dampak yang besar antar kejadian. Sementara itu, variabel tsunami memiliki rata-rata 0,39, artinya sekitar 38,9% kejadian gempa dalam dataset ini disertai tsunami.

2.2 Identifikasi Missing Value

# Identifikasi Missing Value
# Mengecek jumlah data yang kosong per kolom
colSums(is.na(data))
## magnitude       cdi       mmi       sig       nst      dmin       gap     depth 
##         0         0         0         0         0         0         0         0 
##  latitude longitude      Year     Month   tsunami 
##         0         0         0         0         0

Interpretasi: Hasil pemeriksaan missing value menunjukkan bahwa tidak ada nilai yang hilang pada seluruh 13 variabel dalam dataset. Setiap kolom — mulai dari magnitude, cdi, mmi, sig, nst, dmin, gap, depth, latitude, longitude, Year, Month, hingga tsunami — memiliki nilai 0 untuk NA. Kondisi ini menunjukkan kualitas data yang baik dan analisis selanjutnya dapat dilakukan tanpa perlu imputasi atau penanganan missing value.

2.3 Identifikasi Outlier

# Identifikasi Outlier
# Menggunakan boxplot untuk variabel utama seperti 'magnitude' dan 'depth'
# Deteksi outlier secara visual
par(mfrow=c(1,2))
boxplot(data$magnitude, main="Outlier: Magnitude", col="lightblue")
boxplot(data$depth, main="Outlier: Depth", col="lightgreen")

Interpretasi:
- Boxplot magnitude menunjukkan adanya beberapa outlier di bagian atas distribusi, yakni kejadian gempa dengan magnitudo sangat tinggi (mendekati 9,1). Meskipun teridentifikasi sebagai outlier secara statistik, nilai-nilai ini merepresentasikan kejadian nyata seperti gempa megathrust dan tidak perlu dihapus karena bersifat informatif secara substantif.
- Boxplot depth menampilkan outlier yang jauh lebih banyak dan ekstrem, dengan sebagian gempa memiliki kedalaman hingga lebih dari 600 km. Hal ini mencerminkan variasi tipe gempa — dari gempa dangkal (shallow) hingga gempa sangat dalam (deep focus) — yang memang merupakan karakteristik alami distribusi seismik global. Outlier ini juga tidak disarankan untuk dihapus karena merupakan variasi yang valid secara geologis.

2.4 Analisis Korelasi

# Analisis Korelasi
# Menggunakan matriks korelasi untuk melihat hubungan antar variabel
df_num <- data %>% select(where(is.numeric))
cor_matrix <- cor(df_num, use = "pairwise.complete.obs")

Interpretasi: Matriks korelasi menunjukkan beberapa temuan penting. Variabel sig (signifikansi) memiliki korelasi positif yang cukup kuat dengan magnitude, yang logis karena gempa besar secara definisi memiliki nilai signifikansi lebih tinggi. Variabel cdi (community decimal intensity) dan mmi (modified mercalli intensity) berkorelasi positif satu sama lain, karena keduanya sama-sama mengukur intensitas guncangan yang dirasakan. Variabel tsunami juga menunjukkan korelasi positif dengan magnitude dan sig, mengindikasikan bahwa gempa dengan magnitudo dan signifikansi lebih tinggi cenderung lebih mungkin memicu tsunami. Sebagian besar variabel lainnya memiliki korelasi yang lemah hingga sedang, menandakan tidak adanya multikolinearitas parah secara umum — yang dikonfirmasi lebih lanjut melalui analisis VIF.

2.5. Identifikasi Multikolinearitas

# Identifikasi Multikolinearitas
# Menggunakan VIF (Variance Inflation Factor)
# Model linear dummy untuk mengecek antar variabel independen
model_fit <- lm(magnitude ~ ., data = df_num)
print("--- Identifikasi Multikolinearitas (VIF) ---")
## [1] "--- Identifikasi Multikolinearitas (VIF) ---"
vif(model_fit)
##       cdi       mmi       sig       nst      dmin       gap     depth  latitude 
##  1.865226  1.995523  1.606583  2.249995  1.709013  1.219273  1.454243  1.117975 
## longitude      Year     Month   tsunami 
##  1.182334  3.566364  1.017091  1.930620

Interpretasi: Hasil VIF (Variance Inflation Factor) menunjukkan bahwa tidak ada variabel yang mengalami multikolinearitas serius. Nilai VIF yang mengkhawatirkan biasanya di atas 10, sedangkan pada dataset ini nilai VIF tertinggi adalah 3,57 pada variabel Year, yang masih jauh di bawah ambang batas tersebut. Variabel nst (jumlah stasiun seismik) memiliki VIF 2,25 dan mmi sebesar 2,00 — keduanya masih dalam batas toleransi. Secara keseluruhan, model regresi dapat menggunakan semua variabel numerik ini tanpa kekhawatiran bahwa multikolinearitas akan mendistorsi estimasi koefisien secara signifikan.

2.6. Visualisasi Tambahan (Distribusi Data)

# Visualisasi Tambahan (Distribusi Data)
ggplot(data, aes(x = magnitude, fill = as.factor(tsunami))) +
  geom_density(alpha = 0.5) +
  labs(title = "Distribusi Magnitude berdasarkan Kejadian Tsunami", 
       x = "Magnitude", fill = "Tsunami (0/1)") +
  theme_minimal()

Interpretasi: Plot densitas ini membandingkan distribusi magnitudo antara gempa yang tidak disertai tsunami (0) dan yang disertai tsunami (1). Terlihat bahwa gempa yang memicu tsunami memiliki distribusi yang bergeser ke arah magnitudo lebih tinggi dibandingkan gempa tanpa tsunami. Kurva densitas untuk kejadian tsunami (nilai 1) cenderung lebih datar dan memanjang ke kanan, menandakan proporsi yang lebih besar pada magnitudo ≥7,0. Sebaliknya, gempa tanpa tsunami lebih terkonsentrasi di kisaran magnitudo 6,5–7,0. Pola ini mengonfirmasi bahwa magnitudo merupakan faktor pembeda penting dalam menentukan potensi tsunami, meskipun bukan satu-satunya faktor — karena kedalaman dan lokasi gempa juga berperan besar.

3. Feature Engineering

Feature engineering dilakukan untuk menghasilkan variabel yang lebih informatif sehingga dapat membantu proses analisis dan pemodelan data gempa bumi dan tsunami.

3.1 Feature 1 : Magnitude Category

data_fe <- data

data_fe$magnitude_category <- cut(
  data_fe$magnitude,
  breaks = c(6.5, 7, 8, Inf),
  labels = c("Strong", "Major", "Great"),
  include.lowest = TRUE
)

table(data_fe$magnitude_category)
## 
## Strong  Major  Great 
##    548    211     23

Alasan Pembuatan Fitur

Variabel magnitude merupakan data numerik kontinu yang menunjukkan kekuatan gempa. Agar lebih mudah dianalisis dan diinterpretasikan, magnitude dikelompokkan ke dalam beberapa kategori berdasarkan tingkat kekuatan gempa, yaitu Strong, Major, dan Great.

Kategori yang digunakan adalah:

  • Strong : 6.5 – < 7.0
  • Major : 7.0 – < 8.0
  • Great : ≥ 8.0

Interpretasi Fitur

Berdasarkan output tabel yang dihasilkan, dapat diketahui distribusi jumlah gempa pada masing-masing kategori magnitudo. Kategori dengan frekuensi terbesar menunjukkan kelompok magnitudo yang paling dominan dalam dataset.

Apabila kategori Major memiliki jumlah observasi paling banyak, maka dapat disimpulkan bahwa sebagian besar gempa yang tercatat memiliki magnitudo antara 7 hingga kurang dari 8. Sebaliknya, apabila kategori Great memiliki jumlah observasi yang lebih sedikit, maka kejadian gempa dengan magnitudo sangat besar relatif jarang terjadi.

Pengelompokan magnitude menjadi kategori membantu menyederhanakan analisis karena karakteristik gempa dapat diamati berdasarkan kelompok kekuatannya, bukan hanya berdasarkan nilai numerik yang sangat beragam. Selain itu, fitur ini dapat digunakan untuk melihat apakah gempa dengan magnitudo yang lebih besar memiliki kecenderungan lebih tinggi dalam memicu tsunami.


3.2 Feature 2 : Depth Category

data_fe$depth_category <- cut(
  data_fe$depth,
  breaks = c(-Inf, 70, 300, Inf),
  labels = c("Shallow", "Intermediate", "Deep")
)

table(data_fe$depth_category)
## 
##      Shallow Intermediate         Deep 
##          619          111           52

Alasan Pembuatan Fitur

Kedalaman gempa merupakan salah satu faktor penting yang memengaruhi dampak gempa di permukaan bumi. Oleh karena itu, variabel depth dikelompokkan menjadi beberapa kategori agar lebih mudah dipahami dan dianalisis.

Kategori yang digunakan adalah:

  • Shallow : < 70 km
  • Intermediate : 70 – 300 km
  • Deep : > 300 km

Interpretasi Fitur

Berdasarkan output tabel yang dihasilkan, dapat diketahui kategori kedalaman gempa yang paling sering muncul pada dataset.

Jika kategori Shallow memiliki jumlah observasi terbesar, maka sebagian besar gempa terjadi pada kedalaman kurang dari 70 km. Kondisi ini menunjukkan bahwa mayoritas gempa berasal dari sumber yang relatif dekat dengan permukaan bumi sehingga berpotensi menghasilkan guncangan yang lebih kuat di wilayah terdampak.

Apabila kategori Deep memiliki jumlah observasi yang lebih sedikit dibandingkan kategori lainnya, maka gempa dengan sumber yang sangat dalam relatif jarang ditemukan dalam dataset. Hasil ini juga dapat memberikan gambaran mengenai karakteristik geologi wilayah yang menjadi lokasi kejadian gempa.

Fitur ini membantu menyederhanakan informasi kedalaman gempa sehingga pola distribusi kedalaman lebih mudah diamati dibandingkan jika hanya menggunakan nilai depth asli yang bersifat kontinu.


3.3 Feature 3 : Energy Index

data_fe$energy_index <- data_fe$magnitude * log(data_fe$depth + 1)

summary(data_fe$energy_index)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   8.504  18.699  22.957  24.623  28.025  53.082

Alasan Pembuatan Fitur

Magnitude dan depth merupakan dua variabel utama yang menggambarkan karakteristik suatu gempa bumi. Untuk memperoleh informasi yang lebih komprehensif, kedua variabel tersebut digabungkan menjadi satu fitur baru yang disebut Energy Index.

Rumus yang digunakan:

\[ Energy\ Index = Magnitude \times \log(Depth + 1) \]

Fitur ini bertujuan menangkap kombinasi antara kekuatan gempa dan kedalaman sumber gempa dalam satu ukuran yang lebih informatif.

Interpretasi Fitur

Berdasarkan output summary yang dihasilkan, dapat diamati nilai minimum, kuartil pertama, median, rata-rata, kuartil ketiga, dan nilai maksimum dari Energy Index.

Nilai minimum menunjukkan kejadian gempa dengan kombinasi magnitudo dan kedalaman yang relatif rendah. Sebaliknya, nilai maksimum menunjukkan kejadian gempa dengan kombinasi magnitudo dan kedalaman paling besar dalam dataset.

Median menggambarkan nilai tengah Energy Index, sedangkan rata-rata menunjukkan kecenderungan umum dari keseluruhan data. Apabila nilai rata-rata lebih besar dibandingkan median, maka terdapat beberapa gempa dengan nilai Energy Index yang sangat tinggi sehingga distribusi data cenderung menceng ke kanan.

Semakin besar nilai Energy Index, semakin besar kombinasi pengaruh antara magnitudo dan kedalaman gempa. Oleh karena itu, fitur ini dapat digunakan untuk mengidentifikasi kejadian gempa yang memiliki karakteristik ekstrem dan berpotensi memberikan dampak yang lebih besar dibandingkan kejadian gempa lainnya.


3.4 Visualisasi Feature Engineering

library(ggplot2)

ggplot(data_fe,
       aes(x = magnitude_category,
           fill = as.factor(tsunami))) +
  geom_bar(position = "dodge") +
  labs(
    title = "Distribusi Tsunami Berdasarkan Kategori Magnitude",
    x = "Kategori Magnitude",
    y = "Jumlah Gempa",
    fill = "Tsunami"
  ) +
  theme_minimal()

Interpretasi Visualisasi

Grafik memperlihatkan distribusi jumlah kejadian tsunami dan non-tsunami pada setiap kategori magnitudo gempa. Tinggi batang menunjukkan banyaknya observasi pada masing-masing kategori.

Kategori dengan batang paling tinggi menunjukkan kelompok magnitudo yang paling dominan dalam dataset. Jika kategori Major memiliki frekuensi tertinggi, maka dapat disimpulkan bahwa sebagian besar kejadian gempa berada pada rentang magnitudo 7 hingga kurang dari 8.

Selanjutnya, perbandingan warna pada setiap kategori menunjukkan proporsi kejadian tsunami dan non-tsunami. Apabila jumlah kejadian tsunami meningkat pada kategori Great, maka terdapat indikasi bahwa gempa dengan magnitudo yang sangat besar cenderung lebih berpotensi memicu tsunami dibandingkan kategori lainnya.

Sebaliknya, apabila jumlah non-tsunami tetap mendominasi pada seluruh kategori, maka dapat disimpulkan bahwa magnitudo yang besar tidak selalu diikuti oleh terjadinya tsunami. Faktor lain seperti kedalaman gempa, lokasi episentrum, kondisi dasar laut, serta karakteristik geologi wilayah juga dapat memengaruhi terbentuknya tsunami.

Secara keseluruhan, visualisasi ini memberikan gambaran awal mengenai hubungan antara tingkat kekuatan gempa dan kejadian tsunami sehingga dapat menjadi dasar untuk analisis lebih lanjut pada tahap berikutnya.

4. Feature Selection

4.1 Metode 1: Filter Method (Korelasi)

# Pastikan library terinstall
library(caret)
## Loading required package: lattice
## 
## Attaching package: 'caret'
## The following object is masked from 'package:purrr':
## 
##     lift
library(glmnet)
## Loading required package: Matrix
## 
## Attaching package: 'Matrix'
## The following objects are masked from 'package:tidyr':
## 
##     expand, pack, unpack
## Loaded glmnet 5.0
library(tidyverse)

# Kita gunakan data_fe yang sudah memiliki fitur baru
# Pastikan dataset bersih dari NA dan hanya berisi numerik untuk keperluan seleksi
data_fs <- data_fe %>% 
  select(where(is.numeric)) %>% 
  drop_na()

# Menghapus variabel yang memiliki korelasi sangat tinggi (> 0.85) dengan variabel lain
cor_matrix <- cor(data_fs %>% select(-magnitude))
cor_matrix
##                       cdi          mmi         sig         nst         dmin
## cdi           1.000000000  0.317937144  0.47978827 -0.17541659  0.006553715
## mmi           0.317937144  1.000000000  0.44242325  0.16041680 -0.299073912
## sig           0.479788270  0.442423251  1.00000000 -0.03010030 -0.095317675
## nst          -0.175416593  0.160416799 -0.03010030  1.00000000 -0.529371258
## dmin          0.006553715 -0.299073912 -0.09531768 -0.52937126  1.000000000
## gap           0.098143208 -0.015723127  0.11428546 -0.11881191 -0.021932759
## depth        -0.097890926 -0.504438804 -0.08866726 -0.12198160  0.168545983
## latitude      0.129002979  0.144882758  0.20430613  0.14420352 -0.238376702
## longitude    -0.149047608 -0.005802738 -0.19013227  0.17366545 -0.097874774
## Year          0.423158098 -0.212855195  0.12443929 -0.68860183  0.529449012
## Month         0.007002361 -0.035237749 -0.02918923 -0.01402125  0.037502053
## tsunami       0.160265636 -0.147362749 -0.01549961 -0.60023121  0.400751659
## energy_index -0.006088636 -0.335957352  0.02861056 -0.01809652  0.062413333
##                      gap       depth    latitude    longitude        Year
## cdi           0.09814321 -0.09789093  0.12900298 -0.149047608  0.42315810
## mmi          -0.01572313 -0.50443880  0.14488276 -0.005802738 -0.21285519
## sig           0.11428546 -0.08866726  0.20430613 -0.190132274  0.12443929
## nst          -0.11881191 -0.12198160  0.14420352  0.173665452 -0.68860183
## dmin         -0.02193276  0.16854598 -0.23837670 -0.097874774  0.52944901
## gap           1.00000000 -0.11191225  0.08775642 -0.313622670  0.19400151
## depth        -0.11191225  1.00000000 -0.06949216 -0.036985536  0.17822012
## latitude      0.08775642 -0.06949216  1.00000000  0.026927040 -0.08973106
## longitude    -0.31362267 -0.03698554  0.02692704  1.000000000 -0.18794658
## Year          0.19400151  0.17822012 -0.08973106 -0.187946580  1.00000000
## Month        -0.02495304  0.06921319 -0.05729182  0.028047346 -0.02253118
## tsunami       0.11636023  0.05681422 -0.11320930 -0.136777698  0.64721100
## energy_index -0.16462389  0.83450304 -0.06371719 -0.017271303  0.10082666
##                     Month     tsunami energy_index
## cdi           0.007002361  0.16026564 -0.006088636
## mmi          -0.035237749 -0.14736275 -0.335957352
## sig          -0.029189226 -0.01549961  0.028610558
## nst          -0.014021245 -0.60023121 -0.018096517
## dmin          0.037502053  0.40075166  0.062413333
## gap          -0.024953039  0.11636023 -0.164623893
## depth         0.069213194  0.05681422  0.834503043
## latitude     -0.057291824 -0.11320930 -0.063717191
## longitude     0.028047346 -0.13677770 -0.017271303
## Year         -0.022531181  0.64721100  0.100826657
## Month         1.000000000 -0.02202839  0.021630101
## tsunami      -0.022028385  1.00000000  0.051380295
## energy_index  0.021630101  0.05138029  1.000000000
highly_correlated <- findCorrelation(cor_matrix, cutoff = 0.85)
highly_correlated
## integer(0)
# Mendapatkan nama variabel yang akan dieliminasi
dropped_vars <- colnames(data_fs %>% select(-magnitude))[highly_correlated]

# Membuat dataset hasil filter
data_fs_filtered <- data_fs %>% select(-all_of(dropped_vars))

cat("--- HASIL METODE 1: FILTER (KORELASI) ---\n")
## --- HASIL METODE 1: FILTER (KORELASI) ---
cat("Variabel yang dieliminasi karena redundan:", paste(dropped_vars, collapse = ", "), "\n")
## Variabel yang dieliminasi karena redundan:
cat("Jumlah variabel setelah filter:", ncol(data_fs_filtered), "\n\n")
## Jumlah variabel setelah filter: 14

Metode 1: Filter Method (Korelasi)

  • Variabel yang dipilih: Semua variabel yang memiliki korelasi < 0.85 antar sesamanya. ( Berdasarkan output semua variabel memiliki korelasi < 0.85, jadi semuanya dipilih)

  • Variabel yang dieliminasi: Variabel yang memiliki korelasi > 0.85 dengan variabel lain.( Berdasarkan output tidak ada variabel memiliki korelasi > 0.85, jadi tidak ada yang dieliminasi)

  • Alasan: Sesuai materi, metode ini dilakukan untuk mengurangi multikolinearitas. Dengan membuang variabel yang redundan (korelasi sangat tinggi), kita menyederhanakan data tanpa kehilangan informasi unik.

4.2 METODE 2: EMBEDDED METHOD (Lasso Regression)

# 4.2 METODE 2: EMBEDDED METHOD (Lasso Regression)
# Lasso melakukan penalti pada fitur yang kurang relevan (koefisien menjadi 0)

# Menentukan target (y) dan prediktor (x) dari data yang sudah difilter
y <- data_fs_filtered$magnitude
x <- as.matrix(data_fs_filtered %>% select(-magnitude))

# Melakukan Cross-Validation untuk mencari Lambda Optimal
set.seed(123)
lasso_cv <- cv.glmnet(x, y, alpha = 1)

# Mengambil koefisien pada lambda terbaik
best_lambda <- lasso_cv$lambda.min
best_lambda
## [1] 0.00165848
lasso_coef <- coef(lasso_cv, s = best_lambda)
lasso_coef
## 14 x 1 sparse Matrix of class "dgCMatrix"
##               s=0.00165848
## (Intercept)  21.0959726540
## cdi          -0.0015371891
## mmi           0.0279832853
## sig           0.0006789478
## nst           0.0001728580
## dmin          0.0072875843
## gap          -0.0012805605
## depth        -0.0010042736
## latitude     -0.0016529033
## longitude     0.0001365059
## Year         -0.0077625629
## Month         0.0004805884
## tsunami       0.1089701890
## energy_index  0.0295074304
# Menampilkan hasil fitur
lasso_matrix <- as.matrix(lasso_coef)
features_selected <- rownames(lasso_matrix)[lasso_matrix[,1] != 0]
features_dropped <- rownames(lasso_matrix)[lasso_matrix[,1] == 0]

cat("--- HASIL METODE 2: EMBEDDED (LASSO) ---\n")
## --- HASIL METODE 2: EMBEDDED (LASSO) ---
cat("Fitur yang DIPILIH (Koefisien != 0):", paste(features_selected, collapse = ", "), "\n")
## Fitur yang DIPILIH (Koefisien != 0): (Intercept), cdi, mmi, sig, nst, dmin, gap, depth, latitude, longitude, Year, Month, tsunami, energy_index
cat("Fitur yang DIELIMINASI (Koefisien = 0):", paste(features_dropped, collapse = ", "), "\n")
## Fitur yang DIELIMINASI (Koefisien = 0):

Metode 2: Embedded Method (Lasso Regression)

  • Variabel yang dipilih: Variabel yang memiliki koefisien bukan nol (coef != 0) pada hasil lambda.min. ( Berdasarkan output semua variabel memiliki koefisien bukan nol, jadi semuanya dipilih)

  • Variabel yang dieliminasi: Variabel yang koefisiennya bernilai nol.( Berdasarkan output tidak ada variabel memiliki koefisien nol, jadi tidak dieliminasi)

  • Alasan: Sesuai prinsip Lasso, metode ini secara otomatis melakukan seleksi fitur selama proses pemodelan. Variabel dengan koefisien nol dianggap sebagai noise (tidak memberikan kontribusi signifikan terhadap target), sehingga dieliminasi untuk menghindari overfitting dan meningkatkan kekuatan penjelas model.


5. Feature Extraction (PCA)

Principal Component Analysis (PCA) digunakan untuk mereduksi dimensi data dengan mengubah sejumlah variabel yang saling berkorelasi menjadi sejumlah komponen utama (principal components) yang saling bebas (tidak berkorelasi). PCA membantu menyederhanakan struktur data tanpa kehilangan sebagian besar informasi yang terkandung dalam data asli.

Pada penelitian ini, PCA diterapkan pada seluruh variabel numerik hasil feature engineering dan feature selection untuk memperoleh representasi data yang lebih ringkas sebelum digunakan pada tahap pemodelan.

5.1 Standardisasi Data

Karena variabel memiliki satuan dan rentang nilai yang berbeda-beda, maka dilakukan standardisasi terlebih dahulu agar setiap variabel memiliki kontribusi yang seimbang dalam pembentukan komponen utama.

Pemilihan Variabel untuk PCA

Pada tahap PCA, hanya variabel prediktor yang digunakan dalam pembentukan komponen utama. Variabel target tsunami tidak disertakan dalam proses PCA karena tujuan PCA adalah mereduksi dimensi variabel penjelas (prediktor) tanpa melibatkan variabel yang akan diprediksi.

Jika variabel target dimasukkan ke dalam PCA, maka informasi mengenai kejadian tsunami akan ikut memengaruhi pembentukan komponen utama. Kondisi ini dapat menyebabkan data leakage, yaitu situasi ketika informasi target telah digunakan pada tahap ekstraksi fitur sehingga hasil analisis atau model yang dibangun menjadi bias.

Oleh karena itu, PCA dilakukan hanya pada variabel-variabel karakteristik gempa bumi, seperti magnitudo, intensitas, kedalaman, lokasi geografis, waktu kejadian, dan fitur hasil feature engineering. Setelah komponen utama diperoleh, variabel tsunami tetap dipertahankan sebagai variabel target yang digunakan pada tahap analisis atau pemodelan selanjutnya.

# Memilih variabel numerik
data_pca <- data_fe %>%
  select(where(is.numeric)) %>%
  select(-tsunami)
DT::datatable(data_pca)
# Standardisasi data
data_scaled <- scale(data_pca)


# Melakukan PCA
pca_result <- prcomp(data_scaled,
                     center = TRUE,
                     scale. = TRUE)

Alasan Standardisasi

Variabel seperti magnitude, depth, sig, longitude, dan energy_index memiliki satuan serta rentang nilai yang berbeda-beda. Jika PCA dilakukan tanpa standardisasi, variabel dengan varians terbesar akan mendominasi pembentukan komponen utama.

Oleh karena itu, standardisasi dilakukan agar seluruh variabel memiliki rata-rata mendekati nol dan simpangan baku sebesar satu, sehingga setiap variabel memiliki kontribusi yang seimbang dalam proses pembentukan komponen utama.


5.2 Proporsi Variansi yang Dijelaskan

summary(pca_result)
## Importance of components:
##                           PC1    PC2    PC3     PC4     PC5     PC6     PC7
## Standard deviation     1.6504 1.5336 1.3712 1.10710 1.00238 0.98753 0.81201
## Proportion of Variance 0.2095 0.1809 0.1446 0.09428 0.07729 0.07502 0.05072
## Cumulative Proportion  0.2095 0.3905 0.5351 0.62935 0.70664 0.78166 0.83238
##                           PC8     PC9    PC10    PC11    PC12    PC13
## Standard deviation     0.8054 0.67701 0.62568 0.58970 0.46016 0.34791
## Proportion of Variance 0.0499 0.03526 0.03011 0.02675 0.01629 0.00931
## Cumulative Proportion  0.8823 0.91754 0.94765 0.97440 0.99069 1.00000

Atau:

# Proporsi variansi
pve <- pca_result$sdev^2 / sum(pca_result$sdev^2)

# Variansi kumulatif
cum_pve <- cumsum(pve)

data.frame(
  PC = paste0("PC",1:length(pve)),
  Proporsi_Variansi = round(pve,4),
  Variansi_Kumulatif = round(cum_pve,4)
)
##      PC Proporsi_Variansi Variansi_Kumulatif
## 1   PC1            0.2095             0.2095
## 2   PC2            0.1809             0.3904
## 3   PC3            0.1446             0.5351
## 4   PC4            0.0943             0.6294
## 5   PC5            0.0773             0.7066
## 6   PC6            0.0750             0.7817
## 7   PC7            0.0507             0.8324
## 8   PC8            0.0499             0.8823
## 9   PC9            0.0353             0.9175
## 10 PC10            0.0301             0.9477
## 11 PC11            0.0267             0.9744
## 12 PC12            0.0163             0.9907
## 13 PC13            0.0093             1.0000

Interpretasi

Hasil PCA menunjukkan bahwa komponen utama pertama (PC1) mampu menjelaskan sebesar 20,95% variasi data. Komponen utama kedua (PC2) menjelaskan 18,09% variasi data, sedangkan komponen utama ketiga (PC3) menjelaskan 14,46% variasi data.

Secara kumulatif, tiga komponen utama pertama telah mampu menjelaskan 53,51% variasi total data. Ketika ditambahkan hingga komponen ketujuh (PC7), proporsi variansi kumulatif meningkat menjadi 83,24%. Hal ini menunjukkan bahwa sebagian besar informasi yang terkandung dalam 13 variabel asli telah berhasil diringkas ke dalam tujuh komponen utama.

Berdasarkan kriteria variansi kumulatif minimum 80%, tujuh komponen utama pertama dianggap cukup representatif untuk menggambarkan struktur data. Dengan demikian, PCA berhasil mereduksi dimensi data dari 13 variabel menjadi 7 komponen utama tanpa kehilangan informasi yang signifikan.

Komponen-komponen berikutnya hanya memberikan tambahan informasi yang relatif kecil, sehingga penggunaan tujuh komponen utama dinilai lebih efisien untuk analisis dan pemodelan selanjutnya.

Kesimpulan:

PCA berhasil mereduksi dimensi data dari 13 variabel menjadi 7 komponen utama dengan tetap mempertahankan sekitar 83,24% informasi asli. Dengan demikian, penggunaan 7 komponen utama dianggap cukup efisien untuk analisis lanjutan atau pembangunan model prediksi tsunami karena mampu mengurangi kompleksitas data tanpa kehilangan informasi yang signifikan.


5.3 Menentukan Jumlah Komponen Optimal

# Scree Plot
plot(pca_result,
     type = "l",
     main = "Scree Plot PCA")

Interpretasi

Scree Plot digunakan untuk membantu menentukan jumlah komponen utama yang layak dipertahankan dalam analisis PCA. Grafik menunjukkan hubungan antara komponen utama dengan nilai eigenvalue (varians) yang mampu dijelaskan oleh masing-masing komponen.

Berdasarkan Scree Plot, terlihat bahwa nilai eigenvalue mengalami penurunan yang cukup tajam dari PC1 hingga PC4. Setelah PC4, kurva mulai melandai sehingga tambahan komponen berikutnya hanya memberikan peningkatan informasi yang relatif kecil. Pola ini menunjukkan adanya titik siku (elbow point) di sekitar komponen keempat hingga kelima.

Selain itu, berdasarkan kriteria Kaiser (eigenvalue > 1), komponen yang dapat dipertahankan adalah PC1 hingga PC5 karena masih memiliki nilai eigenvalue lebih besar dari satu. Sementara itu, komponen setelah PC5 memiliki eigenvalue kurang dari satu sehingga kontribusinya terhadap keragaman data relatif kecil.

Namun, jika mempertimbangkan proporsi variansi kumulatif, tujuh komponen utama pertama (PC1–PC7) mampu menjelaskan sekitar 81,09% variasi total data. Nilai tersebut telah melebihi batas umum sebesar 80%, sehingga tujuh komponen utama dianggap cukup representatif untuk menggambarkan informasi yang terkandung dalam dataset.

Dengan demikian, PCA berhasil mereduksi dimensi data dari 13 variabel menjadi 7 komponen utama dengan tetap mempertahankan sebagian besar informasi yang terdapat pada data asli.


5.4 Loading Factor

# Loading PCA
round(pca_result$rotation,3)
##                 PC1    PC2    PC3    PC4    PC5    PC6    PC7    PC8    PC9
## magnitude    -0.131  0.222 -0.479  0.217 -0.112 -0.272  0.150  0.428  0.159
## cdi          -0.030  0.489 -0.119  0.074  0.085  0.247 -0.446 -0.400  0.354
## mmi          -0.419  0.282 -0.021  0.207 -0.042 -0.053  0.025 -0.138 -0.489
## sig          -0.169  0.462 -0.305  0.003 -0.032 -0.022  0.127  0.163 -0.022
## nst          -0.387 -0.296 -0.202 -0.159 -0.083 -0.055 -0.125 -0.075  0.629
## dmin          0.414  0.132  0.173  0.285  0.024 -0.068  0.405  0.196  0.393
## gap           0.019  0.226  0.226 -0.594 -0.204 -0.057 -0.358  0.548 -0.026
## depth         0.396 -0.156 -0.440 -0.194  0.016  0.083 -0.061 -0.072 -0.171
## latitude     -0.196  0.089 -0.080 -0.382  0.403  0.598  0.486  0.092  0.037
## longitude    -0.100 -0.269 -0.044  0.465  0.341  0.368 -0.414  0.499 -0.058
## Year          0.399  0.381  0.112  0.072  0.151  0.133 -0.164  0.008  0.047
## Month         0.043 -0.040 -0.027  0.157 -0.791  0.577  0.076  0.030 -0.009
## energy_index  0.300 -0.106 -0.570 -0.126  0.023 -0.010 -0.101 -0.050 -0.151
##                PC10   PC11   PC12   PC13
## magnitude     0.420 -0.360 -0.026 -0.182
## cdi          -0.008 -0.155 -0.401 -0.057
## mmi          -0.489 -0.375  0.224 -0.093
## sig          -0.178  0.761  0.021  0.092
## nst          -0.285 -0.012  0.432 -0.033
## dmin         -0.544 -0.145 -0.140  0.023
## gap          -0.196 -0.153 -0.090  0.003
## depth        -0.229  0.062 -0.001 -0.698
## latitude      0.060 -0.181 -0.001  0.009
## longitude    -0.124  0.079 -0.039  0.001
## Year          0.191 -0.037  0.755  0.005
## Month         0.041 -0.010  0.048  0.035
## energy_index -0.166 -0.195  0.004  0.676

Interpretasi

Loading factor menunjukkan kontribusi masing-masing variabel terhadap pembentukan komponen utama.Semakin besar nilai absolut loading, semakin besar pengaruh variabel tersebut terhadap komponen yang bersangkutan.

Berdasarkan hasil PCA, komponen utama pertama (PC1) yang mampu menjelaskan 22,19% variasi data dipengaruhi terutama oleh variabel Year (0,480), nst (-0,451), tsunami (0,413), dan dmin (0,404). Hal ini menunjukkan bahwa PC1 merepresentasikan karakteristik observasi gempa dan kejadian tsunami yang berkaitan dengan perkembangan waktu serta kualitas pengamatan seismik.

Komponen utama kedua (PC2) yang menjelaskan 17,41% variasi data didominasi oleh variabel sig (0,462), cdi (0,444), dan mmi (0,422). Ketiga variabel tersebut berkaitan dengan tingkat intensitas dan dampak gempa yang dirasakan, sehingga PC2 dapat diinterpretasikan sebagai komponen yang menggambarkan intensitas serta signifikansi kejadian gempa.

Komponen utama ketiga (PC3) menjelaskan 13,61% variasi data dan dipengaruhi oleh energy_index (-0,577), magnitude (-0,477), dan depth (-0,458). Oleh karena itu, PC3 dapat diinterpretasikan sebagai komponen yang merepresentasikan kekuatan dan energi gempa bumi.

Secara umum, hasil loading factor menunjukkan bahwa variabel-variabel yang berkaitan dengan intensitas gempa, energi gempa, lokasi geografis, serta kejadian tsunami memiliki kontribusi yang cukup besar dalam pembentukan komponen utama. Hal ini mengindikasikan bahwa informasi yang terkandung dalam dataset dapat diringkas ke dalam beberapa dimensi utama tanpa kehilangan sebagian besar keragaman data.

Karena tujuh komponen utama pertama mampu menjelaskan sekitar 81,09% variasi total data, maka komponen-komponen tersebut dianggap cukup representatif untuk digunakan pada analisis atau pemodelan selanjutnya.

Nilai loading yang besar (positif maupun negatif) mengindikasikan bahwa variabel tersebut memiliki pengaruh kuat terhadap komponen terkait.


5.5 Visualisasi PCA (Biplot)

biplot(pca_result,
       scale = 0,
       cex = 0.6)

Interpretasi

Biplot PCA menampilkan hubungan antara observasi dan variabel pada dua komponen utama pertama (PC1 dan PC2). Kedua komponen ini secara kumulatif mampu menjelaskan sekitar 39,60% variasi data, sehingga cukup representatif untuk menggambarkan pola umum dalam dataset.

Beberapa informasi yang dapat diperoleh dari biplot:

  • Variabel yang membentuk sudut kecil menunjukkan korelasi positif yang kuat.
  • Variabel yang membentuk sudut mendekati 180° menunjukkan korelasi negatif.
  • Variabel yang saling tegak lurus menunjukkan korelasi yang lemah atau tidak ada korelasi.
  • Panjang vektor menunjukkan besar kontribusi variabel terhadap komponen utama.

Apabila vektor magnitude, sig, dan energy_index berada pada arah yang sama, maka dapat disimpulkan bahwa ketiga variabel tersebut memiliki hubungan positif yang kuat dan cenderung menggambarkan karakteristik kekuatan gempa bumi.

Berdasarkan biplot, terlihat bahwa variabel Year, tsunami, dan Month berada pada arah yang relatif sama. Hal ini mengindikasikan adanya hubungan positif antar variabel tersebut, yang berarti observasi dengan nilai tinggi pada salah satu variabel cenderung memiliki nilai yang tinggi pula pada variabel lainnya.

Variabel cdi, mmi, dan sig juga cenderung berada pada arah yang berdekatan, menunjukkan adanya korelasi positif yang cukup kuat. Kondisi ini sejalan dengan karakteristik ketiga variabel yang sama-sama menggambarkan intensitas dan dampak gempa bumi.

Sebaliknya, variabel nst berada pada arah yang berlawanan dengan beberapa variabel lainnya pada PC1, yang menunjukkan adanya hubungan negatif terhadap variabel-variabel tersebut.

Panjang vektor menunjukkan besarnya kontribusi variabel terhadap pembentukan komponen utama. Variabel yang memiliki vektor lebih panjang, seperti Year, tsunami, dan nst, memberikan kontribusi yang lebih besar dalam menjelaskan variasi data dibandingkan variabel yang memiliki vektor lebih pendek.

Selain itu, sebagian besar observasi terkonsentrasi di sekitar pusat grafik, yang menunjukkan bahwa mayoritas kejadian gempa memiliki karakteristik yang relatif mirip. Namun terdapat beberapa observasi yang berada jauh dari pusat, yang mengindikasikan adanya kejadian gempa dengan karakteristik yang berbeda atau lebih ekstrem dibandingkan observasi lainnya.

Secara keseluruhan, biplot menunjukkan bahwa terdapat hubungan yang cukup kuat antara variabel-variabel yang menggambarkan intensitas gempa, kejadian tsunami, serta karakteristik pengamatan seismik, sehingga PCA berhasil merangkum informasi penting dari dataset ke dalam beberapa komponen utama.


Kesimpulan PCA

Berdasarkan hasil Principal Component Analysis (PCA), diperoleh bahwa tujuh komponen utama pertama mampu menjelaskan sekitar 81,09% variasi total data. Nilai tersebut telah melebihi batas umum sebesar 80%, sehingga tujuh komponen utama dianggap cukup representatif untuk menggambarkan informasi yang terkandung dalam dataset.

Hasil loading factor menunjukkan bahwa komponen-komponen utama yang terbentuk dipengaruhi oleh karakteristik intensitas gempa, energi gempa, lokasi geografis, waktu kejadian, serta faktor-faktor yang berkaitan dengan potensi terjadinya tsunami. Dengan demikian, PCA berhasil mereduksi dimensi data tanpa kehilangan sebagian besar informasi penting yang terdapat pada variabel asli.

Komponen utama yang diperoleh dapat digunakan sebagai fitur baru pada tahap analisis atau pemodelan selanjutnya sehingga mampu mengurangi kompleksitas data, mengatasi redundansi informasi, dan meningkatkan efisiensi proses pemodelan.

6. Insight dan Kesimpulan

Variabel yang Paling Penting

Berdasarkan hasil Feature Selection menggunakan metode korelasi dan LASSO, diperoleh bahwa variabel yang paling berpengaruh dalam menjelaskan karakteristik gempa bumi adalah magnitude, sig, mmi, cdi, dan energy_index. Variabel-variabel tersebut memiliki kontribusi besar karena berkaitan langsung dengan kekuatan gempa dan tingkat dampak yang ditimbulkan.

Selain itu, hasil analisis korelasi menunjukkan bahwa variabel yang menggambarkan intensitas dan dampak gempa memiliki hubungan yang cukup kuat satu sama lain. Oleh karena itu, variabel-variabel tersebut menjadi sumber informasi utama dalam dataset dan berperan penting dalam proses analisis maupun pemodelan.

Apakah Reduksi Dimensi Berhasil?

Berdasarkan hasil Principal Component Analysis (PCA), reduksi dimensi dapat dikatakan berhasil karena sebagian besar variasi data dapat dijelaskan oleh beberapa komponen utama pertama. Dengan PCA, informasi yang sebelumnya tersebar pada banyak variabel dapat diringkas ke dalam sejumlah komponen yang lebih sedikit tanpa kehilangan informasi penting secara signifikan.

Selain menyederhanakan struktur data, PCA juga membantu mengurangi pengaruh multikolinearitas yang ditemukan pada tahap EDA. Dengan demikian, data menjadi lebih mudah dianalisis dan divisualisasikan untuk memperoleh pola-pola utama yang terkandung dalam dataset.

Makna Substantif Principal Components

Principal Component 1 (PC1)

Komponen pertama didominasi oleh variabel yang berkaitan dengan kekuatan dan dampak gempa seperti magnitude, sig, mmi, cdi, dan energy_index. Oleh karena itu, PC1 dapat diinterpretasikan sebagai dimensi tingkat keparahan gempa bumi. Semakin tinggi nilai PC1, semakin besar kekuatan gempa dan semakin tinggi dampak yang ditimbulkan.

Principal Component 2 (PC2)

Komponen kedua lebih banyak dipengaruhi oleh variabel yang berkaitan dengan karakteristik lokasi dan kondisi geologis gempa, seperti depth, latitude, dan longitude. Dengan demikian, PC2 dapat diinterpretasikan sebagai dimensi karakteristik geografis dan kedalaman gempa.

Komponen Selanjutnya

Komponen-komponen berikutnya menjelaskan variasi tambahan yang lebih spesifik dan memiliki kontribusi yang lebih kecil dibandingkan PC1 dan PC2. Oleh karena itu, interpretasi utama analisis dapat difokuskan pada beberapa komponen pertama yang telah mampu merepresentasikan sebagian besar informasi dalam data.

Insight yang Diperoleh dari Data

  1. Variabel yang berkaitan dengan kekuatan gempa seperti magnitude, sig, mmi, dan cdi merupakan faktor utama yang membedakan karakteristik kejadian gempa bumi.

  2. Terdapat hubungan yang cukup kuat antar variabel yang menggambarkan dampak gempa. Hal ini menunjukkan bahwa gempa dengan magnitudo yang lebih besar cenderung menghasilkan tingkat guncangan dan signifikansi yang lebih tinggi.

  3. Karakteristik lokasi dan kedalaman gempa membentuk pola tersendiri yang berbeda dari faktor kekuatan gempa. Oleh karena itu, aspek geografis tetap memiliki peran penting dalam analisis risiko bencana.

  4. Proses Feature Engineering berhasil menghasilkan fitur baru yang relevan, khususnya energy_index, yang mampu merepresentasikan energi gempa secara lebih informatif dibandingkan hanya menggunakan variabel magnitude.

  5. PCA berhasil menyederhanakan struktur data sehingga hubungan antar variabel menjadi lebih mudah dipahami tanpa kehilangan informasi utama yang terkandung dalam dataset.

  6. Hasil analisis menunjukkan bahwa potensi kejadian tsunami tidak hanya dipengaruhi oleh satu faktor, melainkan kombinasi antara kekuatan gempa, tingkat dampak yang ditimbulkan, serta karakteristik lokasi terjadinya gempa.

Kesimpulan

Berdasarkan hasil Exploratory Data Analysis (EDA), Feature Engineering, Feature Selection, dan Principal Component Analysis (PCA), dapat disimpulkan bahwa karakteristik gempa bumi signifikan terutama dipengaruhi oleh variabel yang berkaitan dengan kekuatan dan dampak gempa, seperti magnitude, sig, mmi, cdi, serta energy_index.

Hasil Feature Selection menunjukkan bahwa tidak seluruh variabel memiliki kontribusi yang sama terhadap informasi dalam data. Sementara itu, hasil PCA menunjukkan bahwa reduksi dimensi berhasil dilakukan karena sebagian besar variasi data dapat dijelaskan oleh beberapa komponen utama pertama.

Secara substantif, komponen utama pertama merepresentasikan tingkat keparahan gempa, sedangkan komponen kedua menggambarkan karakteristik geografis dan kedalaman gempa. Dengan demikian, PCA berhasil menyederhanakan struktur data tanpa kehilangan informasi penting sehingga dapat mendukung analisis lebih lanjut terkait pola kejadian gempa bumi dan potensi terjadinya tsunami.