Tugas Praktikum Visdat

Nama: Cindy Indriyani

NIM: G1401221095

Package Installation

library(tidyverse) #Include beberapa packages termasuk ggplot
library(dplyr)
library(reshape2)
library(pacman)
library(RColorBrewer)
library(knitr)
library(ggcorrplot)
library(corrplot)
library(rlang)
library(viridis)
library(ggplot2)
library(ggridges)
library(treemap)
library(treemapify)
library(GGally) 
library(plotly)
library(readxl)

Visualisasi Antar Peubah Numerik

Import Data

Data yang digunakan dalam visualisasi data antar peubah numerik adalah data indeks kecerdasan buatan global. Data bersumber dari kaggle.com.

Sumber data indeks kecerdasan buatan global: https://www.kaggle.com/datasets/katerynameleshenko/ai-index

data.ai <- read.csv("C:/SEMESTER 4/VISDAT/AI.csv")
str(data.ai)
## 'data.frame':    62 obs. of  13 variables:
##  $ Country              : chr  "United States of America" "China" "United Kingdom" "Canada" ...
##  $ Talent               : num  100 16.5 39.6 31.3 35.8 ...
##  $ Infrastructure       : num  94 100 71.4 77 67.6 ...
##  $ Operating.Environment: num  64.6 91.6 74.7 93.9 82.4 ...
##  $ Research             : num  100 71.4 36.5 30.7 32.6 ...
##  $ Development          : num  100 80 25 25.8 28 ...
##  $ Government.Strategy  : num  77.4 94.9 82.8 100 43.9 ...
##  $ Commercial           : num  100 44 18.9 14.9 27.3 ...
##  $ Total.score          : num  100 62.9 40.9 40.2 39.9 ...
##  $ Region               : chr  "Americas" "Asia-Pacific" "Europe" "Americas" ...
##  $ Cluster              : chr  "Power players" "Power players" "Traditional champions" "Traditional champions" ...
##  $ Income.group         : chr  "High" "Upper middle" "High" "High" ...
##  $ Political.regime     : chr  "Liberal democracy" "Closed autocracy" "Liberal democracy" "Liberal democracy" ...

Penjelasan Peubah

  1. Total score (Y): Skor indeks kecerdasan buatan.

  2. Talent: Ketersediaan praktisi terampil untuk penyediaan solusi kecerdasan buatan.

  3. Infrastructure: Kemudahan dalam akses infrastruktur seperti listrik dan internet.

  4. Operating environment: Peraturan dan opini masyarakat tentang kecerdasan buatan.

  5. Research: Penelitian dalam hal teknologi untuk mendukung kemajuan di bidang kecerdasan buatan.

  6. Development: Potensi kecerdasan buatan untuk terus meningkat dan berkembang yang dituangkan dalam bentuk inovasi.

  7. Government strategy: Strategi pemerintah pusat untuk mengembangkan kecerdasan buatan, mengatur pengeluaran, dan strategi nasional.

  8. Commercial: Tingkat aktivitas startup, investasi, dan inisiatif bisnis berdasarkan kecerdasan buatan.

Visualisasi 1

data_numerik <- select_if(data.ai, is.numeric)
str(data_numerik)
## 'data.frame':    62 obs. of  8 variables:
##  $ Talent               : num  100 16.5 39.6 31.3 35.8 ...
##  $ Infrastructure       : num  94 100 71.4 77 67.6 ...
##  $ Operating.Environment: num  64.6 91.6 74.7 93.9 82.4 ...
##  $ Research             : num  100 71.4 36.5 30.7 32.6 ...
##  $ Development          : num  100 80 25 25.8 28 ...
##  $ Government.Strategy  : num  77.4 94.9 82.8 100 43.9 ...
##  $ Commercial           : num  100 44 18.9 14.9 27.3 ...
##  $ Total.score          : num  100 62.9 40.9 40.2 39.9 ...
data_corrl <- round(cor(data_numerik), 1)

corrplot(data_corrl, method='ellipse')

Interpretasi

Plot korelasi di atas menunjukkan keeratan hubungan antara peubah Y (total score) dengan peubah penjelas lain dan hubungan antar peubah penjelas. Berdasarkan kedua plot di atas, dapat diamati total score (indeks kecerdasan buatan global) memiliki hubungan yang kuat dengan penelitian kecerdasan buatan (research), perkembangan kecerdasan buatan (development), dan komersial (commercial). Hal tersebut ditandai dengan bentuk elips yang semakin tipis dan warnanya yang semakin gelap (tua). Hubungan peubah yang lemah ditandai dengan bentuk elips yang semakin menggembung (seperti lingkaran) dan warnanya semakin muda.

Visualisasi 2

ggcorrplot(data_corrl, method = "circle")

Interpretasi

Plot korelasi di atas menunjukkan keeratan hubungan antara peubah Y (total score) dengan peubah penjelas lain dan hubungan antar peubah penjelas. Berdasarkan plot di atas dapat diamati bahwa total score (indeks kecerdasan buatan global) memiliki hubungan yang kuat dengan penelitian kecerdasan buatan (research), perkembangan kecerdasan buatan (development), dan komersial (commercial). Lingkaran pada plot korelasi yang kedua lebih mudah menggambarkan keeratan hubungan antar peubah karena memiliki ukuran yang berbeda. Lingkaran dengan ukuran yang semakin kecil dan warna yang semakin putih menunjukkan hubungan korelasi yang lemah antar peubah, misalnya antara peubah komersial dan operasi lingkungan.

Visualisasi 3

group <- c(1:62)
datatemp <- data.ai
datatemp$group <- group

#Scatter Plot Indeks Kecerdasan Buatan Global dan Strategi Pemerintah
ggplot(datatemp, aes(x = Government.Strategy, y = Total.score, fill = group)) +
  geom_point(shape = 21, size = 3, color = "white") +
  geom_smooth(method = "lm", se = TRUE, color = "#8A2BE2", size = 0.5) +
  labs(title = "Scatter Plot Indeks Kecerdasan Buatan dan Strategi Pemerintah", x = "Strategi Pemerintah", y = "Indeks Kecerdasan Buatan") +
  theme_minimal() +
  scale_fill_viridis(option = "C")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## `geom_smooth()` using formula = 'y ~ x'
## Warning: The following aesthetics were dropped during statistical transformation: fill
## ℹ This can happen when ggplot fails to infer the correct grouping structure in
##   the data.
## ℹ Did you forget to specify a `group` aesthetic or to convert a numerical
##   variable into a factor?

Interpretasi

Scatter plot di atas menunjukkan hubungan antara indeks kecerdasan buatan dan strategi pemerintah yang memiliki hubungan positif, artinya semakin baik strategi pemerintah maka indeks kecerdasan buatan global semakin tinggi. Indeks kecerdasan buatan global dan strategi pemerintah memiliki hubungan yang cukup kuat, hal tersebut dibuktikan dengan amatan yang berada di dekat garis regresi.

Visualisasi 4

# Scatter Plot Indeks Kecerdasan Buatan Global dan Penelitian Kecerdasan Buatan
y.bar <- mean(data.ai$Total.score)
interactive.plot <- ggplot(data.ai) +
  geom_point(aes(x = Research,y = Total.score),color="chocolate4",shape=8, size=1) +
  geom_smooth(aes(x = Research, y = Total.score), method = "lm", se = FALSE, color = "orange") +
  ggtitle("Scatter Plot Penelitian vs Indeks Kecerdasan Buatan Global") +
  ylab("Indeks Kecerdasan Buatan Global") +
  xlab("Penelitian Kecerdasan Buatan") + 
  theme_classic() +
  theme(plot.title = element_text(hjust = 0.5))
ggplotly(interactive.plot)
## `geom_smooth()` using formula = 'y ~ x'

Interpretasi

Hubungan antara penelitian kecerdasan buatan (research) dan indeks kecerdasan buatan global memiliki hubungan yang positif dan kuat karena titik-titik amatan berkumpul di sekitar garis regresi. Artinya, semakin tinggi tingkat penelitian mengenai kecerdasan buatan maka indeks kecerdasan buatan global semakin tinggi.

Visualisasi 5

# Sactter Plot Indeks Kecerdasan Buatan Global dan Komersial
y.bar <- mean(data.ai$Total.score)
interactive.plot <- ggplot(data.ai) +
  geom_point(aes(x = Commercial,y = Total.score),color="chocolate4",shape=8, size=1) +
  geom_smooth(aes(x = Commercial, y = Total.score), method = "lm", se = FALSE, color = "orange") +
  ggtitle("Scatter Plot Penelitian vs Indeks Kecerdasan Buatan Global") +
  ylab("Indeks Kecerdasan Buatan Global") +
  xlab("Komersial") + 
  theme_classic() +
  theme(plot.title = element_text(hjust = 0.5))
ggplotly(interactive.plot)
## `geom_smooth()` using formula = 'y ~ x'
ggplot(data.ai, aes(x = Commercial , y = Total.score )) +
  geom_point(color = "#CD5C5C", size = 3, alpha = 0.6) +
  geom_smooth(method = "loess", color = "#F0E68C", linetype = "dashed", size = 1.5) +
  labs(
    x = "Komersial", 
    y = "Indeks Kecerdasan Buatan", 
    title = "LOESS Visualization of Commercial vs. Artificial Intelligence Global Index",
    subtitle = "Smoothed scatterplot with LOESS curve"
  ) +
  theme_minimal() 
## `geom_smooth()` using formula = 'y ~ x'

Interpretasi

Hubungan antara komersial dan indeks kecerdasan buatan global memiliki hubungan yang positif dan kuat karena titik-titik amatan berkumpul di sekitar garis regresi. Artinya, semakin tinggi aktivitas manusia (startup, dll) berdasarkan kecerdasan buatan maka indeks kecerdasan buatan global semakin tinggi. Dua scatter plot di atas bertujuan untuk membandingkan kemulusan kurva. Pada scatter plot dengan Loess visualization, kemulusan garis untuk memperlihatkan hubungan antar dua peubah sangat terlihat jelas menunjukkan letak amatan-amatan tersebut berada.

Visualisasi Data Time Series

Import Data

Data yang digunakan adalah data harga saham penutupan Amazon dan Google pada tahun 2019-2023. Data yang digunakan bersumber dari Yahoo Finance.

# Memanggil Data Saham Penutupan Amazon pada Tahun 2019-2023
data.amazon <- read_xlsx("C:/SEMESTER 4/VISDAT/amzn.xlsx")
str(data.amazon)
## tibble [1,258 × 2] (S3: tbl_df/tbl/data.frame)
##  $ Date : POSIXct[1:1258], format: "2019-01-02" "2019-01-03" ...
##  $ Close: num [1:1258] 76956497 75014000 78769501 81475502 82829002 ...
# Memanggil Data Harga Penutupan Saham Google pada Tahun 2019-2023
data.ggl <- read_xlsx("C:/SEMESTER 4/VISDAT/google.xlsx")
str(data.ggl)
## tibble [1,258 × 2] (S3: tbl_df/tbl/data.frame)
##  $ Date : POSIXct[1:1258], format: "2019-01-02" "2019-01-03" ...
##  $ Close: num [1:1258] 52292500 50803001 53535500 53419498 53813999 ...

Visualisasi 1

# Visualisasi Time Series Harpa Penutupan Saham Amazon Tahun 2019-2023
ggplot(data.amazon, aes(x = Date, y = Close)) +
  geom_point() +
  labs(title = "Scatter Plot of Time Series Data 'Harga Saham Penutupan Amazon Tahun 2019-2023' ",
       x = "Tahun",
       y = "Harga Saham Penutupan")

ggplot(data.amazon, aes(x = Date, y = Close)) +
  geom_point() +  # Add points
  geom_line() +   # Connect points with lines
  labs(title = "Scatter Plot with Connected Lines 'Harga Saham Penutupan Amazon Tahun 2019-2023'",
       x = "Tahun",
       y = "Harga Saham Penutupan")

ggplot(data.amazon, aes(x = Date, y = Close)) +
  geom_line() +
  labs(title = "Random Walk Time Series Plot 'Harga Saham Penutupan Amazon Tahun 2019-2023'",
       x = "Tahun",
       y = "Harga Saham Penutupan")

Interpretasi

Berdasarkan plot time series di atas, dapat diamati bahwa harga penutupan saham dari Amazon mengalami peningkatan yang cukup pesat dari tahun 2020 ke tahun 2021 dan mengalami fluktuasi di tahun 2021. Lalu, harga penutupan saham mengalami penurunan di tahun 2022 dan kembali meningkat di tahun 2023. Fluktuasi atas naik turunnya harga penutupan saham sangat terlihat di ketiga plot time series di atas.

Visualisasi 2

calculate_moving_average <- function(data.amazon, window_size) {
  ma_values <- zoo::rollmean(data.amazon$Close, k = window_size, align = "right", fill = NA)
  return(ma_values)
}
window_size <- 50
data.amazon$ma_values <- calculate_moving_average(data.amazon, window_size)

# Create the plot
ggplot(data.amazon, aes(x = Date)) +
  geom_line(aes(y = Close), color = "white", size = 1) +  
  geom_line(aes(y = ma_values), color = "#9370DB", linetype = "dashed", size = 1) +  # emulusan
  geom_ribbon(aes(ymin = -Inf, ymax = ma_values), fill = "#DDA0DD", alpha = 0.2) +  # Area under curve
  labs(title = paste("Time Series Data Harga Saham Penutupan Amazon 2019-2023"),
       x = "Tahun",
       y = "Harga Saham Penutupan") +
  theme_minimal()
## Warning: Removed 49 rows containing missing values (`geom_line()`).

Interpretasi

Berdasarkan plot time series di atas, dapat diamati bahwa harga penutupan saham dari Amazon mengalami peningkatan yang cukup pesat dari tahun 2020 ke tahun 2021 dan mengalami fluktuasi di tahun 2021. Lalu, harga penutupan saham mengalami penurunan di tahun 2022 dan kembali meningkat di tahun 2023. Plot time series di atas menunjukkan tingkat kemulusan kurva sehingga lebih mudah untuk diamati.

Visualisasi 3

# Time Series Harga Penutupan Saham Amazon dan Google Tahun 2019-2023
ggplot() +
  geom_line(data = data.amazon, aes(x = Date, y = Close, color = "Amazon")) +
  geom_line(data = data.ggl, aes(x = Date, y = Close * 2, color = "Google")) +
  scale_color_manual(values = c("#DC143C", "#4B0082")) +
  labs(title = "Time Series Data Harga Penutupan Saham Amazon dan Google 2019-2023",
       x = "Tahun",
       y = "Harga Penutupan Saham Amazon") +
  theme_minimal() +
  theme(axis.title.y = element_text(color = "#DC143C"),
        axis.title.y.right = element_text(color = "#4B0082"),
        axis.text.y.right = element_text(color = "#4B0082")) + scale_y_continuous(sec.axis = sec_axis(~./2, name = "Harga Penutupan Saham Google")) + labs(color = "Harga Penutupan Saham")

Interpretasi

Berdasarkan plot di atas dapat disimpulkan bahwa harga penutupan saham Amazon dan Google memiliki pola yang cukup mirip, tetapi pada tahun 2021 harga penutupan saham Google melonjak pesat. Harga penutupan saham Google pada tahun 2021-2023 memiliki nilai yang lebih tinggi dari harga penutupan saham Amazon.

Visualisasi Geospasial

Import Data

Data yang digunakan dalam visualisasi geospasial ini adalah data Indeks Kesenjangan Gender Global pada tahun 2021. Program Pembangunan Perserikatan Bangsa-Bangsa (UNDP) menyebutkan bahwa indeks kesenjangan gender mengukur ketidaksetaraan gender dengan menganalisis faktor kesehatan, pemberdayaan, dan partisipasi tenaga kerja.

Sumber data: https://www.kaggle.com/datasets/gianinamariapetrascu/gender-inequality-index

datagii <- read.csv("C:/SEMESTER 4/VISDAT/GII.csv")
str(datagii)
## 'data.frame':    195 obs. of  11 variables:
##  $ Country              : chr  "Switzerland" "Norway" "Iceland" "Hong Kong" ...
##  $ Human_development    : chr  "Very high" "Very high" "Very high" "Very high" ...
##  $ GII                  : num  0.018 0.016 0.043 NA 0.073 0.013 0.023 0.074 0.073 0.025 ...
##  $ Rank                 : int  3 2 8 NA 19 1 4 21 19 5 ...
##  $ Maternal_mortality   : int  5 2 4 NA 6 4 4 5 7 5 ...
##  $ Adolescent_birth_rate: num  2.2 2.3 5.4 1.6 8.1 1.9 3.3 5.9 7.5 2.8 ...
##  $ Seats_parliament     : num  39.8 45 47.6 NA 37.9 39.7 47 27.3 34.8 39.1 ...
##  $ F_secondary_educ     : num  96.9 99.1 99.8 77.1 94.6 95.1 91.8 88.1 96.1 89.8 ...
##  $ M_secondary_educ     : num  97.5 99.3 99.7 83.4 94.4 95.2 92.2 86 96.5 92.7 ...
##  $ F_Labour_force       : num  61.7 60.3 61.7 53.5 61.1 57.7 61.7 56.5 56.8 62.4 ...
##  $ M_Labour_force       : num  72.7 72 70.5 65.8 70.5 66.7 68 68.6 66 71.3 ...
# Membuat Data Peta
databr <- datagii
databr$region <- databr$Country
View(databr)

world <- map_data("world")
colnames(world) <- (c('Longitude','Latitude', 'group', 'order', 'region', 'subregion'))
View(world)

Visualisasi 1

# Peta Sebaran Indeks Kesenjangan Gender Global pada Tahun 2021
datagabung <- left_join(world, databr[, c("region", "GII")], by = "region")

worldlimit <- datagabung %>%
  filter(Latitude > -60)

world_plot <- ggplot(worldlimit, aes(x = Longitude, y = Latitude, group = group)) +
  geom_polygon(aes(fill = GII), color = "white") +
  coord_fixed(1.3) +
  scale_fill_viridis(option = "B", na.value = "grey")

world_plot

Interpretasi

Berdasarkan peta geospasial di atas, dapat diketahui bahwa indeks kesenjangan gender tertinggi banyak tersebar di Benua Afrika yang ditandai dengan warna kuning yang semakin terang. Nilai indeks kesenjangan gender di benua tersebut mayoritas berada di rentang 0,4 sampai 0,8. Nilai indeks kesenjangan gender di Kanada dan Benua Australia berada di bawah 0,2 sedangkan negara di Amerika Selatan berada di rentang 0,2 sampai 0,6. Sementara itu, nilai indeks kesenjangan gender di China berada di rentang 0,2 sampai 0,4 dan Indonesia (Sumatera, Kalimantan, dan Papua) berada di rentang 0,4 sampai 0,6. Negara yang ditandai warna abu bernilai null. Semakin pekat warnanya (hitam), maka indeks kesenjangan gender semakin kecil.

Visualisasi 2

# Peta Sebaran Rasio Kematian Ibu (Kematian per 100.000 Kelahiran Hidup) pada Tahun 2021
datagabung2 <- left_join(world, databr[, c("region", "Maternal_mortality")], by = "region")

worldlimit <- datagabung2 %>%
  filter(Latitude > -60)

world_plot <- ggplot(worldlimit, aes(x = Longitude, y = Latitude, group = group)) +
  geom_polygon(aes(fill = Maternal_mortality), color = "white") +
  coord_fixed(1.3) +
  scale_fill_viridis(option = "F", na.value = "grey")

world_plot

Interpretasi

Peta Geospasial di atas menunjukkan rasio kematian Ibu dengan kematian per 100.000 kelahiran hidup pada tahun 2021. Peta tersebut menunjukkan bahwa rasio kematian Ibu dengan angka yang cukup tinggi berada di sebagian negara Benua Afrika. Angka kematian Ibu paling tinggi berada di negara Sudan Selatan, Chad, dan Sierra Leone. Sementara itu, negara atau benua yang berwarna hitam mengindikasikan bahwa rasio kematian Ibu berada di bawah 300 (cukup kecil).