Data

library(readxl)
DataQonita <- read_xlsx("C:\\Users\\ASUS\\Documents\\Nita\\SEMESTER 4\\Visdat\\PRAKTIKUM 5\\Data Susenas_Tugas.xlsx")
DataQonita
## # A tibble: 1,989 × 14
##    R405  R406A R406B Tahun  R407  R408  R409  R607  R608 R6T09  R621  R703  R807
##    <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
##  1 Laki…     2 April  1957    64     1    20     1     2     2     0     1     0
##  2 Pere…     4 Juni   1975    46     1    18     1     2     2     0     1     0
##  3 Pere…     2 April  2007    14     0    NA     1     2     2     0     3     2
##  4 Laki…    10 Mei    1995    26     1    23     1     1     2     0     1     0
##  5 Laki…    25 Febr…  2019     3     0    NA     2     2     2     0     0     0
##  6 Laki…    12 Okto…  1962    59     1    20     1     2     2     0     1     0
##  7 Pere…     3 Juli   1965    56     1    17     1     2     2     0     3     0
##  8 Laki…     6 Maret  1965    57     1    18     1     2     2     0     1     0
##  9 Pere…     4 Agus…  1970    51     1    14     1     2     2     0     3     0
## 10 Laki…     8 April  1993    28     1    19     1     2     2     0     1     0
## # ℹ 1,979 more rows
## # ℹ 1 more variable: R612 <dbl>
library(tidyverse) 
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'ggplot2' was built under R version 4.3.2
## Warning: package 'dplyr' was built under R version 4.3.2
## Warning: package 'lubridate' was built under R version 4.3.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2     
## ── 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
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
library(ggplot2)
library(treemap)
## Warning: package 'treemap' was built under R version 4.3.3
library(treemapify)
## Warning: package 'treemapify' was built under R version 4.3.3
library(nycflights13)
## Warning: package 'nycflights13' was built under R version 4.3.3

Visualisasi Besaran Data

Lolipop Chart

DataQonita %>%
  count(R406B) %>%
  ggplot() +
  geom_segment(aes(x = fct_reorder(as.factor(R406B), n), xend = fct_reorder(as.factor(R406B), n), y = 0, yend = n), color = "paleturquoise3") +
  geom_point(aes(x = fct_reorder(as.factor(R406B), n), y = n), color = "palevioletred1", size = 3) +
  scale_y_continuous(expand = c(0, 0)) +
  coord_flip() +
  ggtitle("Number of Household Members Based on Month of Birth") +
  xlab("Month") +
  ylab("Number of Household Members") +
  theme_light() +
  theme(plot.title = element_text(hjust = 0))

Interpretasi

Lolipop chart ini menampilkan jumlah anggota rumah tangga berdasarkan bulan lahirnya, yang ditampilkan sesuai urutan jumlah terbesar ke terkecil. Hal yang dapat kita peroleh yaitu, Jumlah anggota keluarga paling banyak lahir pada Bulan Agustus, Juli dan Juni dan paling sedikit adalah lahir pada Bulan Novemver, Februari, dan September. Lalu urutan bulan berdasarkan banyaknya anggota rumah tangga yang lahir di bulan tersebut dari terbesar ke terkecil adalah Agustus, Juli, Juni, Mei, April, Maret, Oktober, Januari, September, Februari, Desember dan November.

Stacked Bar Chart

data_stacked <- DataQonita %>%
  filter(R409 %in% c(20, 27, 17, 14, 30))
ggplot(data_stacked, aes(x = as.factor(R405), y = frequency(R409), fill = as.factor(R409))) +
  geom_bar(stat = "identity") +
  labs(fill = "age") +
  ggtitle("Age of Household Members at Marriage") +
  xlab("Gender") +
  ylab("Frequency") +
  scale_fill_manual(values = c("20" = "#33FF00", "27" = "#003300", "17" = "#99FF00", "14" = "#CCFF00" , "30" = "#339966")) +
  theme_minimal()

Interpretasi

Stacked Bar Chart ini menampilkan besaran untuk usia anggota keluarga saat melangsungkan pernikahan, dengan usia yang diambil dan dibandingkan adalah 14, 17, 20, 27, dan 30 tahun. Informasi yang dapat diperoleh dari stacked bar chart ini adalah membandingkan banyaknya anggota keluarga yang menikah pada usia 14, 17, 20, 27, dan 30 tahun baik pada laki-laki dan perempuan. Didapat bahwa baik pada laki-laki maupun perempuan, usia saat menikah dengan jumlah anggota rumah tangga terbanyak adalah 20 tahun dan terendah adalah pada usia 14 tahun. Namun, dapat dilihat juga bahwa pada usia termuda (14 tahun), Perempuan lebih banyak yang sudah melangsungkan pernikahan dibandingkan dengan laki-laki. begitu pula pada usia 17 tahun dan 30 tahun, perempuan lebih banyak yang melangsungkan pernikahan pada usia tersebut dibandingkan dengan laki-laki. selain itu pada usia 27 tahun, justru laki-laki yang lebih banyak melangsungkan pernikahan pada usia tersebut dibandingkan dengan permepuan.

Visualisasi Sebaran Data

Density Plot

ggplot(DataQonita, aes(x = R409)) +
  geom_density(fill = "#9966cc", alpha = 0.5) +
  labs(title = "Age of Household Members at Marriage",
       x = "Age", y = "Density") +
  theme_minimal()
## Warning: Removed 860 rows containing non-finite values (`stat_density()`).

Interpretasi

Density Plot tersebut menampilkan visualisasi sebaran data dengan data usia anggota rumah tangga saat menikah. Dari density plot tersebut, diperoleh informasi bahwa data usia anggota keluarga saat menikah tersebut menjulur ke kanan atau ekor terdapat di sebelah kanan (skewed right atau positively skewed) di mana data di sebelah kanan memiliki frekuensi lebih kecil dari data sebelah kiri. Dari Density plot tersebut juga dapat dilihat bahwa sebaran data tertinggi terdapat di sekitar 20. Jadi dapat disimpulkan bahwa data usia anggota rumah tangga saat menikah menjulur ke kanan (skewed right atau positively skewed) dengan median di sekitar 20 tahun atau frekuensi tertinggi dari usia anggota rumah tangga saat menikah adalah sekitar 20 tahun.

Violin Plot dan Boxplot

ggplot(DataQonita, aes(x = "", y = R407)) +
  geom_violin(fill = "#339966", alpha = 0.5) +
  geom_boxplot(width = 0.1, color = "black", fill = "white", outlier.shape = NA) +
  labs(title = "Violin Plot and Boxplot: Age Distribution of Household Members",
       x = NULL,
       y = "Age") +
  coord_flip() +
  theme_minimal()

Interpretasi

Violin plot dan boxplot tersebut menampilkan visualisasi sebaran data dengan data usia anggota rumah tangga secara keseluruhan. Dari violin dan boxplot tersebut, diperoleh informasi bahwa data usia anggota keluarga secara keseluruhan tersebut menjulur ke kanan atau ekor terdapat di sebelah kanan (skewed right atau positively skewed) di mana data di sebelah kanan memiliki frekuensi lebih kecil dari data sebelah kiri.

Sebaran Komposisi

Donut Chart

data <- data.frame(
  category=c("Working", "Not at school", "Other", "Taking care of the household", "At school"),
  count=c(775, 367, 100, 456, 291 )
)
data$fraction = data$count / sum(data$count)
data$ymax = cumsum(data$fraction)
data$ymin = c(0, head(data$ymax, n=-1))
 
ggplot(data, aes(ymax=ymax, ymin=ymin, xmax=4, xmin=3, fill=category)) +
    geom_rect() +
    coord_polar(theta="y") +
    xlim(c(2, 4)) +
     labs(title = "Composition of Activities of Household Members", fill = "Activities") +
    theme_minimal()

Interpretasi

Donut Chart atau diagram donat tersebut menampilkan visualisasi komposisi. Data yang ditampilkan dalam donut chart tersebut adalah data komposisi kegiatan anggota rumah tangga, dengan kegiatan dibagi menjadi lima bagian yaitu sekolah, belum sekolah, mengurus rumah tangga, bekerja, dan kegiatan lainnya. dapat dilihat dari donut chart tersebut, aktivitas bekerja merupakan aktivitas dengan komposisi tertinggi dibandingkan dengan empat kegiatan lainnya dengan 0,375 bagian atau 37,5% dari total anggota rumah tangga yang ada. Kemudian komposisi tertinggi selanjutnya adalah mengurus rumah tangga, belum sekolah, sekolah, dan komposisi terkecil ada pada kegiatan lainnya.

Treemap

treemap(DataQonita, 
        index=c("R703", "R612"), 
        vSize="R807",
        algorithm="pivotSize",
        draw = TRUE,
        title="Treemap: Computer Ownership Based on Activity and Education Level",
        fontsize.title=15,
        fontsize.labels=12,
        fontcolor.labels="white")

Interpretasi

Treemap tersebt memvisualisasikan komposisi data, dengan data yaitu kepemilikan komputer berdasarkan kegiatan yang dilakukan serta jenjang perdidikan anggota rumah tangga. Dari Treemap tersebut dapat dilihat bahwa komposisi tertinggi kepemilikan komputer terdapat pada kegiatan anggota rumah tangga “bekerja” dengan tingkat pendidikan yang beragam. Serta komposisi terendah komputer terdapat pada kegiatan anggota rumah tangga “Kegiatan” dengan tingkat pendidikan yang beragam.