Preprocessing

Pertama import library yang digunakan untuk analisis ini.

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.2
library(dplyr)
## 
## 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
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.4.2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa

Kemudian import data dan menyiapkan data untuk PCA yang mengecualikan data non numerical

data <- read.csv("D:/Dataset/decathlon-3.csv")
pca_data <- data %>%
  select(-c(Athlets, Rank, Points, Competition))

Melakukan analisis PCA

pca_result <- prcomp(pca_data, scale. = TRUE)

(A) Banyaknya Komponen Utama

Melihat komponen data yang dihasilkan

summary(pca_result)
## Importance of components:
##                           PC1    PC2    PC3    PC4     PC5     PC6     PC7
## Standard deviation     1.8088 1.3180 1.1853 1.0280 0.82751 0.77412 0.67174
## Proportion of Variance 0.3272 0.1737 0.1405 0.1057 0.06848 0.05993 0.04512
## Cumulative Proportion  0.3272 0.5009 0.6414 0.7471 0.81556 0.87548 0.92061
##                            PC8     PC9    PC10
## Standard deviation     0.62998 0.46348 0.42688
## Proportion of Variance 0.03969 0.02148 0.01822
## Cumulative Proportion  0.96030 0.98178 1.00000

visualisasi dari variasi

fviz_eig(pca_result)

Berdasarkan tabel hasil Analisis Komponen Utama (PCA) di atas, kita dapat menyimpulkan beberapa poin penting sebagai berikut:

  1. Penentuan Jumlah Komponen Utama:
  1. Interpretasi: Umumnya, pemilihan jumlah komponen utama dilakukan dengan mempertimbangkan aturan mengenai proporsi variansi kumulatif yang cukup besar, biasanya di atas 70-80%. Dalam konteks ini, penggunaan empat komponen utama sudah memadai, karena dapat menjelaskan sekitar 74,71% dari variasi data yang ada.

(B) Scatter Plot

Membuat scatter plot antara komponen pertama dan kedua

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 = "blue", size = 3) +
  geom_text(vjust = 1.5, size = 3) +
  labs(title = "PCA Scatter Plot (PC1 vs PC2)", x = "PC1", y = "PC2") +
  theme_minimal()

Dari plot PCA yang menggambarkan hubungan antara PC1 dan PC2, kita dapat mengidentifikasi beberapa pola atau klaster yang menarik.

  1. Distribusi Data Titik-titik data tersebar merata di seluruh dimensi PC1 dan PC2, menunjukkan adanya variasi yang signifikan. Beberapa titik terlihat menyimpang dari kelompok utama, atau yang biasa disebut outliers, seperti Casarsa yang berada di bagian atas, Karpov di sudut kanan bawah, dan Drews di kiri bawah.

  2. Kelompok Terpusat Sebagian besar titik terletak dekat dengan pusat koordinat, di mana nilai PC1 dan PC2 mendekati nol. Hal ini mengindikasikan bahwa kelompok ini memiliki kesamaan karakteristik yang terlihat pada kedua dimensi utama. Nama-nama seperti Bernard, Hernu, dan Warners berada di pusat distribusi tersebut.

  3. Potensi Klaster

  1. Outliers Beberapa individu, seperti Casarsa (yang memiliki nilai PC2 tinggi) dan Karpov (dengan nilai PC1 tinggi), tampak terpisah dari klaster lainnya. Hal ini menunjukkan bahwa mereka memiliki karakteristik yang unik dan berbeda secara signifikan dibandingkan dengan individu lainnya.

(C) Hubungan Antara Komponen dan Variabel

hubungan antara hasil PCA yang diperoleh dengan variabel/ 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 Analisis Komponen Utama (PCA) ini memberikan wawasan yang berharga mengenai hubungan antar variabel, khususnya cabang lomba, serta kontribusi masing-masing terhadap dua dimensi utama, yaitu Dim1 dan Dim2.

fviz_pca_biplot(pca_result,
                repel = TRUE, # Avoid overlapping text
                col.var = "red", # Color for variables
                col.ind = "blue", # Color for individuals
                title = "PCA Biplot: Athletes and Variables")

Variabel dan Cabang Lomba

  1. Vektor (panah) menggambarkan hubungan antara cabang lomba dan kontribusinya terhadap PC1 dan PC2:
  • PC1 (32. 72%): Mencerminkan atribut yang berkaitan dengan kecepatan dan daya tahan, diwakili oleh cabang-cabang seperti 100m, 400m, dan 110m hurdle.

  • PC2 (17. 37%): Menilai atribut kekuatan dan teknik, dengan cabang-cabang seperti Shot put, Discus, dan Pole vault.

  • Vektor yang panjang, misalnya Shot put dan 400m, menunjukkan kontribusi signifikan terhadap dimensi spesifik.

  • Variabel yang berdekatan dalam arah vektor menandakan korelasi positif, seperti halnya hubungan antara Shot put dengan Discus, serta antara 100m dengan 110m hurdle.

Atlet

  1. Atlet yang berada jauh dari pusat vektor menunjukkan performa yang menonjol pada dimensi tertentu:
  • Karpov, Sebrie, dan Clay memiliki skor tinggi pada PC1, menunjukan keunggulan dalam aspek kecepatan dan daya tahan.

  • Di sisi lain, atlet seperti Casarsa dan Drews berada dalam posisi yang berbeda, menunjukkan kemungkinan perlakuan yang berbeda dibandingkan dengan kelompok utama.

  • Atlet yang lebih dekat dengan variabel tertentu cenderung memiliki performa yang baik dalam cabang olahraga tersebut.

(D) Komponen utama paling berkaitan

berikut komponen utama yang paling berkaitan dengan performa atlet di cabang tertentu

var_contributions <- as.data.frame(pca_result$rotation)
var_contributions
##                      PC1        PC2         PC3         PC4         PC5
## X100m        -0.42829627  0.1419891 -0.15557953  0.03678703  0.36518741
## Long.jump     0.41015201 -0.2620794  0.15372674 -0.09901016  0.04432336
## Shot.put      0.34414444  0.4539470 -0.01972378 -0.18539458  0.13431954
## High.jump     0.31619436  0.2657761 -0.21894349  0.13189684  0.67121760
## X400m        -0.37571570  0.4320460  0.11091758 -0.02850297 -0.10597034
## X110m.hurdle -0.41255442  0.1735910 -0.07815576 -0.28290068  0.19857266
## Discus        0.30542571  0.4600244  0.03623770  0.25259074 -0.12667770
## Pole.vault    0.02783081 -0.1368411  0.58361717 -0.53649480  0.39873734
## Javeline      0.15319802  0.2405071 -0.32874217 -0.69285498 -0.36873120
## X1500m       -0.03210733  0.3598049  0.65987362  0.15669648 -0.18557094
##                      PC6         PC7         PC8         PC9        PC10
## X100m        -0.29607739 -0.38177608  0.46160211 -0.10475771  0.42428269
## Long.jump     0.30612478 -0.62769317 -0.02101165 -0.48266910  0.08104448
## Shot.put     -0.30547299  0.30972542 -0.31393005 -0.42729075  0.39028424
## High.jump     0.46777116  0.09145002  0.12509166  0.24366054 -0.10642724
## X400m         0.33252178  0.12442114  0.21339819 -0.55212939 -0.41399532
## X110m.hurdle  0.09963776 -0.35733030 -0.71111429  0.15013429 -0.09086448
## Discus       -0.44937288 -0.42988982  0.03838986  0.15480715 -0.44916580
## Pole.vault   -0.26166458  0.09796019  0.17803824  0.08297769 -0.27645138
## Javeline      0.16320268 -0.10674519  0.29614206  0.24732691  0.08777340
## X1500m        0.29826888 -0.08362898  0.01371744  0.30773397  0.42923132

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

(E) Urutan atlet terbaik

urutan atlet yang memiliki performa terbaik

ranking <- pca_scores %>%
  select(Athlets, PC1) %>%
  arrange(desc(PC1))

ranking
##        Athlets         PC1
## 1       Karpov  4.56329817
## 2       Sebrle  3.98889511
## 3         Clay  3.87127297
## 4        Macey  2.20605510
## 5      Warners  2.14178935
## 6      Bernard  1.88294288
## 7       KARPOV  1.34154909
## 8         CLAY  1.21983673
## 9    Zsivoczky  0.91378044
## 10       Hernu  0.87812900
## 11       Smith  0.85963151
## 12      SEBRLE  0.78191413
## 13    McMULLEN  0.58030713
## 14   Pogorelov  0.53305497
## 15    Ojaniemi  0.37544985
## 16     WARNERS  0.35251035
## 17   Averyanov  0.34487086
## 18        Nool  0.29168215
## 19   ZSIVOCZKY  0.26843999
## 20  Schoenbeck  0.11302687
## 21    Schwarzl  0.08008379
## 22      Barras  0.00211888
## 23       Drews -0.24563257
## 24       Gomez -0.28633215
## 25          Qi -0.42913561
## 26     Smirnov -0.47856903
## 27      YURKOV -0.57877827
## 28     BERNARD -0.60203609
## 29       Terek -0.67358522
## 30 Korkizoglou -0.94607686
## 31 Parkhomenko -1.05630678
## 32      BARRAS -1.32519011
## 33        Turi -1.52289439
## 34       HERNU -1.52710548
## 35   Karlivans -1.96989702
## 36   MARTINEAU -1.97087543
## 37        NOOL -2.31620003
## 38     Lorenzo -2.37895659
## 39       Uldal -2.53081963
## 40     Casarsa -2.82203064
## 41 BOURGUIGNON -3.93021742

Tabel di atas menampilkan peringkat semua atlet dalam dataset, di mana atlet dengan performa terbaik dapat diidentifikasi melalui nilai PC1 yang lebih tinggi. Dalam hal ini, Karpov muncul sebagai yang teratas dengan skor 4. 56, yang kemungkinan mencerminkan atribut utama seperti kecepatan atau kekuatan.