Library:
library(ggplot2)
library(readxl)
library(REdaS)
## Loading required package: grid
library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
Dataset yang digunakan dalam penelitian ini berasal dari Kaggle, yaitu salinan dari Breast Cancer Wisconsin (Diagnostic) Dataset. Dataset ini berisi 569 sampel dan 30 variabel numerik yang menggambarkan karakteristik sel kanker payudara (seperti radius, perimeter, area, tekstur, dan aspek lainnya). Dalam studi kasus ini, analisis komponen utama (PCA) difokuskan pada 10 variabel mean yang merepresentasikan atribut utama morfologi sel, yaitu:
Setiap variabel tersebut menggambarkan sifat khusus dari struktur sel, baik dari segi ukuran maupun kompleksitas bentuknya.
Penggunaan PCA bertujuan untuk memperoleh komponen utama yang paling informatif, sehingga dapat merangkum sebagian besar keragaman data sekaligus mengungkap pola hubungan antarvariabel morfologi sel yang berkaitan dengan karakteristik kanker payudara.
Faktor <- read_excel("E:/Download/dataset_cancer.xlsx")
View(Faktor)
str(Faktor)
## tibble [569 × 10] (S3: tbl_df/tbl/data.frame)
## $ radius_mean : num [1:569] 18 20.6 19.7 11.4 20.3 ...
## $ texture_mean : num [1:569] 10.4 17.8 21.2 20.4 14.3 ...
## $ perimeter_mean : num [1:569] 122.8 132.9 130 77.6 135.1 ...
## $ area_mean : num [1:569] 1001 1326 1203 386 1297 ...
## $ smoothness_mean : num [1:569] 0.1184 0.0847 0.1096 0.1425 0.1003 ...
## $ compactness_mean : num [1:569] 0.2776 0.0786 0.1599 0.2839 0.1328 ...
## $ concavity_mean : num [1:569] 0.3001 0.0869 0.1974 0.2414 0.198 ...
## $ concave points_mean : num [1:569] 0.1471 0.0702 0.1279 0.1052 0.1043 ...
## $ symmetry_mean : num [1:569] 0.242 0.181 0.207 0.26 0.181 ...
## $ fractal_dimension_mean: num [1:569] 0.0787 0.0567 0.06 0.0974 0.0588 ...
kmos <- KMOS(Faktor)
kmos$MSA
## radius_mean texture_mean perimeter_mean
## 0.7172162 0.9335588 0.6965623
## area_mean smoothness_mean compactness_mean
## 0.8652626 0.7913636 0.6928527
## concavity_mean concave points_mean symmetry_mean
## 0.8778683 0.8772256 0.9540986
## fractal_dimension_mean
## 0.6802894
Hasil Measure of Sampling Adequacy (MSA) menunjukkan bahwa seluruh variabel memiliki nilai MSA di atas 0.5 berada pada rentang 0.680 hingga 0.954. Dengan demikian, setiap variabel telah memenuhi tingkat kecukupan sampel yang memadai dan layak untuk disertakan dalam analisis Principal Component Analysis (PCA), karena tidak ada variabel yang perlu dieliminasi.
kmos$KMO
## [1] 0.7868379
Nilai KMO sebesar 0,7868 mengindikasikan bahwa secara keseluruhan data memiliki tingkat kecukupan sampel yang berada pada kategori middling, sehingga dataset dianggap baik dianalisis menggunakan PCA.
bart_spher(x = Faktor)
## Bartlett's Test of Sphericity
##
## Call: bart_spher(x = Faktor)
##
## X2 = 11176.179
## df = 45
## p-value < 2.22e-16
Didapatkan p-value (2.22e-16) < 0.05, sehingga tolak H0. Maka didapatkan hasil bahwa variabel-variabel dalam dataset memiliki korelasi yang cukup kuat untuk dianalisis lebih menggunakan PCA.
pca_object <- prcomp(Faktor[ , colnames(Faktor)], scale = TRUE)
loadings <- pca_object$rotation
loadings
## PC1 PC2 PC3 PC4
## radius_mean -0.36393793 0.313929073 -0.12442759 0.029558858
## texture_mean -0.15445113 0.147180909 0.95105659 0.008916084
## perimeter_mean -0.37604434 0.284657885 -0.11408360 0.013458069
## area_mean -0.36408585 0.304841714 -0.12337786 0.013442682
## smoothness_mean -0.23248053 -0.401962324 -0.16653247 -0.107802033
## compactness_mean -0.36444206 -0.266013147 0.05827786 -0.185700413
## concavity_mean -0.39574849 -0.104285968 0.04114649 -0.166653523
## concave points_mean -0.41803840 -0.007183605 -0.06855383 -0.072983951
## symmetry_mean -0.21523797 -0.368300910 0.03672364 0.892998475
## fractal_dimension_mean -0.07183744 -0.571767700 0.11358395 -0.349331790
## PC5 PC6 PC7 PC8
## radius_mean 0.031067022 -0.264180150 -0.04418839 -0.084834062
## texture_mean 0.219922761 -0.032206572 0.02055748 0.007126797
## perimeter_mean 0.005945081 -0.237819464 -0.08336923 -0.089258879
## area_mean 0.019341222 -0.331707454 0.26118796 -0.144609749
## smoothness_mean 0.843745292 0.062225368 0.01129197 -0.170503128
## compactness_mean -0.240182967 0.005271104 -0.80380484 -0.063980134
## concavity_mean -0.312533244 0.601467155 0.36713629 -0.449573315
## concave points_mean 0.009180198 0.265613395 0.14131308 0.850918762
## symmetry_mean -0.112888068 -0.061957003 0.04790201 -0.016455606
## fractal_dimension_mean -0.264878077 -0.567918997 0.34521359 0.065259461
## PC9 PC10
## radius_mean -0.474425305 -0.6690714888
## texture_mean -0.004212629 0.0002497826
## perimeter_mean -0.380167210 0.7404905337
## area_mean 0.747347357 -0.0323589585
## smoothness_mean -0.005847386 0.0036904058
## compactness_mean 0.218732407 -0.0527527802
## concavity_mean -0.081170670 -0.0103668020
## concave points_mean 0.022024652 -0.0037475480
## symmetry_mean -0.009067850 0.0014669472
## fractal_dimension_mean -0.129667491 0.0070573477
scree_plot <- fviz_eig(pca_object, addlabels = TRUE, choice = "eigenvalue", ncp = 25) + geom_hline( yintercept = 1, linetype = "dashed", color = "red")
## Warning in geom_bar(stat = "identity", fill = barfill, color = barcolor, :
## Ignoring empty aesthetic: `width`.
scree_plot
Scree plot menunjukkan penurunan nilai eigen yang sangat tajam dari komponen utama ke-1 dan ke-2, kemudian mulai melandai secara signifikan pada komponen ke-3 dan seterusnya. Hal ini mengindikasikan bahwa sebagian besar keragaman data dijelaskan oleh dua komponen utama pertama, sedangkan komponen setelahnya hanya memberikan tambahan informasi yang relatif kecil karena nilai eigen yang semakin menurun dan dibawah 1. Dengan demikian, berdasarkan scree plot, jumlah komponen utama yang optimal untuk dipertahankan adalah dua komponen utama.
eigenvalues <- pca_object$sdev^2
summary_table <- data.frame(
Nilai_Eigen = eigenvalues,
Proportion = eigenvalues / sum(eigenvalues),
Cumulative_Proportion = cumsum(eigenvalues / sum(eigenvalues))
)
summary_table[1:2,]
## Nilai_Eigen Proportion Cumulative_Proportion
## 1 5.478588 0.5478588 0.5478588
## 2 2.518714 0.2518714 0.7997302
Berdasarkan hasil analisis Principal Component Analysis (PCA), diperoleh bahwa data dapat direduksi menjadi dua komponen utama yang mampu menjelaskan sekitar 80% total keragaman.
loadings[, 1:2]
## PC1 PC2
## radius_mean -0.36393793 0.313929073
## texture_mean -0.15445113 0.147180909
## perimeter_mean -0.37604434 0.284657885
## area_mean -0.36408585 0.304841714
## smoothness_mean -0.23248053 -0.401962324
## compactness_mean -0.36444206 -0.266013147
## concavity_mean -0.39574849 -0.104285968
## concave points_mean -0.41803840 -0.007183605
## symmetry_mean -0.21523797 -0.368300910
## fractal_dimension_mean -0.07183744 -0.571767700
Nilai masing-masing komponen utama merupakan kombinasi linier dari setiap variabel, dimana koefisiennya seperti pada hasil di atas.
Komponen utama yang terbentuk:
PC1 = - 0.364X1 - 0.154X2 - 0.376X3 - 0.364X4 - 0.232X5 - 0.364X6 -
0.396X7 - 0.418X8 - 0.215X9 - 0.072X10
PC2 = 0.314X1 + 0.147X2 + 0.285X3 + 0.305X4 - 0.402X X5 - 0.266X6 -
0.104X7 - 0.007X8 - 0.368X9 - 0.572X10
Hasil pengujian asumsi menunjukkan bahwa analisis dapat dilanjutkan. Nilai KMO berada pada kategori memadai yaitu sebesar 0.78 yang menandakan bahwa data cukup untuk dilakukan analisis PCA. Hasil Uji Bartlett juga dinyatakan signifikan (p-value < 0.05), sehingga variabel-variabel pada data berkorelasi dan layak dianalisis menggunakan PCA.
Berdasarkan hasil analisis Principal Component Analysis (PCA), diperoleh bahwa data dapat direduksi menjadi dua komponen utama yang mampu menjelaskan sekitar 80% total keragaman. Komponen utama pertama (PC1) didominasi oleh variabel-variabel ukuran dan bentuk seperti radius_mean, perimeter_mean, area_mean, serta karakteristik ketidakteraturan seperti concavity_mean dan concave_points_mean. Komponen utama kedua (PC2) dipengaruhi oleh variabel terkait tekstur dan kompleksitas permukaan, seperti smoothness_mean dan fractal_dimension_mean.
Secara keseluruhan, PCA berhasil menyederhanakan variabel-variabel yang awalnya saling berkaitan menjadi dua komponen utama yang lebih ringkas namun tetap informatif karena dapat menjelaskan sekitar 80% keragaman data. Hasil ini dapat digunakan untuk analisis lanjutan seperti clustering, visualisasi, atau sebagai variabel input dalam model prediktif dengan kompleksitas lebih rendah tanpa menghilangkan informasi penting dalam data.