Data ini berisi hasil performa atlet pada berbagai cabang olahraga. Tujuan analisis adalah memahami pola dalam data menggunakan Principal Component Analysis (PCA).
library(readxl)
## Warning: package 'readxl' 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
# Import dataset
file_path <- "D:/UAS-MULTIVARIAT/decathlon-3.xlsx"
data <- read_excel(file_path)
# Menampilkan struktur data
str(data)
## tibble [41 × 14] (S3: tbl_df/tbl/data.frame)
## $ Athlets : chr [1:41] "SEBRLE" "CLAY" "KARPOV" "BERNARD" ...
## $ 100m : num [1:41] 11 10.8 11 11 11.3 ...
## $ Long.jump : num [1:41] 7.58 7.4 7.3 7.23 7.09 7.6 7.3 7.31 6.81 7.56 ...
## $ Shot.put : num [1:41] 14.8 14.3 14.8 14.2 15.2 ...
## $ High.jump : num [1:41] 2.07 1.86 2.04 1.92 2.1 1.98 2.01 2.13 1.95 1.86 ...
## $ 400m : num [1:41] 49.8 49.4 48.4 48.9 50.4 ...
## $ 110m.hurdle: num [1:41] 14.7 14.1 14.1 15 15.3 ...
## $ Discus : num [1:41] 43.8 50.7 49 40.9 46.3 ...
## $ Pole.vault : num [1:41] 5.02 4.92 4.92 5.32 4.72 4.92 4.42 4.42 4.92 4.82 ...
## $ Javeline : num [1:41] 63.2 60.1 50.3 62.8 63.4 ...
## $ 1500m : num [1:41] 292 302 300 280 276 ...
## $ Rank : num [1:41] 1 2 3 4 5 6 7 8 9 10 ...
## $ Points : num [1:41] 8217 8122 8099 8067 8036 ...
## $ Competition: chr [1:41] "Decastar" "Decastar" "Decastar" "Decastar" ...
head(data)
## # A tibble: 6 × 14
## Athlets `100m` Long.jump Shot.put High.jump `400m` `110m.hurdle` Discus
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 SEBRLE 11.0 7.58 14.8 2.07 49.8 14.7 43.8
## 2 CLAY 10.8 7.4 14.3 1.86 49.4 14.0 50.7
## 3 KARPOV 11.0 7.3 14.8 2.04 48.4 14.1 49.0
## 4 BERNARD 11.0 7.23 14.2 1.92 48.9 15.0 40.9
## 5 YURKOV 11.3 7.09 15.2 2.1 50.4 15.3 46.3
## 6 WARNERS 11.1 7.6 14.3 1.98 48.7 14.2 41.1
## # ℹ 6 more variables: Pole.vault <dbl>, Javeline <dbl>, `1500m` <dbl>,
## # Rank <dbl>, Points <dbl>, Competition <chr>
# Menggunakan kolom numerik yang relevan untuk PCA
numerical_data <- data %>% select(-Athlets, -Rank, -Points, -Competition)
# Mengecek jika ada nilai yang hilang
sum(is.na(numerical_data))
## [1] 0
library(FactoMineR)
## Warning: package 'FactoMineR' was built under R version 4.3.3
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
# Melakukan PCA
data_pca <- PCA(numerical_data, scale.unit = TRUE, graph = FALSE)
# Visualisasi kontribusi varians
fviz_eig(data_pca)
Grafik di atas menunjukkan kontribusi setiap komponen utama terhadap total varians.
Interpretasi Scree Plot (Poin A):
Jumlah Komponen Utama yang Signifikan: Grafik menunjukkan kontribusi setiap komponen utama terhadap total variasi dalam data. Komponen utama pertama (Dim 1) menjelaskan sekitar 30% variasi, dan komponen kedua (Dim 2) menambahkan sekitar 20% variasi. Secara kumulatif, dua komponen utama pertama menjelaskan sekitar 50% variasi data.
Elbow Criterion: Setelah Dim 2, penurunan kontribusi varians mulai melandai. Ini dikenal sebagai “elbow point” dalam scree plot. Berdasarkan kriteria elbow, 2 hingga 4 komponen utama dapat dianggap cukup untuk merepresentasikan data secara efektif, karena komponen berikutnya memberikan kontribusi kecil terhadap total variasi.
Kesimpulan: Dua komponen utama (PC1 dan PC2) sudah mencakup sebagian besar informasi dalam data. Jika analisis membutuhkan representasi yang lebih akurat, PC3 dan PC4 dapat dipertimbangkan karena menambahkan variasi yang signifikan.
# Scatter plot pada ruang dua dimensi (PC1 dan PC2)
fviz_pca_ind(data_pca,
geom.ind = "point",
col.ind = "cos2",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE)
Scatter plot menunjukkan pola atau kluster berdasarkan dua komponen utama pertama.
Interpretasi Scatter Plot (Poin B):
Ruang Dimensi Dua (Dim 1 dan Dim 2): Scatter plot menggambarkan data dalam ruang dua dimensi berdasarkan komponen utama pertama (Dim 1) dan kedua (Dim 2), yang secara kumulatif menjelaskan sekitar 50.1% dari variasi total dalam data (32.7% oleh Dim 1 dan 17.4% oleh Dim 2).
Pola atau Kluster: Tampak bahwa titik-titik (representasi atlet) tersebar dengan beberapa pola tertentu: Titik di kuadran tertentu dapat merepresentasikan kelompok atlet yang memiliki kesamaan dalam performa. Konsentrasi titik di tengah menunjukkan atlet dengan performa rata-rata di semua cabang lomba. Titik-titik yang terletak jauh dari pusat (outlier) mungkin menunjukkan performa yang sangat baik atau buruk di beberapa cabang lomba.
Cos2 (Kualitas Representasi): Warna menunjukkan nilai cos2 (kuadrat korelasi), yang mengindikasikan seberapa baik posisi individu dijelaskan oleh dua komponen utama ini. Warna merah berarti individu dijelaskan dengan baik oleh Dim 1 dan Dim 2. Warna biru muda menunjukkan bahwa individu kurang terwakili oleh dua dimensi ini.
Kesimpulan: Plot ini membantu dalam mengidentifikasi pola umum atau kluster berdasarkan performa atlet dalam ruang PCA. Individu dengan cos2 tinggi (warna merah) lebih relevan dalam analisis dua dimensi, sementara individu dengan cos2 rendah perlu dimasukkan dalam analisis dimensi tambahan untuk representasi yang lebih baik.
# Visualisasi hubungan variabel
fviz_pca_var(data_pca,
col.var = "contrib",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE)
Grafik di atas menunjukkan bagaimana variabel (cabang olahraga) berkontribusi terhadap komponen utama.
Interpretasi (Poin C)
Dimensi Utama: Dim1 (32.7%) menjelaskan 32.7% dari variasi total data. Dim2 (17.4%) menjelaskan 17.4% dari variasi total data. Bersama-sama, kedua dimensi ini menjelaskan total 50.1% variasi dalam dataset.
Arah Panah: Panah menunjukkan variabel (jenis aktivitas atletik seperti 100m, 400m, shot put, dll.) dan hubungannya dengan dimensi utama. Semakin panjang panah, semakin kuat kontribusi variabel terhadap dimensi tersebut. Panah yang lebih dekat satu sama lain menunjukkan korelasi positif antara variabel.
Interpretasi Variabel: Dim1: Aktivitas seperti 100m, 110m hurdle, 400m, dan long jump sangat berkaitan dengan Dim1, menunjukkan bahwa Dim1 mungkin terkait dengan aspek kecepatan atau daya eksplosif. Dim2: Aktivitas seperti high jump, discus, shot put, dan pole vault memiliki kontribusi signifikan pada Dim2, menunjukkan bahwa Dim2 mungkin lebih berkaitan dengan kekuatan atau keterampilan teknik. 1500m memiliki kontribusi kecil ke kedua dimensi, yang menunjukkan hubungan lemah dengan aspek utama yang dijelaskan.
Warna Panah: Warna panah menunjukkan kontribusi relatif dari variabel terhadap dimensi (ditunjukkan oleh skala warna di samping). Variabel dengan warna merah/oranye memiliki kontribusi lebih tinggi dibandingkan dengan warna hijau atau biru.
Korelasi Variabel: Variabel yang berada di arah yang sama (seperti 100m dan 110m hurdle) menunjukkan korelasi positif. Variabel yang saling tegak lurus menunjukkan tidak adanya korelasi (misalnya, 400m dan shot put). Variabel yang berada di arah berlawanan menunjukkan korelasi negatif.
# Melihat kontribusi variabel terhadap komponen utama
var_contrib <- as.data.frame(data_pca$var$contrib)
var_contrib[order(-var_contrib$Dim.1), ]
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## 100m 18.34376957 2.016090 2.42049891 0.13532858 13.336184
## 110m.hurdle 17.02011495 3.013382 0.61083225 8.00327927 3.943110
## Long.jump 16.82246707 6.868559 2.36319121 0.98030118 0.196456
## 400m 14.11622887 18.666374 1.23027094 0.08124195 1.122971
## Shot.put 11.84353954 20.606785 0.03890276 3.43711486 1.804174
## High.jump 9.99788710 7.063694 4.79362526 1.73967752 45.053306
## Discus 9.32848615 21.162245 0.13131711 6.38020830 1.604724
## Javeline 2.34696326 5.784369 10.80714169 48.00480246 13.596270
## 1500m 0.10308808 12.945954 43.54331962 2.45537861 3.443657
## Pole.vault 0.07745541 1.872547 34.06090024 28.78266727 15.899147
Komponen utama yang paling terkait dengan performa atlet di cabang tertentu dapat diidentifikasi berdasarkan kontribusinya pada Dim.1, Dim.2, dst.
# Mengurutkan atlet berdasarkan Dim.1
athlete_scores <- as.data.frame(data_pca$ind$coord)
athlete_scores <- cbind(data$Athlets, athlete_scores)
colnames(athlete_scores)[1] <- "Athlet"
arrange(athlete_scores, desc(Dim.1)) %>% head(5)
## Athlet Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## 16 Karpov 4.619987 0.03999523 -0.0415858 -1.3135257 0.1877295
## 14 Sebrle 4.038449 1.36582606 -0.2899565 1.9411341 0.3769545
## 15 Clay 3.919365 0.83696136 0.2311753 1.4939721 -1.0376085
## 17 Macey 2.233461 1.04176620 -1.8643620 -0.7432135 0.9772701
## 18 Warners 2.168396 -1.80320025 0.8510173 -0.2845996 -0.1513946
Hasil di atas menunjukkan urutan lima atlet terbaik berdasarkan skor pada komponen utama pertama, dan Karpov merupakan atlet terbaik berdasarkan skor dilanjut Sebrle menempati peringkat dua dan Clay menempati peringkat tiga.