Tugas Visualisasi Data

  • Klik Disini Untuk Menuju Rpubs Annebel
  • Klik Disini Untuk Menuju Rpubs Hendra
  • Package

    Package yang digunakan pada percobaan ini adalah:

    library(knitr)
    library(kableExtra)
    library(tidyverse)
    library(ggridges)
    library(GGally)
    library(plotly)     # Untuk membuat plot interaktif
    library(mosaicData) # Untuk dataset
    library(tidyverse)
    library(ggridges)
    library(grid) 
    library(DT)

    Visualiasi Data

    Data

    Data yang digunakan pada percobaan ini adalah data Weather yang memiliki 25 kolom.

    2016-2017 weather in several cities : merupakan data time series yang menggambarkan kondisi perkembangan cuaca pada beberapa kota yang dirinci menurut bulan dan hari pada tahun 2016-2017

    mosaicData::Weather
    ## # A tibble: 3,655 x 25
    ##    city  date        year month   day high_temp avg_temp low_temp high_dewpt
    ##    <chr> <date>     <dbl> <int> <dbl>     <dbl>    <dbl>    <dbl>      <dbl>
    ##  1 Auck~ 2016-01-01  2016     1     1        68       65       62         64
    ##  2 Auck~ 2016-01-02  2016     1     2        68       66       64         64
    ##  3 Auck~ 2016-01-03  2016     1     3        77       72       66         70
    ##  4 Auck~ 2016-01-04  2016     1     4        73       66       60         66
    ##  5 Auck~ 2016-01-05  2016     1     5        69       62       55         55
    ##  6 Auck~ 2016-01-06  2016     1     6        69       63       57         54
    ##  7 Auck~ 2016-01-07  2016     1     7        71       66       60         59
    ##  8 Auck~ 2016-01-08  2016     1     8        77       70       64         72
    ##  9 Auck~ 2016-01-09  2016     1     9        69       66       64         68
    ## 10 Auck~ 2016-01-10  2016     1    10        71       66       62         63
    ## # ... with 3,645 more rows, and 16 more variables: avg_dewpt <dbl>,
    ## #   low_dewpt <dbl>, high_humidity <dbl>, avg_humidity <dbl>,
    ## #   low_humidity <dbl>, high_hg <dbl>, avg_hg <dbl>, low_hg <dbl>,
    ## #   high_vis <dbl>, avg_vis <dbl>, low_vis <dbl>, high_wind <dbl>,
    ## #   avg_wind <dbl>, low_wind <dbl>, precip <chr>, events <chr>
    kbl(head(Weather,20), caption = "Data Weather") %>%  kable_styling() %>% scroll_box(height = "300px")
    Data Weather
    city date year month day high_temp avg_temp low_temp high_dewpt avg_dewpt low_dewpt high_humidity avg_humidity low_humidity high_hg avg_hg low_hg high_vis avg_vis low_vis high_wind avg_wind low_wind precip events
    Auckland 2016-01-01 2016 1 1 68 65 62 64 60 55 100 82 68 30.15 30.09 30.01 6 6 4 21 15 28 0 Rain
    Auckland 2016-01-02 2016 1 2 68 66 64 64 63 61 100 94 88 30.04 29.90 29.80 6 5 1 33 21 46 0 Rain
    Auckland 2016-01-03 2016 1 3 77 72 66 70 67 64 100 91 74 29.80 29.73 29.68 6 6 1 18 12 NA 0 Rain
    Auckland 2016-01-04 2016 1 4 73 66 60 66 60 54 100 76 53 30.12 29.90 29.77 6 6 6 15 10 NA 0 Rain
    Auckland 2016-01-05 2016 1 5 69 62 55 55 52 48 82 69 56 30.21 30.14 30.09 6 6 6 13 7 NA 0 NA
    Auckland 2016-01-06 2016 1 6 69 63 57 54 51 46 88 65 46 30.24 30.22 30.18 6 6 6 17 8 28 0 NA
    Auckland 2016-01-07 2016 1 7 71 66 60 59 54 50 83 65 53 30.24 30.13 30.04 6 6 6 22 12 25 0 Rain
    Auckland 2016-01-08 2016 1 8 77 70 64 72 67 59 100 92 83 30.01 29.79 29.62 6 6 2 21 14 28 0 Rain
    Auckland 2016-01-09 2016 1 9 69 66 64 68 61 55 100 81 64 29.86 29.76 29.65 6 6 4 18 11 29 0 Rain
    Auckland 2016-01-10 2016 1 10 71 66 62 63 58 55 88 76 64 29.95 29.86 29.83 6 6 6 20 15 NA 0 Rain
    Auckland 2016-01-11 2016 1 11 75 67 59 61 58 54 94 72 53 30.09 30.03 29.95 6 6 6 17 10 26 0 NA
    Auckland 2016-01-12 2016 1 12 69 66 62 66 62 59 100 87 78 30.09 30.01 29.95 6 6 3 16 8 NA 0 Rain
    Auckland 2016-01-13 2016 1 13 71 66 62 61 57 54 83 73 64 30.06 30.00 29.95 6 6 6 18 13 NA 0 NA
    Auckland 2016-01-14 2016 1 14 75 68 62 63 61 59 94 80 65 30.21 30.13 30.04 6 6 6 17 9 NA 0 NA
    Auckland 2016-01-15 2016 1 15 75 68 62 63 60 57 94 76 57 30.21 30.12 30.04 6 6 6 15 7 NA 0 NA
    Auckland 2016-01-16 2016 1 16 78 68 59 66 61 50 100 76 41 30.09 30.04 29.98 6 6 6 12 4 NA 0 Rain
    Auckland 2016-01-17 2016 1 17 78 72 66 68 65 63 94 80 61 30.04 29.95 29.92 6 6 6 21 11 NA 0 Rain
    Auckland 2016-01-18 2016 1 18 77 72 68 72 68 64 100 89 69 29.92 29.86 29.80 6 6 2 29 18 41 0 Rain
    Auckland 2016-01-19 2016 1 19 75 68 62 70 62 59 100 78 61 30.01 29.91 29.83 6 6 6 20 11 NA 0 Rain
    Auckland 2016-01-20 2016 1 20 75 68 62 63 62 61 94 78 65 30.09 30.03 29.98 6 6 6 12 5 NA 0 NA

    Data Weather memiliki 3655 observasi data dan 25 kolom

    dim(Weather)
    ## [1] 3655   25
    colnames(Weather)
    ##  [1] "city"          "date"          "year"          "month"        
    ##  [5] "day"           "high_temp"     "avg_temp"      "low_temp"     
    ##  [9] "high_dewpt"    "avg_dewpt"     "low_dewpt"     "high_humidity"
    ## [13] "avg_humidity"  "low_humidity"  "high_hg"       "avg_hg"       
    ## [17] "low_hg"        "high_vis"      "avg_vis"       "low_vis"      
    ## [21] "high_wind"     "avg_wind"      "low_wind"      "precip"       
    ## [25] "events"

    Grafik

    Dilakukan agregasi data temperatur menurut city

    df<-Weather  %>% group_by(city)  %>% summarise(m=sum(avg_temp))  
    df
    ## # A tibble: 5 x 2
    ##   city          m
    ## * <chr>     <dbl>
    ## 1 Auckland  44311
    ## 2 Beijing   40562
    ## 3 Chicago   38512
    ## 4 Mumbai    59165
    ## 5 San Diego 48649

    Visualisasi Data Dengan Line Chart

    ggplot(df, aes(x=city, y=m)) + 
        geom_line(aes(group=4), size=2, colour="green") +  
        geom_point(size=5, colour=c("red", "yellow", "blue", "orange", "black"))+
        geom_label(data = df,
                 aes(label = m, x = city, y=m), 
                 vjust = -0.5,
                 show.legend = TRUE)+ 
        ggtitle("Weather in several cities")+ 
        labs(x=NULL,  y=NULL)+
        ylim(38000,63000)

    Catatan Pelanggaran

    1 Apprehension (Pemahaman) : Kemampuan untuk melihat hubungan di antara data dengan benar

    Data Weather merupakan data yang berisi kondisi cuaca pada beberapa kota yang dirinci menurut tahun, bulan, dan hari. Plot yang dibuat adalah penjumlahan temperatur menurut kota pada series waktu 2016-2017. Plot menampilkan group by city dan summary data berupa penjumlahan temperatur (temp) selama 2016-2017, sehingga tidak tepat menggambarkan perbedaan cuaca menurut kota (city). Jenis plot yang digunakan adalah line chart, hal ini dinilai tidak tepat karena data yang ditampilkan bukan jenis data time series.

    2 Clarity (Kejelasan) : Kemampuan untuk membedakan elemen-elemen grafik secara visual

    Pada line chart tidak terdapat label x dan label y, sehingga tidak jelas unit/satuan dari line chart. Line chart juga tidak menampilkan variabel yang diukur satuan dan referensi waktu yang digunakan

    3 Consistency (Konsistensi) : Kemampuan menafsirkan grafik berdasarkan keterpaparan pada grafik serupa di masa lalu atau standar universal yang wajar

    Plot ini tidak konsisten karena kesalahan dalam memilih tipe grafik untuk menampilkan data.

    4 Efficiency (Kejelasan) : Kemampuan grafik untuk menggambarkan data dengan cara sesederhana mungkin

    Pemilihan warna pada unsur line dan point tidak tepat karena menggabungkan warna merah dan hijau, dimana warna tersebut sebaiknya dihindari pada pengidap buta warna

    5 Necesity (Kebutuhan) : Berkaitan dengan kebutuhan grafik atau elemen tertentu.

    Pemberian label jumlah kasus pada setiap line point tidak diperlukan.

    6 Truthfulness (Keadaan sebenarnya) : Apakah data di plot dengan benar dalam sistem koordinat yang ditentukan dengan baik.

    Tidak menggambarkan keadaan yang sebenarnya, karena line chart dibuat dengan kaidah yang salah dari sisi data yang ditampilkan, karena jumlah temperature yang dikelompokan menurut kota (city) menjadikan data hilang makna dan tidak menggambarkan kondisi sebenarnya.

    Perbaikan Grafik Kelompok 6

    Data

    Data yang digunakan adalah data House Price Prediction

    rumah<-read.csv("https://raw.githubusercontent.com/gerrydito/Sains-Data-S2/master/Praktikum/Visualisasi%20Data/house_price.csv", header = TRUE, sep=",")
    datatable(rumah)

    Grafik Awal

    Grafik yang akan saya buat adalah grafik mengenai regresi dengan peubah penjelas adalah jumlah kamar dan peubah y adalah tahun dibangun.

    grafik<-ggplot(aes(x=bedrooms,
                   y=yr_built),
               data=rumah)+
      geom_point(color=rainbow(4600))+
      geom_smooth(method="lm", formula=y~x, colour="black")+geom_line()+
      labs(title="Model Regresi Jumlah Kamar Terhadap Tahun Berdiri")+
      xlab("Jumlah Kamar")+
      ylab("Tahun Berdiri")+xlim(0,50)+theme(plot.title = element_text(hjust = 0.5))
    grafik

    Grafik Perbaikan

    # Menghiangkan data pencilan
    rumah1 <- rumah %>% filter(price !=26590000 & price !=12899000 ) 
    grafik<-ggplot(aes(x=bedrooms,
                   y=price),
               data=rumah1)+
      geom_point(color='black')+
      geom_smooth(method="lm", formula=y~x, colour="blue")+
      labs(title="Model Regresi Jumlah Kamar Terhadap Harga")+
      xlab("Jumlah Kamar")+
      ylab("Harga")+theme(plot.title = element_text(hjust = 0.5))
    grafik

    Catatan Perbaikan

    • Apprehension atau pemahaman

      Menggantikan variabel tahun berdiri dengan variabel jumlah kamar, sehingga substansi data pada grafik dapat menggambarkan model regresi yang lebih tepat, dimana terdapat hubungan antara jumlah kamar tidur dengan harga

    • Clarity atau kejelasan.

      Mengubah warna point menjadi 1 warna karena tidak memiliki makna apapun pada grafik. Serta dilakukan penghapusan 2 observasi data pencilan sehingga model regresi dapat terlihat dengan jelas

    • Consistency atau konsistensi.

      Menghapus plot garis yang menghubungkan antara titik satu dengan titik yang lain

    • Efficiency atau efisiensi.

      Menghapus plot garis yang menghubungkan antara titik satu dengan titik yang lain dan mengubah warna titik menjadi 1 warna

    • Necesity atau kebutuhan.

      Penghapusan elemen garis yang menghubungkan antara titik satu dengan titik yang lain

    • Truthfulness atau keadaan sebenarnya.

      Memperbaiki nilai dari range X dan range Y, agar grafik dapat menggambarkan sebaran plot dan model regresi dengan lebih jelas

    Diskusi

    Berdasarkan hasil diskusi dari kedua kelompok kecil, maka dapat dirangkum pelanggaran beserta perbaikan untuk masing-masing prinsip ACCENT yaitu :

    Prinsip Pelanggaran Perbaikan Perbandingan
    Apprehension Pemilihan variabel yang tidak berkorelasi sehingga plot regresi tidak memiliki substansi yang jelas Variabel yang sebelumnya adalah jumlah kamar dan tahun berdiri, diganti dengan variabel baru yaitu jumlah kamar dan harga yang memiliki korelasi sehingga substansi data menjadi jelas Sesuai dengan diskusi
    Clarity Penggunaan warna yang terlalu beragam dalam 1 variabel yang sama dan data yang memiliki pencilan Warna titik-titik data diubah hanya menjadi 1 warna karena pembedaan warna tidak menjelaskan apapun. Dilakukan juga penghapusan 2 pencilan karena dianggap akan mempengaruhi garis regresi Sesuai dengan diskusi
    Consistency Grafik regresi yang digunakan tidak sesuai dengan standar pada umumnya. Terdapat plot garis yang menghubungkan titik data. Hal ini tidak sesuai standar dan tidak dibutuhkan Menghilangkan garis yang menghubungkan titik-titik data Sesuai dengan diskusi
    Efficiency Penggunaan warna dan garis yang menghubungkan titik data tidak diperlukan karena tidak menjelaskan apapun Warna titik-titik data diubah menjadi 1 warna dan menghilangkan garis yang menghubungkannya Sesuai dengan diskusi
    Necesity Garis yang menghubungkan titik-titik data tidak diperlukan dalam grafik Menghilangkan garis yang menghubungkan titik-titik data Sesuai dengan diskusi
    Truthfulness Skala pada sumbu x (Jumlah Kamar) tidak sesuai dengan range data. Data hanya ada pada range 1-10, sedangkan dalam grafik dibuat skala sampai dengan 50. Hal ini mengurangi keterbacaan data grafik Memperbaiki nilai dari range sumbu X dan Y agar sebaran plot dan model regresi dapat terlihat dengan jelas Sesuai dengan diskusi

    References

    Dito GA, Anisa R. 2020. Visualisasi Data dengan ggplot2. [1 Maret 2021]. (https://rpubs.com/gdito/viz-ggplot2)

    RStudio . tanpa tahun . Data Visualization with ggplot2 Cheat Sheet [4 Maret 2021]. https://rstudio.com/wp-content/uploads/2015/03/ggplot2-cheatsheet.pdf

    Nurussadad, A.A. (2021). Visualisasi Data dengan ggplot2. [3 Maret 2021]. https://rpubs.com/nurussadad/STA581-04-ggplot2


    1. IPB University, ↩︎

    2. IPB University, ↩︎

    3. Badan Pusat Stastitik (Tugas Belajar IPB University), ↩︎

    4. Badan Pusat Stastitik (Tugas Belajar IPB University), ↩︎