Tugas 1 Visualisasi Data

Data

Pada kesempatan kali ini, saya akan menggunakan data Susenas pada link berikut

https://ipb.link/susenas-stat-ipb

Visualisasi Besaran Data

  1. Merupakan visualisasi yang paling dasar dalam menggambarkan keadaan dari suatu waktu, kondisi, maupun entitas
  2. Memberikan perbandingan antar kategori dan antar waktu

Lollipop Chart

Menyiapkan paket yang diperlukan

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.2
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(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ lubridate 1.9.2     ✔ tibble    3.2.1
## ✔ purrr     1.0.1     ✔ tidyr     1.3.0
## ✔ readr     2.1.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Menyiapkan data

data <- read.csv("D:\\IPB\\Statistika Sem 4\\Visualisasi Data\\2023 Maret JABAR - SUSENAS KOR INDIVIDU PART2.csv",sep=";")

Mengambil variabel data yang dibutuhkan

data <- subset(data, select = c(R1420A, R1420B, R1420C, R1420D, R1420E, R1420F, R1420G, R1420H))
head(data)
##   R1420A R1420B R1420C R1420D R1420E R1420F R1420G R1420H
## 1      0      0      0      0      0      0      0      0
## 2      0      0      0      0      0      0      0      0
## 3      0      0      0      0      0      0      0      0
## 4      0      0      0      0      0      0      0      0
## 5      0      0      0      0      0      0      0      0
## 6      0      0      0      0      0      0      0      0

Mengubah data dari format lebar ke format panjang

data_long <- pivot_longer(data, cols = starts_with("R1420"), names_to = "kategori", values_to = "nilai")
head(data_long)
## # A tibble: 6 × 2
##   kategori nilai
##   <chr>    <int>
## 1 R1420A       0
## 2 R1420B       0
## 3 R1420C       0
## 4 R1420D       0
## 5 R1420E       0
## 6 R1420F       0

Hanya mengambil data bernilai 1

data_long <- data_long %>% filter(nilai == 1)
head(data_long)
## # A tibble: 6 × 2
##   kategori nilai
##   <chr>    <int>
## 1 R1420A       1
## 2 R1420E       1
## 3 R1420F       1
## 4 R1420A       1
## 5 R1420G       1
## 6 R1420A       1

Mengubah nama variabel kolom kategori

data_long$kategori <- recode(data_long$kategori, "R1420A" = "sereal, akar, dan umbi", "R1420B" = "kacang-kacangan", "R1420C" = "turunan susu", "R1420D" = "daging, ikan", "R1420E" = "telur", "R1420F" = "buah sayur vitamin A", "R1420G" = "buah sayur lainnya", "R1420H" = "makanan ringan")

Mengelompokan jumlah per kategori

data_long <- data_long %>% group_by(kategori) %>% summarise(jumlah = n())
print(data_long)
## # A tibble: 8 × 2
##   kategori               jumlah
##   <chr>                   <int>
## 1 buah sayur lainnya       1051
## 2 buah sayur vitamin A     1215
## 3 daging, ikan              998
## 4 kacang-kacangan          1087
## 5 makanan ringan            867
## 6 sereal, akar, dan umbi   1311
## 7 telur                    1163
## 8 turunan susu              337

Membuat lollipop Chart

data_long %>%
  arrange(desc(jumlah)) %>% 
  ggplot() +
  geom_segment(aes(x = fct_reorder(kategori, jumlah), xend = fct_reorder(kategori, jumlah), y = 0, yend = jumlah), color = "blue") +
  geom_point(aes(x = fct_reorder(kategori, jumlah), y = jumlah), color = "red", size = 2) +
  scale_y_continuous(expand = c(0, 0)) +
  coord_flip() +
  ggtitle("Jumlah Makanan dan Minuman yang Dikonsumsi Baduta Berdasarkan Kategori") +
  xlab("Kategori") +
  ylab("Jumlah Bayi") +
  theme_light() +
  theme(plot.title = element_text(hjust = 0.5))

Interpretasi

Pada visualisasi diatas, saya memvisualisasikan jumlah makanan dan minuman yang dikonsumsi oleh bayi dua tahun (baduta) berdasarkan kategori yang dikonsumsi. hasilnya kategori sereal, akar, dan umbi menjadi yang paling banyak dikonsumsi oleh baduta. Namun, ternyata kategori turunan susu menjadi kategori yang paling jarang dikonsumsi oleh baduta. Hal ini sangat disayangkan sebab susu bisa membantu supaya sang anak bisa menjadi lebih sehat dan mendukung pertumbuhan fisik dari baduta itu sendiri.

Bar Chart

Menyiapkan data

data <- read.csv("D:\\IPB\\Statistika Sem 4\\Visualisasi Data\\Tugas akhir visdat\\2023 Maret JABAR - SUSENAS KOR INDIVIDU PART1.csv",sep=";")

Mengambil variabel yang dibutuhkan

data1 <- data[,c("R105","R616")]
data2 <- data[,c("R105","R615")]
head(data1)
##   R105 R616
## 1    2    0
## 2    2    0
## 3    2    5
## 4    2    5
## 5    1    0
## 6    1    0
head(data2)
##   R105 R615
## 1    2    0
## 2    2    0
## 3    2    5
## 4    2    5
## 5    1    0
## 6    1    0

Memfilter data

data1 <- data1[data1$R616 != 0,]
data1 <- data1[data1$R616 != 5,]
head(data1)
##     R105 R616
## 61     1    1
## 87     1    1
## 146    2    1
## 172    2    1
## 188    2    1
## 235    2    1
data2 <- data2[data2$R615 != 0,]
data2 <- data2[data2$R615 != 5,]
data2$R615 <- ifelse(data2$R615 == 2,1,data2$R615)
head(data2)
##     R105 R615
## 55     1    1
## 87     1    1
## 138    1    1
## 154    1    1
## 155    1    1
## 172    2    1

)

#filter data1 dimana R105 bernilai 1 kedalam variabel datapip_kota
datapip_kota <- data1[data1$R105 == 1,]
#filter data1 dimana R105 bernilai 2 kedalam variabel datapip_desa
datapip_desa <- data1[data1$R105 == 2,]
#filter data2 dimana R105 bernilai 1 kedalam variabel datakip_kota
datakip_kota <- data2[data2$R105 == 1,]
#filter data2 dimana R105 bernilai 2 kedalam variabel datakip_desa
datakip_desa <- data2[data2$R105 == 2,]

Menyatukan data

Daerahpip <- rbind(datapip_kota,datapip_desa)
table(Daerahpip$R105)
## 
##    1    2 
## 1983 1108
Daerahkip <- rbind(datakip_kota,datakip_desa)
table(Daerahkip$R105)
## 
##    1    2 
## 1945 1126

Mengubah variabel

Daerahpip$R105 <- factor(Daerahpip$R105,levels=c(1,2),labels=c("Perkotaan","Pedesaan"))
table(Daerahpip$R105)
## 
## Perkotaan  Pedesaan 
##      1983      1108
Daerahkip$R105 <- factor(Daerahkip$R105,levels=c(1,2),labels=c("Perkotaan","Pedesaan"))
table(Daerahkip$R105)
## 
## Perkotaan  Pedesaan 
##      1945      1126
names(Daerahpip)[names(Daerahpip)=="R105"] <- "Keterangan"

names(Daerahkip)[names(Daerahkip)=="R105"] <- "Keterangan"

Membuat bar chart

library(ggplot2)
#barchart untuk PIP
ggplot(Daerahpip,aes(x=Keterangan,fill=Keterangan))+
  geom_bar()+
  geom_text(stat='count',aes(label=..count..),vjust=-0.5)+
  labs(title="Frekuensi Penerima Program PIP",x="Daerah",y="Frekuensi")+
  scale_fill_manual(values=c("pink","lightgreen"))
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

#barchart untuk KIP
ggplot(Daerahkip,aes(x=Keterangan,fill=Keterangan))+
  geom_bar()+
  geom_text(stat='count',aes(label=..count..),vjust=-0.5)+
  labs(title="Frekuensi Penerima KIP",x="Daerah",y="Frekuensi")+
  scale_fill_manual(values=c("pink","lightgreen"))

Interpretasi

Pada bar chart pertama, saya memvisualisasikan antara frekuensi dari penerima program PIP di daerah perkotaan dan pedesaan. Dari chart tersebut, kita bisa mendapatkan informasi bahwa penerima program PIP terbanyak ada di daerah perkotaan dengan selisih frekuensi yang lumayan signifikan yaitu menyentuh 800 lebih orang.

Hal ini juga sama ketika kita melihat frekuensi penerima KIP pada bar chart kedua, kita bisa melihat juga bahwa penerima KIP terbanyak ada di daerah perkotaan. Hal ini tentu menggambarkan bahwa program PIP dan KIP masih belum merata hingga ke pedesaan hal ini bisa dibuktikan dengan selisih yang lumayan signifikan antara penerima PIP dan KIP di daerah perkotaan dan pedesaan

Visualisasi Komposisi Data

  1. Visualisasi ini digunakan untuk melihat bagaimana kontribusi setiap sub-populasi terhadap sub-populasi yang lain atau populasinya itu sendiri.

    Contoh pertanyaan yang dapat dijawab melalui visualisasi komposisi.

    • Bagaimana persentase pengguna internet berdasarkan usia di sebuah negara?

    • Apa distribusi relatif jenis pekerjaan di sebuah industri?

    • Bagaimana distribusi relatif kekayaan di antara kelompok pendapatan di suatu wilayah?

Stacked Bar Chart

Menyiapkan paket yang dibutuhkan

library(tidyverse) 
library(ggmosaic)
## Warning: package 'ggmosaic' was built under R version 4.3.3
library(ggridges)
library(GGally) 
## Warning: package 'GGally' was built under R version 4.3.2
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
## 
## Attaching package: 'GGally'
## The following object is masked from 'package:ggmosaic':
## 
##     happy
library(plotly) 
## Warning: package 'plotly' was built under R version 4.3.2
## 
## 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

Menyiapkan data

data <- read.csv("D:\\IPB\\Statistika Sem 4\\Visualisasi Data\\Tugas akhir visdat\\2023 Maret JABAR - SUSENAS KOR INDIVIDU PART1.csv",sep=";")

Ambil data yang dibutuhkan

data1 <- data[,c("R105","R616","R615")]
head(data1)
##   R105 R616 R615
## 1    2    0    0
## 2    2    0    0
## 3    2    5    5
## 4    2    5    5
## 5    1    0    0
## 6    1    0    0

Menghapus baris yang tidak dibutuhkan

data1 <- data1[data1$R616 != 0,]
head(data1)
##    R105 R616 R615
## 3     2    5    5
## 4     2    5    5
## 9     2    5    5
## 12    1    5    5
## 13    1    5    5
## 14    1    5    5

Mengubah variabel

#ubah nilai 2 menjadi 1 pada variabel R615
data1$R615 <- ifelse(data1$R615 == 2,1,data1$R615)

#jika R616 = 1 dan R615 = 5 maka buat variabel bernama Keterangan dengan nilai "penerima pip"
data1$Keterangan <- ifelse(data1$R616 == 1 & data1$R615 == 5,"PIP",NA)

#jika R616 = 5 dan R615 = 1 maka buat variabel bernama Keterangan dengan nilai "penerima kip
data1$Keterangan <- ifelse(data1$R616 == 5 & data1$R615 == 1,"KIP",data1$Keterangan)

#jika R616 = 1 dan R615 = 1 maka buat variabel bernama Keterangan dengan nilai "penerima pip dan kip"
data1$Keterangan <- ifelse(data1$R616 == 1 & data1$R615 == 1,"PIP dan KIP",data1$Keterangan)

#jika R616 = 5 dan R615 = 5 maka buat variabel bernama Keterangan dengan nilai "bukan penerima pip dan kip"
data1$Keterangan <- ifelse(data1$R616 == 5 & data1$R615 == 5,"Bukan Penerima",data1$Keterangan)

head(data1)
##    R105 R616 R615     Keterangan
## 3     2    5    5 Bukan Penerima
## 4     2    5    5 Bukan Penerima
## 9     2    5    5 Bukan Penerima
## 12    1    5    5 Bukan Penerima
## 13    1    5    5 Bukan Penerima
## 14    1    5    5 Bukan Penerima

Ubah type data dan variabel

#ubah type data R105 menjadi factor
data1$R105 <- factor(data1$R105,levels=c(1,2),labels=c("Perkotaan","Pedesaan"))

#ubah R105 menjadi variabel Daerah
names(data1)[names(data1)=="R105"] <- "Daerah"
head(data1)
##       Daerah R616 R615     Keterangan
## 3   Pedesaan    5    5 Bukan Penerima
## 4   Pedesaan    5    5 Bukan Penerima
## 9   Pedesaan    5    5 Bukan Penerima
## 12 Perkotaan    5    5 Bukan Penerima
## 13 Perkotaan    5    5 Bukan Penerima
## 14 Perkotaan    5    5 Bukan Penerima

Membuat Stacked Bar Chart

#stacked bar chart
data1 %>%
  ggplot(aes(x = Keterangan, fill = Daerah)) +
  geom_bar() +
  labs(title = "Stacked Bar Chart: Penerima Program PIP dan KIP", 
       x = "Program", y = "Frekuensi") +
  scale_fill_brewer(palette = "Set2")

#100 percent stacked bar chart
data1 %>%
  ggplot(aes(x = Keterangan, fill = Daerah)) +
  geom_bar(position = "fill") +
  labs(title = "100 Percent Stacked Bar Chart: Penerima Program PIP dan KIP", 
       x = "Program", y = "Persentase") +
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5)) +
  scale_fill_brewer(palette = "Set2")

Interpretasi

Pada stacked bar chart diatas, saya memvisualisasikan persentase dan frekuensi penerima program KIP dan PIP berdasarkan daerah penerimanya. Hasilnya kita dapatkan bahwa frekuensi terbesar, yaitu Non Penerima pada daerah perkotaan dengan frekuensi sekitar 25 ribu orang atau sekitar 75% dari seluruh Non Penerima.

Akan tetapi, sangat disayangkan untuk penerima KIP, PIP, dan penerima keduanya masih sangat sedikit. Hal ini bisa terjadi mungkin karena tidak meratanya distribusi program tersebut sehingga terjadi perbedaan frekuensi yang sangat signifikan antara Penerima dan Non Penerima. Hal tersebut juga bisa terjadi karena minimnya pengetahuan terhadap program tersebut. Saya berasumsi demikian sebab jika dilihat persentase dari penerima KIP, PIP, dan penerima keduanya sebagian besar tinggal di daerah perkotaan bahkan penerima program tersebut di daerah pedesaan tidak ada yang menembus 50%.

Pie Chart

Menyiapkan Data

data <- read.csv("D:\\IPB\\Statistika Sem 4\\Visualisasi Data\\Tugas akhir visdat\\2023 Maret JABAR - SUSENAS KOR INDIVIDU PART1.csv",sep=";")

Mengambil variabel yang dibutuhkan

data_pie <- subset(data, select = c(R704))
head(data_pie)
##   R704
## 1    3
## 2    3
## 3    3
## 4    0
## 5    3
## 6    1

Memfilter data

data_pie<- data_pie %>% filter(R704 != 0)
head(data_pie)
##   R704
## 1    3
## 2    3
## 3    3
## 4    3
## 5    1
## 6    1

Menghitung jumlah per kategori

data_pie <- data_pie %>% group_by(R704) %>% summarise(jumlah = n())
print(data_pie)
## # A tibble: 4 × 2
##    R704 jumlah
##   <int>  <int>
## 1     1  35135
## 2     2  12001
## 3     3  18985
## 4     4   3211

Mengubah nama dataset dan variabelnya

data_pie <- rename(data_pie, kegiatan = R704)

data_pie$kegiatan <- recode(data_pie$kegiatan, "1" = "bekerja", "2" = "sekolah", "3" = "mengurus rumah tangga", "4" = "lainnya selain kegiatan pribadi")
print(data_pie)
## # A tibble: 4 × 2
##   kegiatan                        jumlah
##   <chr>                            <int>
## 1 bekerja                          35135
## 2 sekolah                          12001
## 3 mengurus rumah tangga            18985
## 4 lainnya selain kegiatan pribadi   3211

Membuat Pie Chart

#dalam bentuk jumlah
data_pie %>%
  ggplot(aes(x = "", y = jumlah, fill = kegiatan)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  ggtitle("Kegiatan Selama Seminggu Terakhir") +
  scale_fill_brewer(palette = "Set3") +
  theme_void() +
  theme(legend.position = "right") +
  theme(plot.title = element_text(hjust = 0.5, size = 15)) +
  geom_text(aes(label = jumlah), position = position_stack(vjust = 0.5))

#dalam bentuk persentase
data_pie %>%
  ggplot(aes(x = "", y = jumlah, fill = kegiatan)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  ggtitle("Kegiatan Selama Seminggu Terakhir") +
  scale_fill_brewer(palette = "Set3") +
  theme_void() +
  theme(legend.position = "right") +
  theme(plot.title = element_text(hjust = 0.5, size = 15)) +
  geom_text(aes(label = paste0(round(jumlah/sum(jumlah)*100, 1), "%")), position = position_stack(vjust = 0.5))

Interpretasi

Dari chart diatas, saya memvisualisasikan komposisi kegiatan yang dilakukan selama seminggu terakhir. Kita mendapat informasi dari chart diatas bahwa kegiatan yang paling banyak dilakukan adalah bekerja disusul dengan mengurus rumah tangga. Kegiatan yang paling jarang dilakukan selama seminggu terakhir adalah kegiatan lainnya selain kegiatan pribadi.

Visualisasi Sebaran Data

Merupakan teknik visualisasi untuk mengetahui sebaran data sehingga dapat membantu untuk melihat rentang data, mendeteksi outlier, mendeteksi keberadaan kelompok, dll.

Boxplot dan Density Plot

Menyiapkan paket

library(tidyverse) 
library(ggridges)
library(GGally) 
library(plotly) 

Menyiapkan Data

data <- read.csv("D:/IPB/Statistika Sem 4/Visualisasi Data/2023 Maret JABAR - SUSENAS KOR Rumah Tangga.csv",sep=";")
head(data)
##   X   URUT   PSU    SSU   WI1    WI2 R101 R102 R105 NUINFORT R1701 R1702 R1703
## 1 0 500001 12448 123442 12435 123427   32    7    2        2     5     5     5
## 2 1 500002 31373 311039 31360 311024   32   72    1        1     1     1     1
## 3 2 500003 12092 119908 12079 119893   32    6    2        2     5     5     5
## 4 3 500004 31135 308689 31122 308674   32   72    1        2     5     5     5
## 5 4 500005 33988 336798 33975 336783   32   77    1        1     5     5     5
## 6 5 500006 34062 337531 34049 337516   32   77    1        1     5     5     5
##   R1704 R1705 R1706 R1707 R1708 NUINFORT1 R1801 R1802 R1803 R1804 R1805 R1806
## 1     5     5     5     5     5         2     1     1     5   110     5     2
## 2     5     5     5     5     5         1     1     1     1    35     5     3
## 3     5     5     5     5     5         2     1     1     1    96     5     2
## 4     5     5     5     5     5         2     2     1     1   300     5     2
## 5     5     5     5     5     5         1     1     3     0    84     1     2
## 6     5     5     5     5     5         1     1     1     1   300     1     2
##   R1807 R1808 R1809A R1809B R1809C R1809D R1809E R1810A R1810B R1811A R1811B
## 1     1     4      2      1      1     98      7      4      2      2    998
## 2     1     6      1      1      4      0      0      4      2      1      0
## 3     1     2      1      1      1     20      7      5      1      1      0
## 4     1     2      1      1      1     98      7      2      0      2     10
## 5     1     2      1      1      1     98      7      1      0      1      0
## 6     1     2      1      1      1     98      7      1      0      1      0
##   R1812 R1813A R1813B R1813C R1813D R1813E R1814A R1814B R1815A R1815B R1815C
## 1     5      5      5      5      5      5      4      2      1      1      1
## 2     5      5      5      5      5      5      4      2      1      1      1
## 3     5      5      5      5      5      5      5      1      1      1      5
## 4     5      5      5      5      5      5      5      2      1      1      1
## 5     5      5      5      5      5      5      4      2      1      1      1
## 6     5      5      5      5      5      5      3      0      1      1      1
##   R1816 R1816B1 R1816B2 R1816B3 R1817 R1901A R1901B R1901C R1901D R1901E R1901F
## 1     1       1       0       0     4      1      5      5      5      5      5
## 2     1       1       0       0     4      5      5      5      5      5      5
## 3     1       1       1       0     4      5      5      5      5      5      5
## 4     1       2       0       0     4      1      5      5      5      5      5
## 5     1       1       0       0     2      5      5      5      5      5      5
## 6     1       3       0       0     3      5      5      5      5      5      5
##   R1901G R1901H R1901I R1901J R2001A R2001B R2001C R2001D R2001E R2001F R2001G
## 1      5      5      5      5      5      1      5      5      5      1      5
## 2      5      5      5      5      5      5      5      5      5      5      5
## 3      5      5      5      5      5      1      5      5      5      5      5
## 4      5      5      5      5      5      1      5      5      5      5      5
## 5      5      5      5      5      1      1      5      5      5      1      5
## 6      5      5      5      5      1      1      1      1      1      1      1
##   R2001H R2001I R2001J R2001K R2001L R2001M R2002_A R2002_B R2002_C R2002_D
## 1      5      5      5      5      5      1       A                        
## 2      5      5      5      5      5      1       A                        
## 3      1      5      5      5      5      1       A                        
## 4      1      5      5      5      5      1       A                        
## 5      1      1      1      1      1      5                                
## 6      1      1      5      1      1      1       A                        
##   R2101A R2101B R2101C R2201A2 R2201A3 R2201B2 R2201B3 R2201C2 R2201C3 R2201D2
## 1      2      0      2       1       1       5       0       5       0       5
## 2      1      2      0       5       0       5       0       5       0       5
## 3      1      1      0       5       0       5       0       5       0       5
## 4      1      1      0       5       0       5       0       5       0       5
## 5      1      2      0       5       0       5       0       5       0       1
## 6      4      0      0       5       0       5       0       5       0       5
##   R2201D3 R2201E2 R2201E3 R2201F2 R2201F3 R2202 R2203 R2204A R2204B R2204C_A
## 1       0       5       0       5       0     2     1      1      4        A
## 2       0       5       0       5       0     1     5      0      0         
## 3       0       5       0       5       0     5     5      0      0         
## 4       0       5       0       5       0     5     5      0      0         
## 5       1       5       0       5       0     5     5      0      0         
## 6       0       5       0       5       0     5     5      0      0         
##   R2204C_B R2204C_C R2204C_D R2204C_E R2204C_F R2204C_G R2205A R2206A R2207
## 1                                           NA               5      5     1
## 2                                           NA               5      5     1
## 3                                           NA               5      5     1
## 4                                           NA               5      5     5
## 5                                           NA               5      5     5
## 6                                           NA               5      5     5
##   R2208A2 R2208B2 R2208BI2 R2208C2 R2208D2 R2208EIB2 R2208EIIB2 R2208EIT2
## 1       5       0        0       0       0         0          0         0
## 2       5       0        0       0       0         0          0         0
## 3       5       0        0       0       0         0          0         0
## 4       0       0        0       0       0         0          0         0
## 5       0       0        0       0       0         0          0         0
## 6       0       0        0       0       0         0          0         0
##   R2208EIIT2 R2208EK2 R2208ENU2 R2208EIL2 R2208EIIL2 R2208ES2 R2208F2 R2208G2
## 1          0                  0         0          0                0       0
## 2          0                  0         0          0                0       0
## 3          0                  0         0          0                0       0
## 4          0                  0         0          0                0       0
## 5          0                  0         0          0                0       0
## 6          0                  0         0          0                0       0
##   R2208H2 R2208A3 R2208B3 R2208BI3 R2208C3 R2208D3 R2208EIB3 R2208EIIB3
## 1       0       5       0        0       0       0         0          0
## 2       0       5       0        0       0       0         0          0
## 3       0       5       0        0       0       0         0          0
## 4       0       0       0        0       0       0         0          0
## 5       0       0       0        0       0       0         0          0
## 6       0       0       0        0       0       0         0          0
##   R2208EIT3 R2208EIIT3 R2208EK3 R2208ENU3 R2208EIL3 R2208EIIL3 R2208ES3 R2208F3
## 1         0          0                  0         0          0                0
## 2         0          0                  0         0          0                0
## 3         0          0                  0         0          0                0
## 4         0          0                  0         0          0                0
## 5         0          0                  0         0          0                0
## 6         0          0                  0         0          0                0
##   R2208G3 R2208H3 R2208A4 R2208B4 R2208BI4 R2208C4 R2208D4 R2208EIB4 R2208EIIB4
## 1       0       0       1       1   600000       3       1    200000         17
## 2       0       0       5       0        0       0       0         0          0
## 3       0       0       1       1   400000       2       1    240000         20
## 4       0       0       0       0        0       0       0         0          0
## 5       0       0       0       0        0       0       0         0          0
## 6       0       0       0       0        0       0       0         0          0
##   R2208EIT4 R2208EIIT4    R2208EK4 R2208ENU4 R2208EIL4 R2208EIIL4 R2208ES4
## 1     40000         16 DAGING AYAM        59     70000          2       KG
## 2         0          0                     0         0          0         
## 3     60000         36     KENTANG        13    100000          5       KG
## 4         0          0                     0         0          0         
## 5         0          0                     0         0          0         
## 6         0          0                     0         0          0         
##   R2208F4 R2208G4 R2208H4 R2208A5 R2208B5 R2208BI5 R2208C5 R2208D5 R2208EIB5
## 1       1       1       1       5       0        0       0       0         0
## 2       0       0       0       1       1   600000       3       1    110000
## 3       1       5       1       5       0        0       0       0         0
## 4       0       0       0       0       0        0       0       0         0
## 5       0       0       0       0       0        0       0       0         0
## 6       0       0       0       0       0        0       0       0         0
##   R2208EIIB5 R2208EIT5 R2208EIIT5        R2208EK5 R2208ENU5 R2208EIL5
## 1          0         0          0                         0         0
## 2         10     26000         16 DAGING AYAM RAS        59     32000
## 3          0         0          0                         0         0
## 4          0         0          0                         0         0
## 5          0         0          0                         0         0
## 6          0         0          0                         0         0
##   R2208EIIL5 R2208ES5 R2208F5 R2208G5 R2208H5 R2209A R2209B R2209C R2210A
## 1          0                0       0       0      5      5      5      5
## 2          1       KG       1       1       1      1      5      5      5
## 3          0                0       0       0      1      5      5      5
## 4          0                0       0       0      5      5      5      5
## 5          0                0       0       0      5      5      5      1
## 6          0                0       0       0      5      5      5      5
##   R2210B1 R2210B2 R2210B3 R2210B4 R2210B5 R2211A R2211A1 R2211A2 R2211A3
## 1       5       5       5       5       5      1  600000       0       0
## 2       5       5       5       5       5      5       0       0       0
## 3       5       5       5       5       5      5       0       0       0
## 4       5       5       5       5       5      5       0       0       0
## 5       5       5       5       5       5      5       0       0       0
## 6       5       5       5       5       5      5       0       0       0
##   R2211A4 R2211A5 R2211B R2211B1 R301 R302 R303 R304 R305                   FWT
## 1       0       0      5       0    4    0    4    3    1    45.488.910.141.175
## 2       0       0      5       0    2    0    2    2    0 1.723.768.210.467.770
## 3       0       0      5       0    3    0    3    3    1 2.415.786.610.685.150
## 4       0       0      5       0    7    1    6    5    1 9.367.356.293.854.040
## 5       0       0      5       0    3    0    3    3    1 1.222.175.562.382.740
## 6       0       0      5       0    2    0    2    2    0   763.808.540.079.965

Mengambil dan mengubah variabel secara langsung

data2 <- data.frame(Banyak = data$R2208EIIB2)
data3 <- data.frame(Banyak = data$R2208EIIB3)

Memfilter data yang tidak sama dengan 0

data2 <- filter(data2, Banyak != 0)
data3 <- filter(data3, Banyak != 0)

Mengubah bentuk data menjadi numerik

data2$Banyak <- as.numeric(data2$Banyak)
data3$Banyak <- as.numeric(data3$Banyak)
head(data2)
##   Banyak
## 1     10
## 2     13
## 3     10
## 4     20
## 5     10
## 6      7
head(data3)
##   Banyak
## 1     10
## 2     13
## 3     10
## 4      1
## 5      7
## 6     10

Membuat Boxplot dan Density Plot Bulan Februari

#boxplot dari data2
ggplot(data2)+
  geom_boxplot(aes(y=Banyak),fill="lightblue") +
  labs(title="Banyak Beras yang dibeli Pada Bulan Februari 2023", y="Banyak (kg)")

#density plot dari data2
ggplot(data2)+
  geom_density(aes(x=Banyak,fill = "Kuantitas Beras"),color="pink", alpha=0.5) +
  labs(title="Banyak Beras yang dibeli Pada Bulan Februari 2023", x="Banyak (kg)", y="") +
  scale_fill_discrete(name="Keterangan", labels=c("Kuantitas Beras"))

Interpretasi

Boxplot tersebut menunjukkan bahwa garis tengah (Median data) berada di angka data 10. Hal ini menujukkan bahwa 50% data pengamatan lebih kecil atau sama dengan nilai pada data 10 ini. Terlihat bahwa hanya terdapat Q2 sampai Q3. Hal ini menunjukkan bahwa data tersebar di titik tengah 10 dan menyebar sampai ke kuartil ke 3.  Selain itu terlihat whisker plot yang menunjukkan data tersebar sampai ke beberapa titik dari atas dan bawah dimana data masih belom dikategorikan sebagai outlier. Hal ini dapat dilihat bahwa terdapat beberapa pencilan atas dan lebih banyak pencilan atas. Hal ini kemudian dapat dikategorikan dalam denistiy plot.

Pada density plot tersebut dapat dilihat korelasi pada boxplot. DImana kebanyakan data berada di frekuensi 10. Dan kemudian tersebar secara tidak merata ke beberapa frekuensi. Sampai ke 30 dan terdapat pencilan di data ke 40. Median pada data di boxplot yang mengarah ke 10 dapat dibuktikan disini. Dimana data sebagian besar berada di 10. Hal ini menunjukkan bahwa data akan memusat di frekuensi ke 10.  Dapat dilihat pula pencilan di data ke 20  sampai ke 40. Hal ini berkaitan dengan data yang menyebar dan memadat di frekuensi ke 10.

Membuat Boxplot dan Density Plot Bulan Januari

#boxplot dari data3
ggplot(data3)+
  geom_boxplot(aes(y=Banyak),fill="lightblue") +
  labs(title="Banyak Beras yang dibeli Pada Bulan Januari 2023", y="Banyak (kg)")

#density plot dari data3
ggplot(data3)+
  geom_density(aes(x=Banyak,fill = "Kuantitas Beras"),color="pink", alpha=0.5) +
  labs(title="Banyak Beras yang dibeli Pada Bulan Januari 2023", x="Banyak (kg)", y="") +
  scale_fill_discrete(name="Keterangan", labels=c("Kuantitas Beras"))

Interpretasi

Dari Boxplot tersebut dapat terlihat mediannya saja dimana tidak terdapat box untuk quartil 1 dan quartil 3. Hal ini menunjukkan bahwa kebanyakan data  beras yang dibeli pada Bulan Januari 2023 berada di angka 10 kg. Kemudian data akan menyebar dengan pencilan dimulai dari 10 ke bawah dan 10 sampai ke 30. Kebanyakan data pencilan berada di range 10 sampai ke 30, dan tidak menandai adanya whisker plot. Hal ini menunjukkan bahwa data tidak menyebar selain di median, dan kemudian data akan tersebar sebagai pencilan.

Pada Density plot ini juga menunjukkan bahwa frekuensi data juga seperti pada di Bulan Januari yaitu berada di frekunsi 10, data pada frekuensi 10 juga menyebar lebih luas. Dimana hal ini  bahwa sebagian besar data akan berada di data dengan frekuensi 10. Kemudian data akan mengecil ke kiri dan ke kanan. Dari data-data dibawah 10, dan 10 sampai ke 40.