1. Import Data dan Pre-processing

Tahapan awal dalam analisis ini adalah memuat dataset SIRTUIN6.csv. Kita akan mengambil hanya variabel numerik untuk analisis korelasi dan eigen.

# Membaca dataset CSV
# Pastikan file SIRTUIN6.csv berada di folder yang sama dengan file Rmd ini
data <- read.csv("SIRTUIN6.csv")

# Tinjauan struktur data
str(data)
'data.frame':   100 obs. of  7 variables:
 $ SC.5    : num  0.541 0.815 0.734 0.625 0.46 ...
 $ SP.6    : num  7.64 6.59 6.86 7.01 4.93 ...
 $ SHBd    : num  0.162 0 0 0.45 0.449 ...
 $ minHaaCH: num  0.445 0.497 0.508 0.484 0.482 ...
 $ maxwHBa : num  2.21 2 1.89 2.03 2.06 ...
 $ FMF     : num  0.468 0.415 0.4 0.5 0.537 ...
 $ Class   : chr  "High_BFE" "High_BFE" "High_BFE" "High_BFE" ...
# Pemilihan Variabel Numerik (Kolom 1 s.d 6)
data_num <- data[, 1:6]

2. Komputasi Matriks Multivariat

Menghitung dasar matematis untuk melihat hubungan antar deskriptor struktur molekul.

# a) Matriks Korelasi (Pearson)
cor_mat <- cor(data_num, method = "pearson")

# b) Matriks Ragam-Peragam (Kovarians)
cov_mat <- cov(data_num)

# c) Dekomposisi Eigen dari Matriks Korelasi
eigen_res <- eigen(cor_mat)

# d) Persiapan PCA untuk visualisasi lanjut
pca_res <- prcomp(data_num, scale. = TRUE)

3. Visualisasi dan Pembahasan

a. Heatmap Korelasi

Visualisasi ini memudahkan identifikasi hubungan antar variabel secara cepat melalui gradasi warna.

# Visualisasi Matriks Korelasi
corrplot(cor_mat, 
         method = "color", 
         type = "upper", 
         addCoef.col = "black", 
         tl.col = "black", 
         diag = FALSE,
         col = colorRampPalette(c("#E46726", "white", "#6D9EC1"))(200),
         title = "\nHeatmap Korelasi Deskriptor SIRT6",
         mar = c(0,0,1,0))

Interpretasi: Warna biru menunjukkan korelasi positif, sedangkan merah negatif. Terlihat SC.5 dan SP.6 memiliki hubungan biru pekat (0.66), yang berarti kedua variabel ini membawa informasi struktural yang serupa.

b. Perbandingan Variansi (Kovarians)

Kita visualisasikan diagonal matriks kovarians untuk melihat perbedaan skala.

# Mengekstrak variansi (diagonal cov_mat)
variances <- data.frame(
  Variable = names(data_num),
  Value = diag(cov_mat)
)

ggplot(variances, aes(x = reorder(Variable, -Value), y = Value, fill = Variable)) +
  geom_bar(stat = "identity", show.legend = FALSE) +
  geom_text(aes(label = round(Value, 3)), vjust = -0.5) +
  theme_minimal() +
  labs(title = "Distribusi Variansi Antar Variabel", 
       x = "Variabel", y = "Variansi") +
  scale_fill_brewer(palette = "Set2")

Interpretasi: Variabel SP.6 mendominasi variansi. Tanpa standarisasi (scaling), analisis multivariat akan sangat bias terhadap variabel ini.

c. Scree Plot (Eigenvalues)

Menunjukkan berapa banyak informasi yang ditangkap oleh setiap dimensi baru.

# Visualisasi Scree Plot menggunakan factoextra
fviz_eig(pca_res, 
         addlabels = TRUE, 
         ylim = c(0, 50), 
         barfill = "#6D9EC1", 
         barcolor = "#6D9EC1",
         linecolor = "#E46726",
         title = "Scree Plot: Persentase Variansi per Komponen")

Interpretasi: Dua komponen pertama (Dim1 & Dim2) menangkap sekitar 60.7% dari total variansi data. Ini membuktikan bahwa kita bisa mereduksi 6 variabel menjadi hanya 2 dimensi tanpa kehilangan terlalu banyak informasi.

d. PCA Biplot

Memetakan posisi data dan kontribusi variabel dalam satu ruang 2D.

# Visualisasi Biplot
fviz_pca_biplot(pca_res, 
                repel = TRUE,
                col.var = "#E46726", # Warna variabel
                col.ind = "#696969", # Warna titik data
                label = "var",
                title = "Biplot: Ruang Multivariat SIRT6")

Interpretasi: Variabel yang arah panahnya berdekatan (seperti SC.5 dan SP.6) memiliki korelasi tinggi. Panjang panah menunjukkan seberapa kuat variabel tersebut berkontribusi terhadap pembentukan komponen utama (Eigenvector).