knitr::opts_chunk$set(echo = TRUE)
#ZahraHana_F1F023027 ##ScatterPlot
library(ggplot2)
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
# Data wilayah, IPM, dan pengeluaran per kapita
wilayah <- c("Provinsi Bengkulu", "Bengkulu Selatan", "Rejang Lebong", "Bengkulu Utara",
"Kaur", "Seluma", "Muko-muko", "Lebong", "Kepahiang", "Bengkulu Tengah", "Kota Bengkulu")
indeks_pembangunan_manusia <- c(74.3, 74.06, 74.43, 72.27, 70.92, 70.27, 73, 72.95, 71.38, 70.81, 83.38)
pengeluaran_perkapita <- c(11172, 10657, 10848, 11188, 9365, 8949, 11075, 12012, 10044, 10114, 14924)
# Membuat data frame
DATA_KOMSTAT <- data.frame(
Wilayah = wilayah,
Indeks_Pembangunan_Manusia = indeks_pembangunan_manusia,
Pengeluaran_Perkapita = pengeluaran_perkapita
)
# Menampilkan struktur data
str(DATA_KOMSTAT)
## 'data.frame': 11 obs. of 3 variables:
## $ Wilayah : chr "Provinsi Bengkulu" "Bengkulu Selatan" "Rejang Lebong" "Bengkulu Utara" ...
## $ Indeks_Pembangunan_Manusia: num 74.3 74.1 74.4 72.3 70.9 ...
## $ Pengeluaran_Perkapita : num 11172 10657 10848 11188 9365 ...
# Mengecek apakah ada data kosong
cek_data_kosong <- function(cek_data) {
if (any(is.na(cek_data))) {
message("Ada data yang kosong. Harap lengkapi data sebelum melanjutkan.")
} else {
message("Tidak ada data kosong. Proses bisa dilanjutkan.")
}
}
# Mengecek data kosong pada DATA_KOMSTAT
cek_data_kosong(DATA_KOMSTAT)
## Tidak ada data kosong. Proses bisa dilanjutkan.
# Fungsi menghitung korelasi Pearson
nilai_korelasi <- function(x, y) {
jumlah_data <- length(x)
sum_x <- sum(x)
sum_y <- sum(y)
sum_produk_deviasi <- sum(x * y)
sum_kuadrat_deviasi_x <- sum(x^2)
sum_kuadrat_deviasi_y <- sum(y^2)
pembilang <- (jumlah_data * sum_produk_deviasi) - (sum_x * sum_y)
penyebut <- sqrt((jumlah_data * sum_kuadrat_deviasi_x - sum_x^2) * (jumlah_data * sum_kuadrat_deviasi_y - sum_y^2))
korelasi <- pembilang / penyebut
cat("Korelasi Pearson:", korelasi, "\n")
return(korelasi)
}
# Menghitung korelasi antara IPM dan pengeluaran per kapita
x <- DATA_KOMSTAT$Indeks_Pembangunan_Manusia
y <- DATA_KOMSTAT$Pengeluaran_Perkapita
nilai_korelasi(x, y)
## Korelasi Pearson: 0.9247782
## [1] 0.9247782
# Membuat scatter plot dengan garis regresi
ggplot(DATA_KOMSTAT, aes(x = Indeks_Pembangunan_Manusia, y = Pengeluaran_Perkapita)) +
geom_point(color = "darkred") + # Scatter plot
geom_smooth(method = "lm", color = "blue") + # Garis regresi
labs(
x = "Indeks Pembangunan Manusia",
y = "Pengeluaran Per Kapita",
title = "Scatter Plot: Indeks Pembangunan Manusia vs Pengeluaran Per Kapita"
)
## `geom_smooth()` using formula = 'y ~ x'