Tugas Individu

Ghonniyu Hiban Saputra-G1401221012

Library

library(readxl)
## Warning: package 'readxl' was built under R version 4.3.3
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 'lubridate' was built under R version 4.3.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.3     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.5.0     ✔ 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(dplyr)
library(reshape2)
## 
## Attaching package: 'reshape2'
## 
## The following object is masked from 'package:tidyr':
## 
##     smiths
library(psych)
## Warning: package 'psych' was built under R version 4.3.3
## 
## Attaching package: 'psych'
## 
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
library(ggplot2)
library(sf)
## Warning: package 'sf' was built under R version 4.3.3
## Linking to GEOS 3.11.2, GDAL 3.8.2, PROJ 9.3.1; sf_use_s2() is TRUE
library(gridExtra)
## Warning: package 'gridExtra' was built under R version 4.3.3
## 
## Attaching package: 'gridExtra'
## 
## The following object is masked from 'package:dplyr':
## 
##     combine
library(ggspatial)
## Warning: package 'ggspatial' was built under R version 4.3.3
library(rnaturalearth)
## Warning: package 'rnaturalearth' was built under R version 4.3.3
library(rnaturalearthdata)
## Warning: package 'rnaturalearthdata' was built under R version 4.3.3
## 
## Attaching package: 'rnaturalearthdata'
## 
## The following object is masked from 'package:rnaturalearth':
## 
##     countries110

Input Data

data1 <- read_xlsx("C:/Users/Ghonniyu/Downloads/FINAL ANREG.xlsx",sheet="Kode Peubah")
data1 <- data1[-c(1),]
data1
## # A tibble: 34 × 12
##    Provinsi        Y    X1    X2    X3    X4    X5    X6    X7    X8    X9   X10
##    <chr>       <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
##  1 Aceh         73.4 14.4   4.23  3.76  92.6  65.9  2.56  78.4  6.03 1.32     96
##  2 Sumatera U…  73.4  8.15  5.01  5.4   91.3  71.0  5.44  76.0  5.89 3.20    213
##  3 Sumatera B…  73.8  5.95  4.62  4.3   94.9  59.8  2.35  79.7  5.94 0.665   135
##  4 Riau         74.0  6.68  4.21  4.02  89.0  71.5  2.73  75.9  4.23 7.15     76
##  5 Jambi        72.8  7.58  4.66  4.9   89.3  64.1  1.13  73.0  4.53 1.32     76
##  6 Sumatera S…  71.6 11.8   5.08  5.08  93.2  61.8  2.59  71.5  4.11 3.79    102
##  7 Bengkulu     72.8 14.0   4.26  3.96  91.6  54.7  0.63  76.9  3.42 1.07    103
##  8 Lampung      71.2 11.1   4.55  3.93  90.8  63.2  1.87  72.2  4.23 1.13    268
##  9 Kepulauan …  72.8  4.52  4.38  4.01  89.8  32.6  0.61  70.0  4.56 1.18     90
## 10 Kepulauan …  77.1  5.69  5.2   4.88  94.0  54.2  1.19  76.0  6.8  1.31    260
## # ℹ 24 more rows
data2 <- read_csv("C:/Users/Ghonniyu/Downloads/Data2.csv")
## Rows: 25 Columns: 8
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (1): Volume
## dbl  (2): % Change, % Change vs Average
## num  (4): Open, High, Low, Close
## dttm (1): Date
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
data2
## # A tibble: 25 × 8
##    Date                 Open  High   Low Close `% Change` `% Change vs Average`
##    <dttm>              <dbl> <dbl> <dbl> <dbl>      <dbl>                 <dbl>
##  1 2022-04-30 17:00:00 1897. 1904. 1787  1843.      -3.49                 -4.34
##  2 2022-05-31 17:00:00 1831  1876. 1801  1804.      -2.09                 -2.95
##  3 2022-06-30 17:00:00 1796. 1806. 1680. 1763.      -2.28                 -3.14
##  4 2022-07-31 17:00:00 1764. 1805. 1708. 1713.      -2.84                 -3.69
##  5 2022-08-31 17:00:00 1708. 1728. 1620. 1662.      -2.94                 -3.8 
##  6 2022-10-01 17:00:00 1667. 1728  1623. 1636.      -1.59                 -2.45
##  7 2022-10-31 17:00:00 1631. 1779. 1615. 1746        6.73                  5.88
##  8 2022-11-30 17:00:00 1769. 1826. 1764. 1820.       4.22                  3.37
##  9 2022-12-31 17:00:00 1836. 1941. 1835. 1930.       6.03                  5.18
## 10 2023-01-31 17:00:00 1927. 1959. 1808. 1829.      -5.21                 -6.07
## # ℹ 15 more rows
## # ℹ 1 more variable: Volume <chr>
EUvax <- read.csv("C:/Users/Ghonniyu/Downloads/EUvaccine.csv") 

Visualisasi Antar Peubah

Scatter Plot

plot_X1 <- ggplot(data1, aes(x = X1, y = Y)) + 
  geom_point() + 
  geom_smooth(method = "lm", se = FALSE) + 
  labs(x = "Persentase Penduduk Miskin", y = "IPM")

plot_X2 <- ggplot(data1, aes(x = X2, y = Y)) + 
  geom_point() + 
  geom_smooth(method = "lm", se = FALSE) + 
  labs(x = "Laju Pertumbuhan Ekonomi", y = "IPM")

plot_X3 <- ggplot(data1, aes(x = X3, y = Y)) + 
  geom_point() + 
  geom_smooth(method = "lm", se = FALSE) + 
  labs(x = "PDRB", y = "IPM")

plot_X4 <- ggplot(data1, aes(x = X4, y = Y)) + 
  geom_point() + 
  geom_smooth(method = "lm", se = FALSE) + 
  labs(x = "Indeks Pembangunan Gender", y = "IPM")

# Menggabungkan scatter plot ke dalam satu layout
grid.arrange(plot_X1, plot_X2, plot_X3, plot_X4, nrow = 2)
## `geom_smooth()` using formula = 'y ~ x'
## `geom_smooth()` using formula = 'y ~ x'
## `geom_smooth()` using formula = 'y ~ x'
## `geom_smooth()` using formula = 'y ~ x'

Interpretasi : Terlihat bahwa persentase penduduk miskin(X1), laju pertumbuhan ekonomi(X2), dan PRDB(X3) menunjukkan hubungan linear negatif yang menandakan bahwa semakin sedikit rendah nilai X1,X2, dan X3 maka nilai IPM (Y) akan cenderung meningkat. Sementara peubah Indeks Pembangunan Gender(X4) memiliki hubungan positif terhadap IPM(Y).

Matrix Plot

data_numerik <- select_if(data1, is.numeric)
str(data_numerik)
## tibble [34 × 11] (S3: tbl_df/tbl/data.frame)
##  $ Y  : num [1:34] 73.4 73.4 73.8 74 72.8 ...
##  $ X1 : num [1:34] 14.45 8.15 5.95 6.68 7.58 ...
##  $ X2 : num [1:34] 4.23 5.01 4.62 4.21 4.66 5.08 4.26 4.55 4.38 5.2 ...
##  $ X3 : num [1:34] 3.76 5.4 4.3 4.02 4.9 5.08 3.96 3.93 4.01 4.88 ...
##  $ X4 : num [1:34] 92.5 91.3 94.9 89 89.3 ...
##  $ X5 : num [1:34] 65.9 71 59.9 71.5 64.1 ...
##  $ X6 : num [1:34] 2.56 5.44 2.35 2.73 1.13 2.59 0.63 1.87 0.61 1.19 ...
##  $ X7 : num [1:34] 78.4 76 79.7 75.9 73 ...
##  $ X8 : num [1:34] 6.03 5.89 5.94 4.23 4.53 4.11 3.42 4.23 4.56 6.8 ...
##  $ X9 : num [1:34] 1.316 3.197 0.665 7.148 1.324 ...
##  $ X10: num [1:34] 96 213 135 76 76 102 103 268 90 260 ...
data_melt <- round(cor(data_numerik[sapply(data_numerik,is.numeric)]),2)

data_melt <- melt(data_melt) 

ggplot(data_melt, aes(x = Var1, y = Var2, fill = value)) +
  geom_tile() +
  labs(title = "Correlation Heatmap",
       x = "Variable 1",
       y = "Variable 2")

library(ggcorrplot)
## Warning: package 'ggcorrplot' was built under R version 4.3.3
data_corrl <- round(cor(data_numerik), 1)

data_corrl <- cor(data_corrl)

ggcorrplot(data_corrl)+
    geom_text(aes(Var2, Var1, label = value), size = 2)

ggcorrplot(data_corrl, method = "circle")

Interpretasi : Dari gambar-gambar di atas, dapat disimpulkan bahwa terdapat indikasi multikolinieritas antara beberapa variabel X, seperti X2 dan X3. Korelasi yang cukup besar antara kedua variabel ini, yang ditunjukkan dengan warna yang lebih gelap atau lebih terang dalam plot, menandakan adanya hubungan yang signifikan di antara keduanya. Oleh karena itu, dapat disimpulkan bahwa X2 dan X3 saling mempengaruhi karena adanya korelasi yang signifikan.

Visualisasi Untuk Time Series

ggplot(data2, aes(x = Date, y = Close)) +
  geom_point() +
  geom_line(aes=10) +
  labs(title = "Scatter Plot of Time Series Data (Comex Gold)",
       x = "Date",
       y = "Value (Close)")
## Warning in geom_line(aes = 10): Ignoring unknown parameters: `aes`

data_close <- data2$Close

data.ts <- ts(data_close)

plot(data.ts, xlab ="Waktu", ylab = "Data Close Comex Gold", col="red", main = "Plot Data Close Comex Gold")
points(data.ts)

Interprestasi :

Grafik tersebut menggambarkan pola kenaikan dan penurunan harga saham Comex Gold seiring waktu. Terlihat bahwa saham Comex Gold mengalami fluktuasi harga. Titik-titik puncak pada grafik menunjukkan periode-periode di mana harga saham mencapai level tertinggi, yang terlihat menurun pada bulan agustus tahun 2022 lalu mengalami kenaikan yang cukup pesat yaitu saham dari oktober 2022 hingga januari 2023 dan seterusnya hingga pada januari 2024 mengalami peningkatan yang sangat signifikan.

# Memplot kedua seri waktu
ggplot() +
  geom_line(data = data2, aes(x = Date, y = Open, color = "Open")) +
  geom_line(data = data2, aes(x = Date, y = Close, color = "Close")) +
  labs(title = "Perbandingan Dua Data Time Series (Open vs. Close)",
       x = "Date",
       y = "Value",
       color = "Series") +
  scale_color_manual(values = c("Open" = "blue", "Close" = "red")) +
  theme_minimal()

Interpretasi : Grafik di atas mengilustrasikan perbandingan harga saham pembukaan (open) dan harga saham penutupan (close) Comex Gold. Terlihat bahwa pola grafik keduanya hampir serupa, karena hal tersebut bisa saja terjadi akibat masih dalam satu perusahaan yang sama.

Visualisasi Data Spasial

dataworld <- map_data("world") 
arrests <- USArrests 
arrests$region <- tolower(rownames(USArrests))

states_map <- map_data("state")
arrests_map <- left_join(states_map, arrests, by = "region")

ggplot(arrests_map, aes(long, lat, group = group))+
  geom_polygon(aes(fill = Rape), color = "white")+
  scale_fill_viridis_c(option = "C") +
  theme_classic() 

Interpretasi : Berikut merupakan sebaran penangkapan kasus pemerkosaan(rape) yang didapatkan dari dataset program R yaitu USAarrest kasus penangkapan tindak kejahatan di Amerika. Dimana skala tingkatnya dapat dilihat dari warna kuning(terang) hingga ungu(gelap). Pada peta dapat dilihat pada bagian barat Amerika Serikat terdapat banyak kasus pemerkosaan dan yang tersedikit berdapa pada daerah utara dan timur.