Preprocessing

Pertama import library yang digunakan untuk analisis ini.

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
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
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.3.3
## 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("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 PCA diatas dapat ditarik kesimpulan sebagai berikut.

  1. Penentuan Jumlah Komponen Utama

    • Komponen utama pertama (PC1) menjelaskan 32.72% dari variasi data.
    • Dua komponen utama pertama (PC1 dan PC2) secara kumulatif menjelaskan 50.09%.
    • Tiga komponen utama pertama (PC1, PC2, dan PC3) secara kumulatif menjelaskan 64.14%.
    • Empat komponen utama pertama (PC1 hingga PC4) secara kumulatif menjelaskan 74.71%.
  2. Interpretasi
    Biasanya, kita memilih jumlah komponen utama berdasarkan aturan kumulatif proporsi variansi yang cukup besar, misalnya di atas 70-80%. Dalam kasus ini, empat komponen utama cukup untuk menjelaskan sekitar 74.71% dari variasi data.

(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 tersebut (PC1 vs PC2), berikut adalah pola atau klaster yang dapat diidentifikasi.

  1. Distribusi Data
    Titik-titik tersebar di seluruh ruang PC1 dan PC2, menunjukkan variasi yang signifikan dalam data. Ada beberapa titik yang tampak keluar dari kelompok utama (outliers), seperti Casarsa di bagian atas, Karpov di kanan bawah, dan Drews di kiri bawah.

  2. Kelompok Terpusat
    Sebagian besar titik terletak di sekitar pusat (PC1 dan PC2 mendekati nol), menunjukkan bahwa kelompok ini memiliki kesamaan karakteristik di kedua dimensi utama. Nama-nama seperti Bernard, Hernu, dan Warners berada di pusat distribusi.

  3. Potensi Klaster

    • Kelompok 1: Titik-titik di kiri bawah (PC1 negatif, PC2 negatif), seperti Lorenzo, Nool, dan Drews, membentuk klaster terpisah.
    • Kelompok 2: Titik-titik di kanan atas (PC1 positif, PC2 positif), seperti Sebrie, Clay, dan Macey, yang tampaknya memiliki karakteristik serupa.
    • Kelompok 3: Titik-titik tersebar di tengah (PC1 dan PC2 sekitar nol), seperti McMullen, Pogorelov, dan Zsivoczky, mungkin merupakan kelompok campuran dengan variabilitas sedang.
  4. Outliers
    Beberapa individu, seperti Casarsa (PC2 tinggi), dan Karpov (PC1 tinggi), tampak terpisah jauh dari klaster lainnya. Ini menunjukkan bahwa mereka memiliki karakteristik unik yang berbeda secara signifikan dari individu lain.

(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 PCA ini memberikan wawasan tentang hubungan antar variabel (cabang lomba) dan kontribusinya terhadap dimensi utama (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")

  1. Variabel/Cabang Lomba:

    • Vektor (panah) menunjukkan hubungan antar cabang lomba dan kontribusinya terhadap PC1 dan PC2:
      • PC1 (32.72%): Mengukur atribut yang terkait dengan kecepatan dan daya tahan, seperti 100m, 400m, dan 110m hurdle.
      • PC2 (17.37%): Mengukur atribut kekuatan dan teknik, seperti Shot put, Discus, dan Pole vault.
    • Variabel yang vektornya panjang (misalnya, Shot put dan 400m) berkontribusi besar terhadap dimensi tertentu.
    • Variabel yang dekat arah menunjukkan korelasi positif, seperti:
      • Shot put dan Discus.
      • 100m dan 110m hurdle.
  2. Atlet:

    • Atlet yang terletak jauh dari pusat memiliki performa dominan pada dimensi tertentu:
      • Karpov, Sebrie, dan Clay memiliki skor tinggi pada PC1, menunjukkan keunggulan dalam kecepatan dan daya tahan.
      • Atlet seperti Casarsa dan Drews berada jauh di sisi lain, kemungkinan memiliki performa berbeda dari kelompok utama.
    • Atlet yang lebih dekat ke variabel tertentu memiliki performa baik pada cabang 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 loading dari setiap variabel pada komponen utama (PC), kita dapat menentukan komponen utama yang paling berkaitan dengan performa pada cabang tertentu dengan melihat 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 diatas menunjukkan ranking dari semua atlet dalam dataset, atlet dengan performa terbaik dapat diidentifikasi berdasarkan nilai PC1 yang lebih tinggi yaitu Karpov dengan skor 4.56. yang kemungkinan mencerminkan atribut utama seperti kecepatan atau kekuatan.