Analisis Biplot Happiness

Studi Kasus Analisis Biplot

Data

Tabel berikut memberikan gambaran tentang kondisi kebahagiaan di dunia saat ini dan menjelaskan faktor-faktor yang mempengaruhi variasi kebahagiaan di tingkat individu dan negara.

  • \(\text{Country_name}\): Nama negara.
  • \(\text{Log_GDP_per_capita}\): Logaritma natural dari GDP per kapita negara, disesuaikan dengan paritas daya beli (PPP) untuk memperhitungkan perbedaan biaya hidup antarnegara.
  • \(\text{Social_support}\): Rata-rata nasional dari respon biner (0 atau 1) terhadap pertanyaan tentang ketersediaan saudara atau teman yang dapat diandalkan dalam masa sulit.
  • \(\text{Healthy_life_expectancy}\): Rata-rata usia harapan hidup sehat bayi baru lahir, berdasarkan tingkat kematian dan harapan hidup pada berbagai usia.
  • \(\text{Freedom_to_make_life_choices}\): Rata-rata nasional dari respon terhadap kepuasan atas kebebasan untuk memilih apa yang akan dilakukan dalam hidup.
  • \(\text{Generosity}\): Residual hasil regresi rata-rata nasional dari respon terhadap pertanyaan tentang donasi amal terhadap GDP per kapita.
  • \(\text{Perceptions_of_corruption}\): Rata-rata nasional dari persepsi masyarakat terhadap tingkat korupsi di pemerintahan dan bisnis.
happiness <- read.table(header = TRUE, text = "
Country_name;Log_GDP_per_capita;Social_support;Healthy_life_expectancy;Freedom_to_make_life_choices;Generosity;Perceptions_of_corruption
Singapore;2.118;1.361;0.769;0.743;0.168;0.575
Philippines;1.232;1.146;0.441;0.826;0.099;0.136
Vietnam;1.331;1.267;0.539;0.843;0.094;0.160
Thailand;1.484;1.347;0.620;0.756;0.283;0.024
Malaysia;1.646;1.143;0.540;0.829;0.226;0.119
Indonesia;1.361;1.184;0.472;0.779;0.399;0.055
Laos;1.208;0.846;0.423;0.796;0.170;0.167
Myanmar;0.978;0.988;0.436;0.450;0.401;0.174
Cambodia;1.011;1.019;0.442;0.863;0.170;0.071
", sep = ";")

head(happiness)
##   Country_name Log_GDP_per_capita Social_support Healthy_life_expectancy
## 1    Singapore              2.118          1.361                   0.769
## 2  Philippines              1.232          1.146                   0.441
## 3      Vietnam              1.331          1.267                   0.539
## 4     Thailand              1.484          1.347                   0.620
## 5     Malaysia              1.646          1.143                   0.540
## 6    Indonesia              1.361          1.184                   0.472
##   Freedom_to_make_life_choices Generosity Perceptions_of_corruption
## 1                        0.743      0.168                     0.575
## 2                        0.826      0.099                     0.136
## 3                        0.843      0.094                     0.160
## 4                        0.756      0.283                     0.024
## 5                        0.829      0.226                     0.119
## 6                        0.779      0.399                     0.055

Agar nama-nama objek (nama negara) menjadi nama bagi masing-masing baris, maka dilakukan sesuai kode berikut:

rownames(happiness) <- happiness$Country_name
happiness_new <- happiness[,-1] 
head(happiness_new)
##             Log_GDP_per_capita Social_support Healthy_life_expectancy
## Singapore                2.118          1.361                   0.769
## Philippines              1.232          1.146                   0.441
## Vietnam                  1.331          1.267                   0.539
## Thailand                 1.484          1.347                   0.620
## Malaysia                 1.646          1.143                   0.540
## Indonesia                1.361          1.184                   0.472
##             Freedom_to_make_life_choices Generosity Perceptions_of_corruption
## Singapore                          0.743      0.168                     0.575
## Philippines                        0.826      0.099                     0.136
## Vietnam                            0.843      0.094                     0.160
## Thailand                           0.756      0.283                     0.024
## Malaysia                           0.829      0.226                     0.119
## Indonesia                          0.779      0.399                     0.055

Diperoleh ringkasan/deskripsi data sebagai berikut.

Eksplorasi Data

summary(happiness_new)
##  Log_GDP_per_capita Social_support  Healthy_life_expectancy
##  Min.   :0.978      Min.   :0.846   Min.   :0.4230         
##  1st Qu.:1.208      1st Qu.:1.019   1st Qu.:0.4410         
##  Median :1.331      Median :1.146   Median :0.4720         
##  Mean   :1.374      Mean   :1.145   Mean   :0.5202         
##  3rd Qu.:1.484      3rd Qu.:1.267   3rd Qu.:0.5400         
##  Max.   :2.118      Max.   :1.361   Max.   :0.7690         
##  Freedom_to_make_life_choices   Generosity     Perceptions_of_corruption
##  Min.   :0.450                Min.   :0.0940   Min.   :0.0240           
##  1st Qu.:0.756                1st Qu.:0.1680   1st Qu.:0.0710           
##  Median :0.796                Median :0.1700   Median :0.1360           
##  Mean   :0.765                Mean   :0.2233   Mean   :0.1646           
##  3rd Qu.:0.829                3rd Qu.:0.2830   3rd Qu.:0.1670           
##  Max.   :0.863                Max.   :0.4010   Max.   :0.5750

Dari hasil di atas, diperoleh statistik 5 serangkai dari masing-masing peubah.

Kemudian dilakukan visualisasi data menggunakan boxplot sebagai berikut:

Boxplot

boxplot(happiness_new)

Boxplot digunakan untuk memeriksa keberadaan pencilan dalam suatu peubah. Terlihat dari plot di atas, bahwa peubah Freedom_to_make_life_choices memiliki pencilan bawah. Sedangkan variabel Log_GDP_per_capita, Healthy_life_expectancy, dan Perceptions_of_corruption memiliki pencilan atas. Sisa peubahnya (Social_support dan Generosity) tidak memiliki pencilan. Selanjutnya, dilakukan eksplorasi mengenai korelasi antar peubah dengan fungsi corrplot().

Plot Korelasi

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

Diperoleh bahwa peubah \(\text{Healthy_life_expectancy}\) berkorelasi secara positif dengan \(\text{Log_GDP_per_capita dan Social_support}\). Sementara itu, peubah \(\text{Generosity}\) berkorelasi negatif dengan peubah \(\text{Log_GDP_per_capita dan Social_support}\), \(\text{Healthy_life_expectancy}\), \(\text{Freedom_to_make_life_choices}\), dan \(\text{Perception_of_corruption}\).

Analisis biplot

Analisis ini menggunakan beberapa package antara lain:

  • FactoMineR untuk membentuk fungsi komponen utama
  • factoextra untuk membentuk grafik biplot
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

Penskalaan/Pengoreksian Data

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

df = scale(happiness_new,scale = FALSE)
head(df)
##             Log_GDP_per_capita Social_support Healthy_life_expectancy
## Singapore           0.74366667    0.216444444              0.24877778
## Philippines        -0.14233333    0.001444444             -0.07922222
## Vietnam            -0.04333333    0.122444444              0.01877778
## Thailand            0.10966667    0.202444444              0.09977778
## Malaysia            0.27166667   -0.001555556              0.01977778
## Indonesia          -0.01333333    0.039444444             -0.04822222
##             Freedom_to_make_life_choices   Generosity Perceptions_of_corruption
## Singapore                         -0.022 -0.055333333               0.410444444
## Philippines                        0.061 -0.124333333              -0.028555556
## Vietnam                            0.078 -0.129333333              -0.004555556
## Thailand                          -0.009  0.059666667              -0.140555556
## Malaysia                           0.064  0.002666667              -0.045555556
## Indonesia                          0.014  0.175666667              -0.109555556

Pembentukan PCA

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.

Pembentukan Biplot

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

Dari grafik di atas, diperoleh informasi sebagai berikut:

Keragaman Peubah - Peubah \(\text{Log_GDP_per_capita}\) memiliki keragaman yang lebih besar dibandingkan peubah lainnya. - Peubah \(\text{Healthy_life_expectancy}\) memiliki keragaman terkecil.

Keeratan Hubungan Antar Peubah - Peubah \(\text{Log_GDP_per_capita}\) dan \(\text{Healthy_life_expectancy}\) memiliki korelasi yang positif terlihat dari sudut yang terbentuk membentuk sudut < 90 derajat. - Peubah \(\text{Log_GDP_per_capita}\) dan \(\text{Social_support}\) juga memiliki korelasi yang positif terlihat sudutnya < 90 derajat. - Korelasi negatif dimiliki oleh hubungan peubah \(\text{Generosity}\) dan \(\text{Freedom_to_make_life_choices}\).

Kemiripan Antar Objek dan Posisi Relatif Objek dengan Peubah Penciri - Thailand dan Malaysia digambarkan dalam posisi yang berdekatan, artinya keduanya memiliki karakteristik yang mirip. - Vietnam dicirikan dengan peubah \(\text{Freedom_to_make_life_choices}\) yang bernilai cukup tinggi. - Myanmar memiliki \(\text{Freedom_to_make_life_choices}\) di bawah rata-rata.

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).

Evaluasi Kebaikan Biplot

eigen_values <- get_eigenvalue(df_pca)
eigen_values
##         eigenvalue variance.percent cumulative.variance.percent
## Dim.1 0.1451644266       74.2759526                    74.27595
## Dim.2 0.0219251029       11.2183676                    85.49432
## Dim.3 0.0179719695        9.1956768                    94.69000
## Dim.4 0.0084595886        4.3284985                    99.01850
## Dim.5 0.0011969168        0.6124237                    99.63092
## Dim.6 0.0007213289        0.3690807                   100.00000

Kebaikan biplot dilihat berdasarkan cumulative.variance.percent dari nilai eigen kedua. (Informasi keragaman yang mampu dijelaskan oleh biplot adalah sebesar 85.49%. Artinya biplot cukup mampu memberikan informasi dari 6 peubah untuk menilai posisi relatif 9 negara).

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

Scree Plot

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

Informasi keragaman yang mampu dijelaskan oleh biplot adalah sebesar 85.49%. Artinya biplot mampu memberikan informasi dari 6 peubah untuk menilai posisi relatif 9 negara berdasarkan kualitasnya.