Inisialisasi Library

library (readxl)
library (dplyr)
## 
## 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
library (ggplot2)
library (ggthemes)
library (plotly)
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
library (ggcorrplot)
library (sf)
## Linking to GEOS 3.11.2, GDAL 3.8.2, PROJ 9.3.1; sf_use_s2() is TRUE
library (reshape2)
library (indonesia)

Import Data

data1 <- read_xlsx ("C:/Users/ardel/OneDrive/Documents/CoolYeah/Semester 4/Analisis Eksplorasi Data/Pertemuan 1/bayi.xlsx")
data2 <- data1 %>%
  mutate(berat = as.numeric(berat),
         panjang = as.numeric(panjang))
str (data2)
## tibble [500 × 3] (S3: tbl_df/tbl/data.frame)
##  $ berat        : num [1:500] 3 3 3 3 3 3 2.2 2.25 2.28 2.3 ...
##  $ panjang      : num [1:500] 44.5 44.5 49.9 50.4 49.7 50.2 44 44.3 44.1 44.5 ...
##  $ jenis kelamin: chr [1:500] "Laki-Laki" "Laki-Laki" "Laki-Laki" "Laki-Laki" ...
data3 <- read_xlsx ("C:/Users/ardel/OneDrive/Documents/CoolYeah/Semester 4/Visualisasi Data/Tugas Individu Visdat UAS/Data Balita Stunting.xlsx")
str (data3)
## tibble [27 × 5] (S3: tbl_df/tbl/data.frame)
##  $ Kab/Kota                          : chr [1:27] "Bogor" "Sukabumi" "Cianjur" "Bandung" ...
##  $ Jumlah balita Stunting (Orang)    : num [1:27] 18666 10231 6871 21018 30266 ...
##  $ Berat Lahir Rendah (Orang)        : num [1:27] 1927 1967 1144 1639 1494 ...
##  $ Balita Gizi Kurang (Orang)        : num [1:27] 12537 5594 3039 8605 8411 ...
##  $ Jumlah Penduduk Miskin (Ribu Jiwa): num [1:27] 475 186 247 259 277 ...
data4 <- read.csv ("C:/Users/ardel/OneDrive/Documents/CoolYeah/Semester 4/Visualisasi Data/Tugas Individu Visdat UAS/test.csv", header = TRUE, sep = ",")
data5 <- data4 %>%
  mutate(`number_sold` = as.numeric(`number_sold`))
str (data5)
## 'data.frame':    363 obs. of  4 variables:
##  $ Date       : chr  "2019-05-18" "2019-05-19" "2019-05-20" "2019-05-21" ...
##  $ store      : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ product    : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ number_sold: num  891 868 888 873 877 894 905 892 875 888 ...
data6<-read_xlsx("C:\\Users\\ardel\\OneDrive\\Documents\\CoolYeah\\Semester 4\\Visualisasi Data\\Tugas Individu Visdat UAS\\Book1.xlsx")
str (data6)
## tibble [25 × 2] (S3: tbl_df/tbl/data.frame)
##  $ Kab/Kota: chr [1:25] "Bogor" "Sukabumi" "Cianjur" "Bandung" ...
##  $ Stunting: num [1:25] 18666 10231 6871 21018 30266 ...

Visualisasi untuk antar peubah numerik

Scatter plot

ggplot(data2, aes(x = berat, y = panjang)) +
  geom_point() +  
  labs(title = "Hubungan Berat Badan Bayi dengan Panjang Bayi", x = "Berat Bayi", y = "Panjang Bayi") +
  theme_minimal()+
  theme(plot.title = element_text(hjust = 0.5, size = 15))

### Intepretasi Dari scatterplot diatas dapat terlihat bahwa berat bayi dengan panjang bayi memiliki hubungan linier positif. Hal ini menandakan jika semakin besar berat bayi, maka semakin panjang tinggi bayi. Tetapi, hubungan antar peubah lemah karena ragam yang besar.

ggplot(data2, aes(x = berat, y = panjang, color = `jenis kelamin`)) +
  geom_point() +  
  labs(title = "Hubungan Berat Badan Bayi dengan Panjang Bayi berdasarkan Jenis Kelamin", x = "Berat Bayi", y = "Panjang Bayi") +
  facet_wrap(~ `jenis kelamin`) +
  theme_minimal()+
  theme(plot.title = element_text(hjust = 0.5, size = 15))

### Intepretasi Setelah data diklasifikasikan berdasarkan jenis kelamin bayi dan dipisahkan, dapat terlihat bahwa bayi berjenis kelamin laki-laki memiliki ragam lebih besar sehingga sebaran datanya lebih luas jika dibandingkan dengan bayi berjenis kelamin perempuan yang sebarannya lebih sempit.

Korelasi

data3_numerik <- select_if(data3, is.numeric)
str(data3_numerik)
## tibble [27 × 4] (S3: tbl_df/tbl/data.frame)
##  $ Jumlah balita Stunting (Orang)    : num [1:27] 18666 10231 6871 21018 30266 ...
##  $ Berat Lahir Rendah (Orang)        : num [1:27] 1927 1967 1144 1639 1494 ...
##  $ Balita Gizi Kurang (Orang)        : num [1:27] 12537 5594 3039 8605 8411 ...
##  $ Jumlah Penduduk Miskin (Ribu Jiwa): num [1:27] 475 186 247 259 277 ...
data_corrl <- round(cor(data3_numerik), 1)

data_corrl <- cor(data_corrl)
ggcorrplot(data_corrl)+
  geom_tile() +
  labs(title = "Matriks Korelasi",
       x = "Variabel 1",
       y = "Variabel 2")+
  theme_minimal()+
  theme(plot.title = element_text(hjust = 0.5, size = 15))

### Intepretasi Matriks korelasi diatas dapat terlihat bahwa tidak ada multikolinearitas antar peubah karena tidak adanya warna yang sangat gelap/sangat terang. Jika warna semakin gelap maka korelasi antar peubah penjelas semakin besar.

Visualisasi untuk time series

ggplot(data5, aes(x = Date, y = number_sold, group = 1)) +
  geom_line() +
  scale_x_discrete(guide = guide_axis(check.overlap = TRUE)) +
  labs(title = "Penjualan Parfum di Toko X",
       x = "Tanggal",
       y = "Jumlah parfum terjual")+
  theme_minimal()+
  theme(plot.title = element_text(hjust = 0.5, size = 15))

### Intepretasi Data time series diatas menampilkan tren penjualan parfum di toko X di tahun 2019. Dapat terlihat bahwa tren dari bulan Januari sampai bulan Mei cenderung menurun. Tetapi tren pada bulan Mei ke bulan Juni terdapat peningkatan yang sangat signifikan, pada bulan Mei sekitar 700 buah parfum terjual naik ke hampir 900 buah parfum yang terjual. Terdapat banyak faktor yang dapat mempengaruhi peningkatan penjualan parfum ini, seperti diskon yang diberikan oleh pihak toko atau terdapat strategi marketing dari pihak toko yang berhasil menarik perhatian pembeli.

Visualisasi spasial

indonesia_kota <- id_map("indonesia","kota")
indonesia_kota_jabar <- indonesia_kota %>% 
  filter(nama_provinsi == "Jawa Barat")
## old-style crs object detected; please recreate object with a recent sf::st_crs()
indonesia_kota_jabar$nama_kota
##  [1] Bandung          Banjar           Bekasi           Bogor           
##  [5] Ciamis           Cianjur          Cimahi           Cirebon         
##  [9] Depok            Garut            Indramayu        Karawang        
## [13] Kota Bandung     Kota Bekasi      Kota Bogor       Kota Cirebon    
## [17] Kota Sukabumi    Kota Tasikmalaya Kuningan         Majalengka      
## [21] Purwakarta       Subang           Sukabumi         Sumedang        
## [25] Tasikmalaya     
## 432 Levels: Aceh Barat Aceh Barat Daya Aceh Besar Aceh Jaya ... Yogyakarta
ggplot() + geom_sf(data = indonesia_kota_jabar) +
  geom_sf(data = indonesia_kota_jabar, aes(fill = data6$Stunting), color = "black") +
  scale_fill_viridis_c() + theme_void() + theme(legend.position = "right") + ggtitle("Sebaran Balita Stunting Tahun 2022") +
  theme(plot.title = element_text(face = "bold",hjust=1))

Peta geospasial diatas menampilkan sebaran dari Balita Stunting di Provinsi Jawa Barat pada tahun 2022. Semakin terang warna dari sebuah kabupaten/kota maka semakin banyak kasus balita stunting di kabupaten/kota tersebut. Maka Kabupaten ciamis dan pangandaran adalah wilayah yang kasus balita stuntingnya paling banyak diantara wilayah-wilayah lain di Provinsi Jawa Barat. Sementara kota-kota seperti bandung, bekasi, bogorm dan tasik memiliki warna paling gelap sehingga wilayah kota memiliki kasus balita stunting paling rendah di Provinsi Jawa Barat