UAS TPG

Analisis Biplot

Menyiapkan data

Data yang digunakan merupakan data rata-rata tiap sekolah tiap kabupaten/kota di DI Yogyakarta. Data hanya terdiri dari 5 baris (5 kab/kota) dengan 8 peubah yang digunakan.

data <- readxl::read_excel("C:\\Users\\ACER\\Documents\\Kuliah\\Semester 5\\Teknik Peubah Ganda\\TPG UAS\\data UAS_APG_2023.xlsx", sheet=4)
data <- data.frame(data)
rownames(data) <- data$`Kab/Kota`
univs_new <- data[,-1] #hapus kolom nama universitas
head(univs_new)
##         SI       SP      SKL      SPT      SSP      SPL       SB      SPN
## 1 89.06904 85.56761 82.67606 83.22359 83.71256 88.96655 87.50587 87.77127
## 2 87.87385 84.11055 80.86239 82.10092 81.64850 87.38073 85.68005 86.73707
## 3 89.08987 85.57765 82.59091 83.20265 84.16427 89.10606 87.41572 87.89524
## 4 88.91983 85.33485 82.54015 83.12226 83.67771 88.81022 87.38352 87.82400
## 5 89.14782 85.59370 82.45669 83.08268 84.01323 88.96260 87.20997 88.01658
Melakukan eksplorasi data

Diperoleh ringkasan/deskripsi data sebagai berikut.

summary(univs_new)
##        SI              SP             SKL             SPT       
##  Min.   :87.87   Min.   :84.11   Min.   :80.86   Min.   :82.10  
##  1st Qu.:88.92   1st Qu.:85.33   1st Qu.:82.46   1st Qu.:83.08  
##  Median :89.07   Median :85.57   Median :82.54   Median :83.12  
##  Mean   :88.82   Mean   :85.24   Mean   :82.23   Mean   :82.95  
##  3rd Qu.:89.09   3rd Qu.:85.58   3rd Qu.:82.59   3rd Qu.:83.20  
##  Max.   :89.15   Max.   :85.59   Max.   :82.68   Max.   :83.22  
##       SSP             SPL              SB             SPN       
##  Min.   :81.65   Min.   :87.38   Min.   :85.68   Min.   :86.74  
##  1st Qu.:83.68   1st Qu.:88.81   1st Qu.:87.21   1st Qu.:87.77  
##  Median :83.71   Median :88.96   Median :87.38   Median :87.82  
##  Mean   :83.44   Mean   :88.65   Mean   :87.04   Mean   :87.65  
##  3rd Qu.:84.01   3rd Qu.:88.97   3rd Qu.:87.42   3rd Qu.:87.90  
##  Max.   :84.16   Max.   :89.11   Max.   :87.51   Max.   :88.02
boxplot(univs_new)

oxplot digunakan untuk memeriksa keberadaan pencilan dalam suatu peubah. Terlihat dari plot di atas, bahwa semua peubah memiliki pencilan bawah. Selanjutnya, dilakukan eksplorasi mengenai korelasi antar peubah dengan fungsi corrplot().

library(corrplot)
## Warning: package 'corrplot' was built under R version 4.4.3
## corrplot 0.95 loaded
corrplot(cor(univs_new), method = "number", is.cor = T, type = "lower", diag=F)

Diperoleh bahwa antar peubah memiliki korelasi positif yang sangat kuat, yaitu mendekati 100%.

Analisis biplot

Analisis ini menggunakan beberapa package antara lain:

  • FactoMineR untuk membentuk fungsi komponen utama
  • factoextra untuk membentuk grafik biplot
library(FactoMineR)
library(factoextra)
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
  1. Penskalaan/pengoreksian data

Sebelum melakukan analisis biplot, dilakukan pengoreksian data (matriks X) terhadap rataannya menggunakan fungsi scale().

df = scale(univs_new,scale = FALSE)
head(df)
##               SI          SP        SKL        SPT        SSP        SPL
## [1,]  0.24895442  0.33073315  0.4508184  0.2771715  0.2693049  0.3213170
## [2,] -0.94622993 -1.12632202 -1.3628526 -0.8455027 -1.7947523 -1.2644983
## [3,]  0.26979059  0.34077903  0.3656712  0.2562314  0.7210139  0.4608284
## [4,]  0.09974654  0.09798153  0.3149081  0.1758427  0.2344591  0.1649867
## [5,]  0.32773838  0.35682831  0.2314550  0.1362571  0.5699745  0.3173662
##              SB        SPN
## [1,]  0.4668438  0.1224402
## [2,] -1.3589789 -0.9117606
## [3,]  0.3766950  0.2464048
## [4,]  0.3444911  0.1751676
## [5,]  0.1709490  0.3677480
  1. Pembentukan fungsi komponen utama dan grafik biplot

Pembentukan fungsi komponen utama dilakukan dengan menggunakan fungsi PCA()

df_pca = PCA(df, graph = F,scale.unit = F)

Kemudian dilakukan pembentukan grafik biplot dengan fungsi fviz_pca_biplot() yang membutuhkan argumen berupa fungsi komponen utama yang telah dibentuk.

fviz_pca_biplot(df_pca,repel = T) + theme_classic()

Dari grafik di atas, diperoleh informasi sebagai berikut:

  1. Keragaman peubah
    • Peubah SSPmemiliki keragaman yang lebih besar/paling besar dibandingkan peubah lainnya.
    • Peubah SI memiliki keragaman terkecil.
  2. Keeratan hubungan antar peubah
    • Antar semua peubah memiliki korelasi yang positif terlihat dari sudut yang terbentuk membentuk sudut < 90 derajat.
    • Beberapa peubah memiliki korelasi 1 terlihat dari sudut yang sangat kecil bahkan sudut 0 derata. Contohnya peubah SI dan SPN
  3. Kemiripan antar objek dan Posisi relatif objek dengan peubah penciri
    • Kabupaten Bantul (1) dan Kabupaten Sleman (4) digambarkan dalam posisi yang berdekatan, artinya keduanya memiliki karakteristik yang mirip.
    • Kabupaten Gunung Kidul (2)memiliki SI, SP, SKL, SPT, SSP, SPL, SB, SPN dibawah rata-rata
    • Kabupaten Kulon Progo (3) digambarkan memiliki SSP yang tinggi dibanding kab/kota lainnya.
    • Kota Yogyakarta (5) digambarkan memiliki nilai peubah yang tinggi pada peubah SI, SPN, dan SSP

Selanjutnya untuk mengevaluasi kebaikan dari biplot yang terbentuk, dilakukan dengan melihat persentase kumulatif keragaman yang diperoleh dari dua nilai eigen teratas (karena biplot yang terbentuk dua dimensi).

Kebaikan biplot dilihat berdasarkan cumulative.variance.percent dari nilai eigen kedua. (Informasi keragaman yang mampu dijelaskan oleh biplot adalah sebesar 98.41 %. Artinya biplot mampu memberikan informasi dari 8 peubah untuk menilai posisi relatif 5 Kab/Kota di DI Yogyakarta)

eigen_values <- get_eigenvalue(df_pca)
eigen_values
##        eigenvalue variance.percent cumulative.variance.percent
## Dim.1 3.089316175       98.4122632                    98.41226
## Dim.2 0.039084986        1.2450788                    99.65734
## Dim.3 0.006304366        0.2008299                    99.85817
## Dim.4 0.004452210        0.1418282                   100.00000

Selain itu, dapat melihat presentase keragaman biplot dengan grafik plot scree dengan menggunakan fviz_eig() berikut.

fviz_eig(df_pca, addlabels = T) + theme_classic()