Dataset

data <- read.csv("decathlon-3.csv")

a. Tentukan berapa banyak komponen utama yang dihasilkan untuk menjelaskan variasi data. Jelaskan interpretasinya.

# Periksa Tipe Data Kolom
str(data)
## 'data.frame':    41 obs. of  14 variables:
##  $ Athlets     : chr  "SEBRLE" "CLAY" "KARPOV" "BERNARD" ...
##  $ X100m       : num  11 10.8 11 11 11.3 ...
##  $ Long.jump   : num  7.58 7.4 7.3 7.23 7.09 7.6 7.3 7.31 6.81 7.56 ...
##  $ Shot.put    : num  14.8 14.3 14.8 14.2 15.2 ...
##  $ High.jump   : num  2.07 1.86 2.04 1.92 2.1 1.98 2.01 2.13 1.95 1.86 ...
##  $ X400m       : num  49.8 49.4 48.4 48.9 50.4 ...
##  $ X110m.hurdle: num  14.7 14.1 14.1 15 15.3 ...
##  $ Discus      : num  43.8 50.7 49 40.9 46.3 ...
##  $ Pole.vault  : num  5.02 4.92 4.92 5.32 4.72 4.92 4.42 4.42 4.92 4.82 ...
##  $ Javeline    : num  63.2 60.1 50.3 62.8 63.4 ...
##  $ X1500m      : num  292 302 300 280 276 ...
##  $ Rank        : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Points      : int  8217 8122 8099 8067 8036 8030 8004 7995 7802 7733 ...
##  $ Competition : chr  "Decastar" "Decastar" "Decastar" "Decastar" ...
# Menghapus Kolom Non-Numerik
data_numeric <- data[, sapply(data, is.numeric)]
# Menjalankan PCA Setelah Membersihkan Data
# Standarisasi data
data_scaled <- scale(data_numeric)

# Menjalankan PCA
pca_result <- prcomp(data_scaled)

# Melihat ringkasan hasil PCA
summary(pca_result)
## Importance of components:
##                           PC1    PC2    PC3     PC4     PC5     PC6     PC7
## Standard deviation     2.1815 1.3191 1.1895 1.06385 0.92841 0.77931 0.71446
## Proportion of Variance 0.3966 0.1450 0.1179 0.09431 0.07183 0.05061 0.04254
## Cumulative Proportion  0.3966 0.5416 0.6595 0.75380 0.82563 0.87624 0.91878
##                            PC8    PC9    PC10    PC11    PC12
## Standard deviation     0.64116 0.4850 0.43286 0.37545 0.00735
## Proportion of Variance 0.03426 0.0196 0.01561 0.01175 0.00000
## Cumulative Proportion  0.95303 0.9726 0.98825 1.00000 1.00000
# Memuat paket factoextra
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.3.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.3.3
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
# Visualisasi eigenvalues dengan angka proporsi variasi
fviz_eig(pca_result, addlabels = TRUE)

Berdasarkan hasil PCA yang diperoleh, dapat disimpulkan sebagai berikut:

Dari hasil ini, dapat dilihat bahwa empat komponen utama pertama cukup efektif dalam menjelaskan sebagian besar variasi dalam data, dengan 75.4% variasi terjelaskan.

b. Buat scatter plot data dalam ruang dua dimensi menggunakan kom- ponen utama pertama dan kedua. Apa pola atau kluster yang ter- lihat?

pca_scores <- as.data.frame(pca_result$x)
pca_scores$Athlets <- data$Athlets
ggplot(pca_scores, aes(x = PC1, y = PC2, label = Athlets)) +
  geom_point(color = "orange", size = 3) +
  geom_text(vjust = 1.5, size = 3) +
  labs(title = "Scatter Plot PC1 dan PC2", x = "PC1", y = "PC2") +
  theme_minimal()

Berdasarkan plot PCA (PC1 vs PC2), berikut adalah pola atau klaster yang dapat diidentifikasi:

  1. Distribusi Data:

    • Titik-titik data tersebar luas di ruang PC1 dan PC2, menunjukkan adanya variasi signifikan dalam dataset.

    • Beberapa titik terlihat sebagai outlier, seperti Casarsa di bagian atas, Karpov di kanan bawah, dan Drews di kiri bawah.

  2. Kelompok Terpusat:

    • Sebagian besar titik terletak dekat dengan pusat (nilai PC1 dan PC2 mendekati nol), menunjukkan kesamaan karakteristik di kedua komponen utama.

    • Nama-nama seperti Bernard, Hernu, dan Warners berada di sekitar pusat distribusi.

  3. Potensi Klaster:

    • Kelompok 1: Titik di kiri bawah (PC1 negatif, PC2 negatif), seperti Lorenzo, Nool, dan Drews, membentuk klaster terpisah.

    • Kelompok 2: Titik di kanan atas (PC1 positif, PC2 positif), seperti Sebrie, Clay, dan Macey, menunjukkan karakteristik yang mirip satu sama lain.

    • Kelompok 3: Titik-titik di tengah (PC1 dan PC2 sekitar nol), seperti McMullen, Pogorelov, dan Zsivoczky, kemungkinan merupakan kelompok campuran dengan variasi moderat.

  4. Outliers:

    • Beberapa individu, seperti Casarsa (PC2 tinggi) dan Karpov (PC1 tinggi), terletak jauh dari klaster utama, menunjukkan bahwa mereka memiliki karakteristik yang sangat berbeda dari individu lainnya.

c. Jelaskan hubungan antara hasil PCA yang diperoleh dengan vari- abel/cabang lomba serta sampel/atlet yang diperoleh.

fviz_pca_var(pca_result, col.var = "cos2", gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
             repel = TRUE)

Plot lingkaran korelasi dari PCA ini memberikan wawasan tentang hubungan antar variabel (cabang lomba) dan kontribusinya terhadap dimensi utama (Dim1 dan Dim2):

d. Komponen utama mana yang paling berkaitan dengan performa at- let di cabang tertentu.

var_contributions <- as.data.frame(pca_result$rotation)
var_contributions
##                      PC1          PC2         PC3          PC4         PC5
## X100m        -0.32462717  0.119492960 -0.12979024  0.193682783 -0.55372513
## Long.jump     0.34651451 -0.252373927  0.15320763  0.006786627  0.05113882
## Shot.put      0.28038448  0.464134267 -0.01675278  0.102802458  0.07852634
## High.jump     0.26949298  0.272694627 -0.20103208 -0.081391780 -0.43408038
## X400m        -0.31872084  0.420421416  0.11054773  0.083376737  0.08029405
## X110m.hurdle -0.32245880  0.155406459 -0.06813869  0.384288656 -0.12016034
## Discus        0.24267251  0.468984856  0.04593231 -0.256786415 -0.10486940
## Pole.vault    0.06639577 -0.152842199  0.59203331  0.553682094 -0.10958743
## Javeline      0.14621541  0.244033088 -0.32827248  0.562735916  0.46473483
## X1500m       -0.04809361  0.355628523  0.65725761 -0.179152259  0.12352230
## Rank         -0.35809724  0.044808449 -0.08343169 -0.232757919  0.46750528
## Points        0.45001821  0.001182155 -0.05290784  0.123174214  0.04991079
##                       PC6         PC7         PC8         PC9        PC10
## X100m        -0.240803882  0.23056831  0.20958724 -0.29129933  0.37165622
## Long.jump     0.274332403  0.46820138 -0.31831629 -0.57709767  0.15096211
## Shot.put     -0.182612747 -0.50365024 -0.20802988 -0.26031758  0.48848564
## High.jump     0.651112942 -0.19616347  0.09813379  0.09951607 -0.13960185
## X400m         0.273142102  0.08639320  0.27521164 -0.45919946 -0.32284775
## X110m.hurdle  0.146268836  0.05358679 -0.78289620  0.17799890 -0.12784110
## Discus       -0.501502634  0.28052445 -0.16157768 -0.03046762 -0.47136008
## Pole.vault   -0.101974007 -0.30693150  0.12253332 -0.09138528 -0.28523734
## Javeline      0.038822555  0.33705941  0.24720861  0.18973840  0.07014143
## X1500m        0.208527418  0.23886451  0.02545397  0.32736168  0.35138431
## Rank          0.080953679 -0.27612748 -0.10068613 -0.31311802 -0.08499686
## Points       -0.003256008 -0.07303511  0.01240536 -0.10676031 -0.14575766
##                     PC11         PC12
## X100m         0.34559199 -0.147905524
## Long.jump     0.05237125  0.189026962
## Shot.put     -0.19160980  0.124753141
## High.jump     0.27727654  0.198025401
## X400m        -0.45287687 -0.134309796
## X110m.hurdle -0.02130576 -0.139414960
## Discus        0.17724887  0.176874693
## Pole.vault    0.22822944  0.204288564
## Javeline      0.17210267  0.178571481
## X1500m        0.17004902 -0.176446579
## Rank          0.62598240  0.001173757
## Points        0.15741548 -0.845043599

Berdasarkan tabel yang menunjukkan kontribusi setiap variabel pada komponen utama (loading), kita dapat mengidentifikasi komponen utama yang paling berkaitan dengan performa atlet di cabang tertentu dengan melihat nilai absolut terbesar dalam setiap kolom PC:

e. Jelaskan berdasarkan analisis, urutan atlet yang memiliki performa terbaik.

library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
ranking <- pca_scores %>%
  select(Athlets, PC1) %>%
  arrange(desc(PC1))

ranking
##        Athlets         PC1
## 1       Karpov  5.02951615
## 2       Sebrle  5.02679351
## 3         Clay  4.71620245
## 4        Macey  2.69065591
## 5      Warners  2.50601048
## 6      Bernard  1.88968799
## 7       KARPOV  1.58033597
## 8         CLAY  1.53830698
## 9       SEBRLE  1.48663090
## 10   Zsivoczky  1.43851681
## 11       Hernu  1.28296373
## 12        Nool  0.84244555
## 13     WARNERS  0.62319983
## 14   Pogorelov  0.57181807
## 15    McMULLEN  0.56862950
## 16       Smith  0.51395868
## 17   ZSIVOCZKY  0.41633620
## 18    Schwarzl  0.33669577
## 19  Schoenbeck  0.20514510
## 20   Averyanov  0.13296192
## 21    Ojaniemi  0.11565483
## 22     BERNARD  0.08140940
## 23      Barras  0.05971819
## 24      YURKOV -0.03875393
## 25     Smirnov -0.60431714
## 26       Drews -0.61669294
## 27          Qi -0.71638343
## 28       Gomez -0.89119582
## 29       Terek -1.08031441
## 30 Parkhomenko -1.29882031
## 31      BARRAS -1.42728186
## 32       HERNU -1.48735822
## 33   MARTINEAU -1.66592660
## 34 Korkizoglou -2.10609055
## 35        Turi -2.15694999
## 36        NOOL -2.28270399
## 37   Karlivans -2.77464623
## 38     Lorenzo -3.01332470
## 39       Uldal -3.44856326
## 40     Casarsa -3.91388666
## 41 BOURGUIGNON -4.13038386

Tabel di atas menunjukkan peringkat semua atlet dalam dataset, di mana atlet dengan performa terbaik dapat diidentifikasi berdasarkan nilai PC1 yang lebih tinggi, yaitu Karpov dengan skor 5,03. Hal ini kemungkinan mencerminkan atribut utama seperti kecepatan atau kekuatan.