Deskripsi : Dataset “infert” adalah dataset bawaan di R yang berisi data dari studi kasus-kontrol yang mencermati hubungan antara infertilitas dan riwayat aborsi (baik spontan maupun yang diinduksi). Studi ini dilakukan sebelum tersedianya metode conditional logistic regression dan menggunakan pendekatan pencocokan (matched case-control study).
Detail:
Struktur dataset “infert” ini memiliki 83 observasi dengan 8 variabel, yang dijelaskan sebagai berikut:
1. | Education | 0 = 0-5 years 1 = 6-11 years 2 = 12+ years |
2. | Age | age in years of case |
3. | Parity | Count |
4. | Number of prior induced abortions | 0 = 0 1 = 1 2 = 2 or more |
5. | Case Status | 1 = case 0 = control |
6. | Number of prior spontaneous abortions | 0 = 0 1 = 1 2 = 2 or more |
7. | matched set number | 1-83 |
8. | stratum number | 1-63 |
Sebelum kita melakukan visualisasi data, instal packages “ggplot2” terlebih dahulu, dan input data yang ingin digunakan. Pada kali ini data yang digunakan adalah “infert”
library(ggplot2)
data(infert)
head(infert)
## education age parity induced case spontaneous stratum pooled.stratum
## 1 0-5yrs 26 6 1 1 2 1 3
## 2 0-5yrs 42 1 1 1 0 2 1
## 3 0-5yrs 39 6 2 1 0 3 4
## 4 0-5yrs 34 4 2 1 0 4 2
## 5 6-11yrs 35 3 1 1 1 5 32
## 6 6-11yrs 36 4 2 1 1 6 36
tail(infert)
## education age parity induced case spontaneous stratum pooled.stratum
## 243 12+ yrs 25 1 0 0 1 78 41
## 244 12+ yrs 31 1 0 0 1 79 45
## 245 12+ yrs 34 1 0 0 0 80 47
## 246 12+ yrs 35 2 2 0 0 81 54
## 247 12+ yrs 29 1 0 0 1 82 43
## 248 12+ yrs 23 1 0 0 1 83 40
NROW(infert) #NROW atau bisa juga dim
## [1] 248
dim(infert)
## [1] 248 8
Berikut dibawah ini adalah beberapa visualisasi yang dapat digunakan ketika data numerik “airquality” yaitu:Barchart, Needle chart, Grouped bar chart, Stacked bar chart,Pie Chart, dan Spasial.
ggplot(data=infert, mapping=aes(x=education))+
geom_bar()
Berikut adalah tahapan untuk membuat tabel frekuensi
freqtab <- as.data.frame(table(infert$education))
freqtab
## Var1 Freq
## 1 0-5yrs 12
## 2 6-11yrs 120
## 3 12+ yrs 116
Berikut adalah tahapan untuk membuat Bar Chart
ggplot(data=freqtab, mapping=aes(x=Var1, y=Freq))+
geom_bar(stat="identity")
#Atau bisa juga
ggplot(data=freqtab, mapping=aes(x=Var1, y=Freq))+
geom_col()
Berikut adalah tahapan untuk memodifikasi Bar Chart
ggplot(data=freqtab, mapping=aes(x=Var1, y=Freq))+
geom_col(fill="olivedrab", alpha=0.9)+
labs(title = "Frekuensi Berdasarkan Education",
x="Education",
y="frequensi")+
geom_text(aes(label=Freq), vjust=0.6)
Kategori 0-5 tahun pendidikan memiliki jumlah individu yang paling sedikit, yaitu 12 orang. Ini menunjukkan bahwa hanya sedikit orang dalam dataset “infert” ini yang memiliki tingkat pendidikan rendah.
Kategori 6-11 tahun pendidikan memiliki frekuensi tertinggi, yaitu 120 orang. Ini menunjukkan bahwa mayoritas individu dalam dataset “infert” ini memiliki tingkat pendidikan menengah.
Kategori 12 tahun atau lebih pendidikan memiliki frekuensi 116 orang, yang hampir sama dengan kategori 6-11 tahun.
ggplot(data=freqtab,
mapping=aes(x=reorder(Var1,Freq), y=Freq))+
geom_segment(aes(x=reorder(Var1,Freq),
xend=reorder(Var1,Freq),
y=0, yend=Freq), color="violetred2")+
geom_point(color="palegoldenrod", size=9, alpha=0.9)+
coord_flip()+
labs(y="Jumlah Observasi", x="Education")+
geom_text(aes(label=Freq), vjust=-0.10)
Bubble terbesar berada pada kategori 6-11 tahun, menunjukkan jumlah observasi paling banyak yaitu 120 observasi.
Bubble untuk kategori 12+ tahun hampir sama besarnya dengan kategori 6-11 tahun, mengindikasikan jumlah observasi yang hampir seimbang.
Bubble terkecil berada pada kategori 0-5 tahun, yang menunjukkan jumlah observasi yang sangat sedikit yaitu 12 observasi.
ggplot(data=infert,
aes(x=education, fill=as.factor(case))) +
geom_bar(position="dodge", stat="count") +
labs(x="Education", fill="Kasus Infertilitas", y="Jumlah Responden") +
scale_fill_brewer(palette="Accent") +
theme_light()
Kategori 6-11 tahun memiliki kasus infertilitas terbanyak dibandingkan kategori lainnya. Kategori 12+ tahun memiliki jumlah kasus infertilitas yang hampir sama dengan kategori 6-11 tahun. Dan yang terakhir, kategori 0-5 tahun memiliki jumlah kasus infertilitas yang sangat kecil, sesuai dengan total jumlah respondennya yang memang sedikit.
Pada setiap tingkat pendidikan, jumlah individu tanpa infertilitas (warna hijau, 0) lebih besar dibandingkan jumlah individu dengan infertilitas (warna ungu, 1).Infertilitas tampaknya tidak terlalu bergantung pada tingkat pendidikan, karena proporsi kasus infertilitas pada kelompok 6-11 tahun dan 12+ tahun hampir sama.
ggplot(data=infert,
mapping=aes(x=education, fill=as.factor(case)))+
geom_bar(position="stack", stat="count")+
labs(x="Educationn", fill="Kasus Infertilitas",
y="Jumlah Responden")+
scale_fill_brewer(palette = "Paired")+
theme_light()
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
df <- infert %>%
group_by(education) %>%
summarise(counts=n())
df
## # A tibble: 3 × 2
## education counts
## <fct> <int>
## 1 0-5yrs 12
## 2 6-11yrs 120
## 3 12+ yrs 116
library(dplyr)
df <- df %>%
arrange(desc(education)) %>%
mutate(prop=round(counts*100/sum(counts), 1),
lab.ypos = cumsum(prop)-0.5*prop)
head(df,4)
## # A tibble: 3 × 4
## education counts prop lab.ypos
## <fct> <int> <dbl> <dbl>
## 1 12+ yrs 116 46.8 23.4
## 2 6-11yrs 120 48.4 71
## 3 0-5yrs 12 4.8 97.6
ggplot(df, aes(x="",y = prop, fill=education))+
geom_bar(width=1,stat="identity", color="black")+
geom_text(aes(y=lab.ypos, label = prop), color="yellow")+
coord_polar("y", start=0)+
ggpubr::fill_palette("jco")+
theme_void()
Langkah pertama yang harus dilakukan adalah memuat library yang dibutuhkan, seperti readxl untuk membaca file dalam format Excel.
library(readxl)
data.spasial <- read_xlsx("D:/Pictures/SEMESTER 4/Visualisasi Data/dataexcel_ntb.xlsx",sheet = 1)
head(data.spasial)
## # A tibble: 6 × 7
## NAME_1 ID_2 NAME_2 TYPE_2 ENGTYPE_2 Longitude Latitude
## <chr> <dbl> <chr> <chr> <chr> <dbl> <dbl>
## 1 Nusa Tenggara Barat 268 Bima Kabupaten Regency 119. -8.45
## 2 Nusa Tenggara Barat 269 Bima Kotamadya Municipa… 119. -8.47
## 3 Nusa Tenggara Barat 270 Dompu Kabupaten Regency 118. -8.49
## 4 Nusa Tenggara Barat 271 Lombok Barat Kabupaten Regency 116. -8.52
## 5 Nusa Tenggara Barat 272 Lombok Tengah Kabupaten Regency 116. -8.71
## 6 Nusa Tenggara Barat 273 Lombok Timur Kabupaten Regency 117. -8.53
#import shp
library(sf)
## Linking to GEOS 3.13.0, GDAL 3.10.1, PROJ 9.5.1; sf_use_s2() is TRUE
shp.NTB<- read_sf("D:/Pictures/SEMESTER 4/Visualisasi Data/PETA SHP 34 Prov/22-NTB/Export_Output_2.dbf")
shp.NTB
## Simple feature collection with 9 features and 7 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 115.8201 ymin: -9.110002 xmax: 119.3472 ymax: -6.55222
## Geodetic CRS: WGS 84
## # A tibble: 9 × 8
## NAME_1 ID_2 NAME_2 TYPE_2 ENGTYPE_2 Longitude Latitude
## <chr> <dbl> <chr> <chr> <chr> <dbl> <dbl>
## 1 Nusa Tenggara Barat 268 Bima Kabupaten Regency 119. -8.45
## 2 Nusa Tenggara Barat 269 Bima Kotamadya Municipa… 119. -8.47
## 3 Nusa Tenggara Barat 270 Dompu Kabupaten Regency 118. -8.49
## 4 Nusa Tenggara Barat 271 Lombok Barat Kabupaten Regency 116. -8.52
## 5 Nusa Tenggara Barat 272 Lombok Tengah Kabupaten Regency 116. -8.71
## 6 Nusa Tenggara Barat 273 Lombok Timur Kabupaten Regency 117. -8.53
## 7 Nusa Tenggara Barat 274 Mataram Kotamadya Municipa… 116. -8.58
## 8 Nusa Tenggara Barat 275 Sumbawa Barat Kabupaten Regency 117. -8.83
## 9 Nusa Tenggara Barat 276 Sumbawa Kabupaten Regency 117. -8.70
## # ℹ 1 more variable: geometry <MULTIPOLYGON [°]>
#menggabungkn data
# Import library yang diperlukan
library(sf)
library(dplyr) # Pastikan library dplyr digunakan untuk left_join
gabung.NTB <- left_join(shp.NTB,data.spasial,by="ID_2",relationship = "many-to-many")
plot.NTB<- ggplot(data = gabung.NTB)+
geom_sf(aes(fill = Latitude.x))+
scale_fill_distiller("index rate", palette = "Greens")
plot.NTB
Warna hijau tua menunjukkan nilai index rate yang lebih rendah (sekitar -8.8). Warna hijau muda menunjukkan nilai index rate yang lebih tinggi (mendekati -8.5).
Jadi dengan adanya perubahan warna tersebut menunjukkan kabupaten dengan warna hijau tua memiliki index rate yang paling rendah dibanding daerah lain. Jika index rate ini berkaitan dengan indikator ekonomi, sosial, atau lingkungan, maka daerah dengan warna lebih gelap mungkin memiliki kondisi yang kurang menguntungkan dibandingkan daerah lain. Sebaliknya, daerah dengan warna lebih terang mungkin memiliki kondisi yang lebih baik berdasarkan indikator tersebut.