Data ini berisi statistik pertandingan Piala Dunia FIFA 2018, mencakup berbagai aspek performa setiap tim dalam setiap laga. Beberapa variabel yang dicatat dalam dataset ini antara lain jumlah gol yang dicetak, persentase penguasaan bola, jumlah upaya mencetak gol (baik yang tepat sasaran maupun tidak), serta jumlah tendangan sudut dan penyelamatan. Selain itu, ada juga data mengenai akurasi umpan, jarak yang ditempuh pemain, dan pelanggaran yang dilakukan, termasuk jumlah kartu kuning dan merah.
Penelitian ini bertujuan untuk menganalisis hubungan antara variabel-variabel tersebut, misalnya, apakah tim yang memiliki penguasaan bola lebih besar cenderung mencetak gol lebih banyak, atau apakah jumlah upaya mencetak gol berhubungan dengan hasil akhir pertandingan. Dengan menggunakan analisis faktor dan visualisasi biplot, penelitian ini mencoba mengidentifikasi pola performa tim dan faktor-faktor utama yang mungkin mempengaruhi peluang kemenangan.
Hasil dari analisis ini diharapkan bisa memberikan wawasan yang lebih mendalam tentang elemen-elemen permainan yang berkontribusi signifikan terhadap hasil pertandingan. Wawasan ini juga dapat berguna bagi pelatih dan analis dalam mengevaluasi strategi dan performa tim selama turnamen.
Data diambil dari web Kaggle.com (https://www.kaggle.com/code/badslam/analisis-faktor-biplot/input?select=FIFA+2018+Statistics.csv)
Tahapan analisis MANOVA dalam penelitian ini dilakukan melalui beberapa langkah sistematis. Pertama, data dengan skala numerik dipilih untuk memastikan variabel yang dianalisis relevan dan memenuhi syarat statistik. Selanjutnya, analisis plot data dilakukan untuk memahami pola awal dari data dan mengidentifikasi potensi hubungan antar variabel. Setelah itu, Uji Bartlett diterapkan untuk menguji homogenitas matriks varians-kovarians, yang penting untuk menentukan apakah data layak digunakan dalam analisis faktor.
Setelah Uji Bartlett, dilakukan Uji KMO (Kaiser-Meyer-Olkin) dan MSA (Measure of Sampling Adequacy) untuk memastikan kecukupan sampel dan bahwa data memiliki korelasi parsial yang cukup untuk dilanjutkan ke tahap analisis lebih lanjut. Ekstraksi faktor dilakukan dengan metode Principal Component Analysis (PCA), di mana nilai eigen dan vektor eigen dihitung untuk menentukan faktor utama yang dapat mewakili sekumpulan variabel terkait. Untuk memaksimalkan interpretasi, rotasi faktor dilakukan dengan metode Varimax, yang membantu mengidentifikasi struktur faktor yang lebih jelas dan mudah diinterpretasikan. Tahap terakhir adalah interpretasi, di mana faktor-faktor utama yang ditemukan dianalisis untuk memahami hubungan dan pengaruh variabel dalam data penelitian ini
MANOVA adalah metode statistik yang digunakan untuk menguji perbedaan rata-rata beberapa variabel dependen secara simultan berdasarkan satu atau lebih variabel independen. MANOVA memperluas konsep ANOVA (Analysis of Variance) dengan mempertimbangkan korelasi antar variabel dependen, sehingga lebih efektif dalam mengidentifikasi perbedaan pola yang mungkin tidak terdeteksi jika variabel dependen dianalisis secara terpisah. Teknik ini sering digunakan dalam penelitian sosial, psikologi, dan biologi untuk mengevaluasi pengaruh beberapa faktor terhadap berbagai respons.
Uji Bartlett digunakan untuk menguji asumsi homogenitas varians-kovarians antar kelompok dalam analisis faktor atau MANOVA. Uji ini membantu menentukan apakah matriks korelasi antar variabel memiliki korelasi yang cukup kuat untuk dilanjutkan ke analisis faktor. Hasil uji yang signifikan menunjukkan bahwa matriks korelasi berbeda dari matriks identitas, yang berarti data memiliki cukup korelasi antar variabel dan dapat dianalisis lebih lanjut.
Uji KMO (Kaiser-Meyer-Olkin) dan MSA (Measure of Sampling Adequacy) adalah metode untuk mengukur kecukupan sampel dalam analisis faktor. Uji KMO menghasilkan nilai antara 0 hingga 1, di mana nilai mendekati 1 menunjukkan bahwa data sesuai untuk analisis faktor karena korelasi antar variabel cukup tinggi. Sedangkan MSA mengukur kecukupan sampel pada tingkat variabel individu. Uji ini berguna untuk menilai apakah data yang digunakan cukup baik untuk mendapatkan hasil yang valid dalam analisis faktor.
PCA adalah teknik analisis data yang bertujuan untuk mereduksi dimensi data dengan mengidentifikasi komponen utama yang paling berkontribusi terhadap variabilitas data. Dalam PCA, vektor eigen dan nilai eigen dihitung untuk menentukan arah dan proporsi varians yang dijelaskan oleh setiap komponen utama. Dengan menyederhanakan struktur data tanpa kehilangan informasi yang signifikan, PCA membantu dalam mengidentifikasi pola-pola penting dalam dataset besar dan digunakan secara luas dalam bidang seperti pengenalan pola, genomika, dan ekonomi.
# Load library yang diperlukan
library(readxl)
library(corrplot)
library(ggplot2)
library(dplyr)
library(tidyr)
library(psych)
library(Hmisc)
library(REdaS)
readxl:
Digunakan untuk membaca file Excel (.xls, .xlsx) ke dalam R. Library ini memungkinkan Anda untuk memuat data dari file Excel tanpa membutuhkan perangkat lunak Microsoft Excel.
corrplot:
Library untuk membuat visualisasi matriks korelasi. Fungsi utama dari corrplot adalah untuk menggambarkan korelasi antar variabel dalam bentuk grafik yang mudah dipahami, dengan berbagai opsi untuk kustomisasi.
ggplot2:
Merupakan salah satu paket visualisasi data yang paling populer di R, digunakan untuk membuat berbagai jenis grafik. ggplot2 menggunakan sistem grammar of graphics untuk membuat visualisasi yang kuat dan fleksibel.
dplyr:
Library untuk manipulasi data. dplyr menyediakan berbagai fungsi yang efisien dan mudah dipahami untuk melakukan operasi seperti filter, seleksi, agregasi, dan transformasi data dalam bentuk data frame atau tibble.
tidyr:
Library untuk merapikan data (tidy data). tidyr membantu Anda mengubah data ke format yang lebih mudah untuk dianalisis, seperti mengubah data lebar menjadi panjang dan sebaliknya.
psych:
Digunakan untuk analisis psikometrik, termasuk analisis faktor, uji reliabilitas, dan lainnya. psych menyediakan fungsi-fungsi untuk analisis statistik yang terkait dengan psikologi, seperti analisis faktor, uji validitas, dan sebagainya.
Hmisc:
Paket ini menyediakan berbagai fungsi untuk analisis data, termasuk untuk imputasi data yang hilang, analisis deskriptif, dan statistik inferensial. Hmisc sering digunakan untuk eksplorasi data dan pemrosesan data dalam bentuk yang lebih kompleks.
REdaS:
Merupakan paket untuk analisis statistik data ekonomi dan sosial. REdaS menyediakan alat untuk analisis deskriptif, uji statistik, regresi, dan visualisasi yang sering digunakan dalam bidang ekonomi dan sosiologi.
# Membaca data
data <- read.csv("C:\\Users\\asus\\Downloads\\bola2018\\bola2018.csv")
df <- as.data.frame(data[,c(4:20,22)])
df[is.na(df)] <- 0
head(df)
## Goal.Scored Ball.Possession.. Attempts On.Target Off.Target Blocked Corners
## 1 5 40 13 7 3 3 6
## 2 0 60 6 0 3 3 2
## 3 0 43 8 3 3 2 0
## 4 1 57 14 4 6 4 5
## 5 0 64 13 3 6 4 5
## 6 1 36 8 2 5 1 2
## Offsides Free.Kicks Saves Pass.Accuracy.. Passes Distance.Covered..Kms.
## 1 3 11 0 78 306 118
## 2 1 25 2 86 511 105
## 3 1 7 3 78 395 112
## 4 1 13 3 86 589 111
## 5 0 14 2 86 433 101
## 6 0 22 2 86 194 100
## Fouls.Committed Yellow.Card Yellow...Red Red X1st.Goal
## 1 22 0 0 0 12
## 2 10 0 0 0 0
## 3 12 2 0 0 0
## 4 6 0 0 0 89
## 5 22 1 0 0 0
## 6 14 3 0 0 90
# Membuat layout untuk menampilkan multiple plots
par(mfrow = c(3, 3))
# Melakukan loop untuk setiap kolom dan membuat histogram
for (i in colnames(df)) {
hist(df[, i], prob = TRUE, main = paste("", i), xlab = i, col = "red")
lines(density(df[, i]))
}
# Merestore layout ke default
par(mfrow = c(1, 1))
# Uji Bartlett
bartlett_result <- bart_spher(df)
bartlett_result # Hasil uji Bartlett
## Bartlett's Test of Sphericity
##
## Call: bart_spher(x = df)
##
## X2 = 1305.886
## df = 153
## p-value < 2.22e-16
Hipotesis:
H0: Tidak terdapat korelasi yang signifikan antar variabel
H1: Terdapat korelasi yang signifikan antar variabel
Keputusan:
p−value(0.0000) < α(0.05), maka gagal tolak H0
Kesimpulan:
Berdasarkan output diketahui nilai signifikansi sebesar 2.22e-16 atau 0.000 < 0.05 sehingga dapat disimpulkan bahwa antar variabel saling berkorelasi dan layak digunakan dalam analisis faktor.
# Uji KMO dan MSA
kmo_result <- KMO(df)
kmo_result # Hasil uji KMO
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = df)
## Overall MSA = 0.56
## MSA for each item =
## Goal.Scored Ball.Possession.. Attempts
## 0.62 0.74 0.52
## On.Target Off.Target Blocked
## 0.37 0.35 0.43
## Corners Offsides Free.Kicks
## 0.93 0.49 0.53
## Saves Pass.Accuracy.. Passes
## 0.78 0.83 0.70
## Distance.Covered..Kms. Fouls.Committed Yellow.Card
## 0.22 0.68 0.60
## Yellow...Red Red X1st.Goal
## 0.49 0.52 0.45
MSA (measure of sampling adequacy) adalah ukuran untuk mengecualikan variabel. Jika MSA < 0,5 maka variabel tersebut harus dihilangkan. Variabel dengan MSA > 0,6 cocok, variabel dengan MSA > 0,8 sangat cocok untuk analisis faktor. Hasilnya memberitahu kita untuk menghilangkan variabel “On Target”, “Off Target”, “Blocked”, “Offsides”, “Distance Covered (Kms)”, “Yellow Red”, “Red”, “1st Goal” Membuat data baru dengan menghilangkan variabel yang sudah ditentukan
# Memilih variabel yang relevan
df1 <- df[,c("Goal.Scored", "Ball.Possession..", "Attempts",
"Corners", "Free.Kicks", "Saves", "Pass.Accuracy..",
"Passes", "Fouls.Committed", "Yellow.Card", "Red")]
# Menghitung korelasi
df1_corr <- cor(df1)
round(df1_corr, 2)
## Goal.Scored Ball.Possession.. Attempts Corners Free.Kicks
## Goal.Scored 1.00 0.03 0.14 0.04 0.05
## Ball.Possession.. 0.03 1.00 0.54 0.54 0.27
## Attempts 0.14 0.54 1.00 0.69 0.14
## Corners 0.04 0.54 0.69 1.00 0.09
## Free.Kicks 0.05 0.27 0.14 0.09 1.00
## Saves -0.12 -0.29 -0.27 -0.23 -0.23
## Pass.Accuracy.. 0.14 0.71 0.40 0.33 0.13
## Passes 0.04 0.88 0.58 0.52 0.18
## Fouls.Committed 0.03 -0.30 -0.25 -0.17 0.08
## Yellow.Card -0.05 -0.21 -0.19 -0.17 -0.03
## Red -0.09 0.02 0.01 0.12 -0.10
## Saves Pass.Accuracy.. Passes Fouls.Committed Yellow.Card
## Goal.Scored -0.12 0.14 0.04 0.03 -0.05
## Ball.Possession.. -0.29 0.71 0.88 -0.30 -0.21
## Attempts -0.27 0.40 0.58 -0.25 -0.19
## Corners -0.23 0.33 0.52 -0.17 -0.17
## Free.Kicks -0.23 0.13 0.18 0.08 -0.03
## Saves 1.00 -0.19 -0.26 0.07 0.01
## Pass.Accuracy.. -0.19 1.00 0.69 -0.33 -0.11
## Passes -0.26 0.69 1.00 -0.35 -0.22
## Fouls.Committed 0.07 -0.33 -0.35 1.00 0.43
## Yellow.Card 0.01 -0.11 -0.22 0.43 1.00
## Red 0.02 0.01 0.01 0.01 0.03
## Red
## Goal.Scored -0.09
## Ball.Possession.. 0.02
## Attempts 0.01
## Corners 0.12
## Free.Kicks -0.10
## Saves 0.02
## Pass.Accuracy.. 0.01
## Passes 0.01
## Fouls.Committed 0.01
## Yellow.Card 0.03
## Red 1.00
# Membuat palet warna untuk plot korelasi
col <- colorRampPalette(c("#1E90FF", "#00FF00", "#FFFF00", "#FF7F00", "#FF0000"))
# Membuat plot korelasi
corrplot(
round(df1_corr, 2),
method = "color",
col = col(200),
type = "upper",
order = "hclust",
addCoef.col = "black",
tl.col = "black",
tl.srt = 45,
diag = FALSE
)
# Menentukan jumlah faktor
nfactors <- 3
nvars <- dim(df1_corr)[1]
# Menghitung Nilai Eigen
eigen <- eigen(df1_corr)
eigen
## eigen() decomposition
## $values
## [1] 3.8099266 1.3578060 1.1639536 0.9946471 0.9078500 0.8284865 0.7622878
## [8] 0.4939062 0.2925618 0.2829044 0.1056700
##
## $vectors
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.06766655 0.232464108 -0.40405790 0.75259967 0.22436017 0.28148191
## [2,] 0.45896384 0.061235843 0.06021018 -0.19650378 0.17703466 0.06303241
## [3,] 0.38830535 0.062651753 0.10129892 0.27525901 -0.16619851 -0.38494984
## [4,] 0.36135933 0.040216660 0.28615113 0.25132218 -0.23904800 -0.42117174
## [5,] 0.13443759 0.472895851 -0.24375725 -0.41744134 -0.35228863 0.18905207
## [6,] -0.20510603 -0.374443978 0.08934961 -0.06059140 0.42952226 -0.28881143
## [7,] 0.38498842 -0.000740395 -0.01516833 -0.12335536 0.48800585 0.25267630
## [8,] 0.45873745 -0.012817784 0.05310529 -0.13908921 0.21160544 0.01466681
## [9,] -0.23401882 0.550745754 0.23756279 0.06743445 0.06993725 -0.18327903
## [10,] -0.17232584 0.501098949 0.36798365 -0.05800461 0.44162251 -0.08506017
## [11,] 0.01235860 -0.135067847 0.69185892 0.18880349 -0.20520837 0.60595647
## [,7] [,8] [,9] [,10] [,11]
## [1,] -0.20393717 -0.07201761 0.137252059 -0.12814585 -0.010328748
## [2,] -0.06566003 0.21033069 0.166999212 -0.31821167 -0.728252264
## [3,] -0.04607875 -0.27995243 -0.699393890 -0.02994166 -0.113628588
## [4,] -0.08411300 -0.02373255 0.618389130 0.29483056 0.106107348
## [5,] -0.49727298 -0.32442602 0.043639841 0.05800710 0.083494297
## [6,] -0.70877222 -0.17928326 0.022080226 -0.05378938 -0.016904280
## [7,] 0.01880629 0.04383249 -0.154400333 0.70826341 0.081180323
## [8,] -0.00679026 0.17621505 -0.006635834 -0.51083251 0.655855132
## [9,] -0.26093049 0.65592763 -0.189922438 0.08277032 0.034657786
## [10,] 0.28330518 -0.51669522 0.117128346 -0.13069467 -0.011205545
## [11,] -0.21567414 -0.06367968 -0.075174163 -0.04148918 0.007194075
Berdasarkan output, faktor yang memiliki nilai eigen ≥ 1 adalah komponen 1 hingga 3 yaitu sebanyak 3 faktor, maka proses pemfaktoran dilakukan hingga 3 faktor.
# Melakukan analisis faktor
factors <- fa(df1_corr, nfactors=nfactors, rotate="varimax", scores=TRUE)
# Membuat plotting faktor dan variabel
loadings_mat <- as.data.frame(matrix(nrow = nvars, ncol = nfactors))
loadings_mat$Variable <- colnames(df1)
for (i in 1:nfactors) {
for (j in 1:nvars) {
loadings_mat[j, i] <- factors$loadings[j, i]
}
}
colnames(loadings_mat) <- c("Factor1", "Factor2", "Factor3", "Variable")
loadings_mat_gather <- loadings_mat %>% gather("Factor", "Value", 1:nfactors)
# Membuat plot dengan ggplot2
g1 <- ggplot(loadings_mat_gather, aes(Variable, abs(Value), fill=Value)) +
facet_wrap(~ Factor, nrow=1) +
geom_bar(stat="identity") +
coord_flip() +
scale_fill_gradient2(name = "Loading",
high = "blue", mid = "white", low = "red",
midpoint=0, guide=FALSE) +
xlab("Variable") +
ylab("Factor Loading") +
ggtitle("Factors") +
theme(axis.text.x=element_text(size=10),
axis.title=element_text(size=12, face="bold")) +
theme(plot.title = element_text(size=12)) +
theme_bw(base_size=12)
print(g1)
Dari hasil Analisis Faktor Eksplorasi ditemukan ada tiga faktor dari
data.
Faktor 1 : Game Control (‘Ball Possesion’, ‘Passes’, ‘Pass Accuracy’ dan ‘Attempts’)
Faktor 2 : Discipline (‘Fouls Committed’)
Faktor 3 : Attacking (‘Corners’)
Sisa variabel ‘Saves’ dan ‘Red’ dapat terjelaskan oleh faktor lain, namun karena kita hanya memilih 3 faktor, faktor tersebut tidak dapat terlihat. Kita juga dapat melihat bahwa variabel tersebut memiliki hubungan negatif di beberapa faktor
factors
## Factor Analysis using method = minres
## Call: fa(r = df1_corr, nfactors = nfactors, rotate = "varimax", scores = TRUE)
## Standardized loadings (pattern matrix) based upon correlation matrix
## MR1 MR2 MR3 h2 u2 com
## Goal.Scored 0.12 0.02 0.02 0.014 0.9856 1.1
## Ball.Possession.. 0.91 -0.28 0.09 0.913 0.0868 1.2
## Attempts 0.52 -0.23 0.48 0.551 0.4494 2.4
## Corners 0.45 -0.16 0.88 0.996 0.0040 1.6
## Free.Kicks 0.31 0.09 -0.03 0.103 0.8974 1.2
## Saves -0.33 0.02 -0.11 0.120 0.8804 1.2
## Pass.Accuracy.. 0.68 -0.30 -0.03 0.557 0.4428 1.4
## Passes 0.83 -0.35 0.12 0.834 0.1655 1.4
## Fouls.Committed -0.02 1.00 0.00 0.996 0.0038 1.0
## Yellow.Card -0.07 0.42 -0.08 0.189 0.8108 1.1
## Red -0.02 0.00 0.12 0.015 0.9853 1.1
##
## MR1 MR2 MR3
## SS loadings 2.67 1.56 1.06
## Proportion Var 0.24 0.14 0.10
## Cumulative Var 0.24 0.38 0.48
## Proportion Explained 0.51 0.29 0.20
## Cumulative Proportion 0.51 0.80 1.00
##
## Mean item complexity = 1.3
## Test of the hypothesis that 3 factors are sufficient.
##
## df null model = 55 with the objective function = 4.21
## df of the model are 25 and the objective function was 0.26
##
## The root mean square of the residuals (RMSR) is 0.04
## The df corrected root mean square of the residuals is 0.06
##
## Fit based upon off diagonal values = 0.98
Dilihat dari Proportion variance, faktor pertama mampu menjelaskan keragaman dari 18 variabel sebesar 24%, faktor kedua sebesar 14% dan faktor ketiga sebesar 10%
Berdasarkan hasil Analisis Faktor Eksploratori (EFA) pada variabel-variabel Statistik Pertandingan FIFA 2018, dapat disimpulkan bahwa terdapat tiga faktor utama yang mampu menggambarkan hubungan antarvariabel tersebut. Faktor pertama, dinamakan “Kontrol Permainan” (Game Control), mencakup variabel seperti ‘Penguasaan Bola’ (Ball Possession), ‘Jumlah Umpan’ (Passes), ‘Akurasi Umpan’ (Pass Accuracy), dan ‘Upaya Mencetak Gol’ (Attempts). Faktor ini menggambarkan kemampuan tim dalam mengontrol jalannya pertandingan melalui penguasaan bola, akurasi umpan, serta jumlah usaha untuk mencetak gol.
Faktor kedua, yang dinamakan “Disiplin” (Discipline), hanya terdiri dari satu variabel, yaitu ‘Pelanggaran yang Dilakukan’ (Fouls Committed). Faktor ini mencerminkan sejauh mana tim menjaga kedisiplinan dalam bermain sesuai aturan.
Faktor ketiga, dinamakan “Penyerangan” (Attacking), terdiri dari variabel ‘Tendangan Sudut’ (Corners), yang menunjukkan seberapa sering tim mendapatkan peluang melalui tendangan sudut.
Meskipun terdapat dua variabel lain, yaitu ‘Penyelamatan’ (Saves) dan ‘Kartu Merah’ (Red), yang sebenarnya memiliki hubungan dengan faktor-faktor lainnya, keduanya tidak ditampilkan dalam hasil akhir karena penelitian ini hanya memfokuskan pada tiga faktor utama.
Kesimpulan dari analisis faktor eksploratori ini memberikan pemahaman menyeluruh mengenai variabel-variabel yang saling berkaitan dan membentuk faktor-faktor baru yang menggambarkan aspek-aspek penting dalam menentukan “Man of the Match” di FIFA 2018. Proporsi varians yang dijelaskan oleh masing-masing faktor juga menunjukkan sejauh mana masing-masing faktor signifikan dalam menjelaskan keragaman total data.