Visualisasi Data Hubungan Peubah, Time Series, dan Geospasial

Indra Mahib

2024-05-14

Visualisasi Hubungan Peubah

Data Preparation

mv <- read_excel("data_anreg.xlsx",sheet="data_bersih")
mv <- mv[,c(1,2,3,4,5,6,ncol(mv))]
summary(mv)
##    Country                X1              X2               X3        
##  Length:163         Min.   :2.040   Min.   : 1.830   Min.   : 1.268  
##  Class :character   1st Qu.:7.403   1st Qu.: 5.805   1st Qu.: 6.913  
##  Mode  :character   Median :8.446   Median : 6.370   Median : 8.502  
##                     Mean   :8.033   Mean   : 6.451   Mean   : 7.828  
##                     3rd Qu.:9.369   3rd Qu.: 7.701   3rd Qu.: 9.604  
##                     Max.   :9.928   Max.   :10.000   Max.   :10.000  
##        X4               X5               Y         
##  Min.   : 1.194   Min.   :0.4137   Min.   :0.3970  
##  1st Qu.: 5.425   1st Qu.:4.4985   1st Qu.:0.6000  
##  Median : 7.780   Median :6.5747   Median :0.7430  
##  Mean   : 6.956   Mean   :6.2724   Mean   :0.7264  
##  3rd Qu.: 9.007   3rd Qu.:7.9900   3rd Qu.:0.8530  
##  Max.   :10.000   Max.   :9.9218   Max.   :0.9590

Kita akan menambahkan peubah baru yaitu berupa peubah kategorik untuk membuat visualisasi lebih eksploratif.

mv$Ybaru <- ifelse(mv$Y >= mean(mv$Y),1,0)
summary(mv)
##    Country                X1              X2               X3        
##  Length:163         Min.   :2.040   Min.   : 1.830   Min.   : 1.268  
##  Class :character   1st Qu.:7.403   1st Qu.: 5.805   1st Qu.: 6.913  
##  Mode  :character   Median :8.446   Median : 6.370   Median : 8.502  
##                     Mean   :8.033   Mean   : 6.451   Mean   : 7.828  
##                     3rd Qu.:9.369   3rd Qu.: 7.701   3rd Qu.: 9.604  
##                     Max.   :9.928   Max.   :10.000   Max.   :10.000  
##        X4               X5               Y              Ybaru       
##  Min.   : 1.194   Min.   :0.4137   Min.   :0.3970   Min.   :0.0000  
##  1st Qu.: 5.425   1st Qu.:4.4985   1st Qu.:0.6000   1st Qu.:0.0000  
##  Median : 7.780   Median :6.5747   Median :0.7430   Median :1.0000  
##  Mean   : 6.956   Mean   :6.2724   Mean   :0.7264   Mean   :0.5521  
##  3rd Qu.: 9.007   3rd Qu.:7.9900   3rd Qu.:0.8530   3rd Qu.:1.0000  
##  Max.   :10.000   Max.   :9.9218   Max.   :0.9590   Max.   :1.0000

Visualisasi Korelasi dan Hubungan Peubah

pairs.panels(mv[,3:ncol(mv)-1], 
             method="pearson",
             lm=T,
             main = "Plot Hubungan Peubah dan Korelasi")

Terlihat hubungan-hubungan dari peubah-peubah yang ada. Pada bagian atas terdapat nilai korelasi sedangkan di bagian bawah terdapat scatter plot yang juga terdapat LOESS untuk melihat hubungan antarpeubah. Di bagian diagonal merupakan sebaran data dari masing-masing peubah yang ada.

Visualisasi Peubah Kategorik dan Peubah Numerik

mv$Ykat <- ifelse(mv$Ybaru==1,"Above","Below")

ggplot(data = mv)+
  geom_boxplot(aes(x = as.factor(Ykat), y = X1, fill= as.factor(Ykat)))+
  labs(title = "Nilai X1 dan Hubungan dengan nilai tengah Y",
       x = "Kategori", y = "Nilai")+
  scale_fill_brewer("Kategori Y",palette="Dark2")+
  theme(legend.position = "right")

Dari visualisasi diatas nilai X1 yang tinggi menyebar di kategor Y “Above” yang artinya diatas rata-rata Y.

Visualisasi Time Series

Data Preparation

apple <- read.csv("apple.csv",sep =",")
micr <- read.csv("microsoft.csv",sep = ",")
apple$Date <- as.Date(apple$Date)
micr$Date <- as.Date(micr$Date)
apple$Company <- "APPLE"
micr$Company <- "MICROSOFT"

data.time.series <- as.data.frame(rbind(apple,micr))
head(data.time.series,5)
##         Date   Open   High    Low  Close Adj.Close   Volume Company
## 1 2024-02-08 189.39 189.54 187.35 188.32    188.08 40962000   APPLE
## 2 2024-02-09 188.65 189.99 188.00 188.85    188.85 45155200   APPLE
## 3 2024-02-12 188.42 188.67 186.79 187.15    187.15 41781900   APPLE
## 4 2024-02-13 185.77 186.21 183.51 185.04    185.04 56529500   APPLE
## 5 2024-02-14 185.32 185.53 182.44 184.15    184.15 54630500   APPLE

Visualisasi Saham Microsoft dan Apple

ggplot(data.time.series,
       aes(x=Date, y=Close, fill= Company))+
  labs(title = "Perbandingan Saham Apple VS Microsoft",
       subtitle = "Februari 2024 - Mei 2024",
       x="Month",
       y="Close Stock")+
  scale_y_continuous(labels = scales::dollar)+
  geom_line(size=1.5)+
  geom_smooth(size=.5)+
  scale_fill_discrete()+
  theme_minimal()+
  theme(axis.title = element_text(size=10,face="bold"),
        legend.title = element_text(size=10,face="bold"))
## 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 method = 'loess' and formula = 'y ~ x'

Terlihat saham Microsoft berada diatas saham Apple selama 6 bulan terakhir. Harga saham Apple cenderung stabil jika dibandingkan dengan Microsoft.

Visualisasi Geospasial

Data Preparation

Loading .shp Indonesia yang diperoleh melalaui data.humdata.org

Data yang akan kita buat visualisasi merupakan data demografi Kabupaten Bogor.

databogor <- rio::import("https://raw.githubusercontent.com/farhanabdillahh/Regresi-Spasial/main/Data/Data_KabBogor.csv")
glimpse(databogor)
## Rows: 40
## Columns: 7
## $ Kabupaten                   <chr> "Kabupaten Bogor", "Kabupaten Bogor", "Kab…
## $ Kecamatan                   <chr> "Nanggung", "Leuwiliang", "Leuwisadeng", "…
## $ `Jumlah Penduduk`           <int> 99812, 125552, 77871, 159236, 147554, 1702…
## $ `Kepadatan Penduduk`        <int> 627, 1379, 2200, 1275, 3838, 5152, 1558, 4…
## $ `Jumlah Desa dan Kelurahan` <int> 11, 11, 8, 15, 15, 13, 7, 10, 11, 8, 9, 9,…
## $ `Kode BPS`                  <chr> "ID3201010", "ID3201020", "ID3201021", "ID…
## $ `Kode Kemendagri`           <chr> "32.01.21", "32.01.14", "32.01.39", "32.01…
map_bogor <- map_indonesia %>% 
  inner_join(databogor, by = c("ADM3_PCODE" = "Kode BPS"))

Visualisasi Jumlah Penduduk Kabupaten Bogor

library(ggplot2)

colpal <- RColorBrewer::brewer.pal(5, "Spectral")

jumlah.penduduk <- ggplot() +  
  geom_sf(data=map_bogor, aes(fill=`Jumlah Penduduk`))+
  scale_fill_gradientn(colors = colpal,
                       name = "Jumlah Penduduk") +
  labs(title = "Jumlah Penduduk Kabupaten Bogor")  +
  theme(legend.text = element_text(size=7),
        legend.title = element_text(size=7),
        axis.text.x = element_text(size = 7),
        axis.text.y = element_text(size = 7),
        title = element_text(size=12, face='bold'))

jumlah.penduduk

Terlihat bahwa kebanyakan kecamatan di Kabupaten Bogor memiliki kepadatan penduduk berkisar antara 200.000 - 300.000 jiwa. Kecamatan dengan kepadatan penduduk yang tinggi berada di bagian utara. Hal ini kemungkinan besar terjadi karena daerah utara Kabupaten Bogor berbatasan dengan daerah JaDeTaBek.