Indeks Pembangunan Manusia (IPM) merupakan indikator penting untuk mengukur kualitas hidup masyarakat, yang mencakup dimensi kesehatan, pendidikan, dan standar hidup. Di Provinsi Bengkulu, peningkatan IPM menjadi fokus utama dalam upaya pembangunan. Salah satu faktor yang dapat memengaruhi IPM adalah pengeluaran per kapita, yang mencerminkan kondisi ekonomi masyarakat dan akses terhadap layanan dasar. Penelitian ini bertujuan untuk menganalisis hubungan antara dua variabel utama, yaitu IPM dan pengeluaran per kapita di Provinsi Bengkulu Tahun 2023, melalui analisis korelasi. Penelitian ini tidak mempertimbangkan variabel lain, melainkan hanya fokus pada keterkaitan antara IPM dan pengeluaran per kapita. Dengan menggunakan perangkat lunak R, diharapkan hasil analisis ini dapat memberikan wawasan mengenai adanya hubungan antara kedua variabel tersebut dan memberikan rekomendasi bagi pemangku kebijakan.

Memuat library yang diperlukan

library(readxl)
library(ggplot2)
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3
## 
## 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
library(corrplot)
## Warning: package 'corrplot' was built under R version 4.3.3
## corrplot 0.94 loaded

Melihat dimana diractory bekerja dan menetapkan diractory bekerja

getwd()
## [1] "C:/komstat"
setwd("C:/komstat")
getwd()
## [1] "C:/komstat"

Memasukkan data secara manual menggunakan vektor

wilayah<-c("Provinsi Bengkulu", "Bengkulu Selatan", "Rejang Lebong", "Bengkulu Utara", "Kaur", 
           "Seluma", "Muko-muko", "Lebong", "Kepahiang", "Bengkulu Tengah", "Kota Bengkulu")
wilayah
##  [1] "Provinsi Bengkulu" "Bengkulu Selatan"  "Rejang Lebong"    
##  [4] "Bengkulu Utara"    "Kaur"              "Seluma"           
##  [7] "Muko-muko"         "Lebong"            "Kepahiang"        
## [10] "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)
indeks_pembangunan_manusia
##  [1] 74.30 74.06 74.43 72.27 70.92 70.27 73.00 72.95 71.38 70.81 83.38
pengeluaran_perkapita<-c(11172, 10657, 10848, 11188, 9365, 8949, 11075, 12012, 10044, 10114, 14924)
pengeluaran_perkapita
##  [1] 11172 10657 10848 11188  9365  8949 11075 12012 10044 10114 14924

Menyajikan data dalam bentuk faktor

wilayah_faktor <- factor(wilayah)
wilayah_faktor
##  [1] Provinsi Bengkulu Bengkulu Selatan  Rejang Lebong     Bengkulu Utara   
##  [5] Kaur              Seluma            Muko-muko         Lebong           
##  [9] Kepahiang         Bengkulu Tengah   Kota Bengkulu    
## 11 Levels: Bengkulu Selatan Bengkulu Tengah Bengkulu Utara Kaur ... Seluma

menyajikan data dalam bentuk list

data_list_ipm_pp <- list(
  Wilayah = wilayah,
  Indeks_Pembangunan_Manusia = indeks_pembangunan_manusia,
  Pengeluaran_Perkapita = pengeluaran_perkapita)
data_list_ipm_pp
## $Wilayah
##  [1] "Provinsi Bengkulu" "Bengkulu Selatan"  "Rejang Lebong"    
##  [4] "Bengkulu Utara"    "Kaur"              "Seluma"           
##  [7] "Muko-muko"         "Lebong"            "Kepahiang"        
## [10] "Bengkulu Tengah"   "Kota Bengkulu"    
## 
## $Indeks_Pembangunan_Manusia
##  [1] 74.30 74.06 74.43 72.27 70.92 70.27 73.00 72.95 71.38 70.81 83.38
## 
## $Pengeluaran_Perkapita
##  [1] 11172 10657 10848 11188  9365  8949 11075 12012 10044 10114 14924

mengimpor data dari excel

DATA_KOMSTAT <- read_excel("C:/Users/ASUS/Downloads/DATA KOMSTAT.xlsx", col_types = c("text", "numeric", "numeric"))
View(DATA_KOMSTAT)

Melihat struktur data

head(DATA_KOMSTAT,11)
## # A tibble: 11 × 3
##    wilayah           Indeks Pembangunan Manusia tahun 2…¹ Pengeluaran Perkapit…²
##    <chr>                                            <dbl>                  <dbl>
##  1 Provinsi Bengkulu                                 74.3                  11172
##  2 Bengkulu Selatan                                  74.1                  10657
##  3 Rejang Lebong                                     74.4                  10848
##  4 Bengkulu Utara                                    72.3                  11188
##  5 Kaur                                              70.9                   9365
##  6 Seluma                                            70.3                   8949
##  7 Mukomuko                                          73                    11075
##  8 Lebong                                            73.0                  12012
##  9 Kepahiang                                         71.4                  10044
## 10 Bengkulu Tengah                                   70.8                  10114
## 11 Kota Bengkulu                                     83.4                  14924
## # ℹ abbreviated names: ¹​`Indeks Pembangunan Manusia tahun 2023`,
## #   ²​`Pengeluaran Perkapita tahun 2023`

Melihat jenis data

str(DATA_KOMSTAT)
## tibble [11 × 3] (S3: tbl_df/tbl/data.frame)
##  $ wilayah                              : chr [1:11] "Provinsi Bengkulu" "Bengkulu Selatan" "Rejang Lebong" "Bengkulu Utara" ...
##  $ Indeks Pembangunan Manusia tahun 2023: num [1:11] 74.3 74.1 74.4 72.3 70.9 ...
##  $ Pengeluaran Perkapita tahun 2023     : num [1:11] 11172 10657 10848 11188 9365 ...

Melihat nama variabel data

names(DATA_KOMSTAT)
## [1] "wilayah"                              
## [2] "Indeks Pembangunan Manusia tahun 2023"
## [3] "Pengeluaran Perkapita tahun 2023"

Membuat prosedur bersyarat untuk mengecek apakah ada data kosong

cek_data_kosong <- function(cek_data) 
  # Mengecek apakah ada nilai kosong (NA) di dalam data frame
  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.")
  }

Mendefinisikan data yang ingin dicek

# Membuat data frame dari DATA_KOMSTAT
cek_data <- data.frame(
  Indeks_Pembangunan_Manusia_tahun_2023 = DATA_KOMSTAT$`Indeks Pembangunan Manusia tahun 2023`,
  Pengeluaran_Perkapita_tahun_2023 = DATA_KOMSTAT$`Pengeluaran Perkapita tahun 2023`)
cek_data_kosong(cek_data)
## Tidak ada data kosong. Proses bisa dilanjutkan.

Mengecek data

cek_data_kosong(cek_data)
## Tidak ada data kosong. Proses bisa dilanjutkan.

Membuat fungsi bersarang untuk nilai korelasi

nilai_korelasi <- function(x, y) {
  # Menghitung komponen-komponen utama
  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)
  
  # Menghitung korelasi Pearson
  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
  
  # Menampilkan hasil korelasi
  cat("Korelasi Pearson:", korelasi, "\n")
  
  return(korelasi)
}

Mendefinisikan data

x <- indeks_pembangunan_manusia
y <- pengeluaran_perkapita

Menghitung nilai korelasi

nilai_korelasi(x,y)
## Korelasi Pearson: 0.9247782
## [1] 0.9247782

##Visualisasi Data

Visualisasi data menggunakan Scatter Plot Digunakan untuk melihat hubungan antar dua variabel

# Data frame contoh
df <- data.frame(
x = DATA_KOMSTAT$`Indeks Pembangunan Manusia tahun 2023`,
y = DATA_KOMSTAT$`Pengeluaran Perkapita tahun 2023`
)

# Scatter plot dengan garis regresi
ggplot(df, aes(x = x, y = y)) +
geom_point(color = "darkred") +               # Scatter plot
geom_smooth(method = "lm", color = "blue") +  # Garis regresi
labs(
  x = "Indeks Pembangunan Manusia tahun 2023",
  y = "Pengeluaran Per Kapita tahun 2023",
  title = "Scatter Plot Indeks Pembangunan Manusia vs Pengeluaran Per Kapita"
)
## `geom_smooth()` using formula = 'y ~ x'

Visualisasi data menggunakan CorrPlot Digunakan untuk melihat korelasi antara IPM dan Pengeluaran Perkapita

# Menghitung rata-rata IPM dan Pengeluaran Perkapita per kabupaten
korelasi_per_wilayah <- DATA_KOMSTAT %>%
  group_by(wilayah) %>%
  summarize(
    IPM = mean(`Indeks Pembangunan Manusia tahun 2023`, na.rm = TRUE),
    Pengeluaran = mean(`Pengeluaran Perkapita tahun 2023`, na.rm = TRUE),
    .groups = 'drop'
  )

# Hitung matriks korelasi
M <- cor(korelasi_per_wilayah[, c("IPM", "Pengeluaran")], use = "complete.obs")

# Cek jika matriks korelasi memiliki cukup nilai untuk divisualisasikan
if (nrow(M) > 1) {
  # Visualisasi korelasi per wilayah
  corrplot.mixed(M, 
                 order = 'AOE', 
                 lower = "number", 
                 upper = "circle", 
                 tl.col = "black", 
                 tl.srt = 45, 
                 number.cex = 1.2, 
                 title = "Korelasi antara IPM dan Pengeluaran Perkapita",
                 lower.col = "black", 
                 upper.col = colorRampPalette(c("red", "white", "blue"))(200))
} else {
  print("Tidak ada cukup data untuk menghitung korelasi.")
}

Kesimpulan

Dari scatter plot, dapat dilakukan analisis korelasi antara Indeks Pembangunan Manusia (IPM) dan Pengeluaran Per Kapita tahun 2023, sebagai berikut: 1. Terdapat hubungan positif, di mana peningkatan pengeluaran per kapita diikuti oleh peningkatan IPM. 2. Garis regresi (garis biru) menunjukkan adanya tren yang dapat dijelaskan oleh model linier, memungkinkan prediksi nilai IPM berdasarkan pengeluaran per kapita. 3. Bayangan abu-abu di sekitar garis regresi menandakan interval kepercayaan. Semakin sempit bayangan, semakin konsisten hubungan antara kedua variabel. 4. Beberapa titik data yang terlihat sebagai outlier (titik merah) menunjukkan adanya wilayah dengan pengeluaran per kapita yang lebih rendah tetapi IPM yang lebih tinggi dari yang diharapkan. Outlier ini perlu dianalisis lebih lanjut. 5. Kekuatan hubungan harus diperiksa dengan menghitung koefisien korelasi. Nilai yang mendekati 1 menunjukkan hubungan yang lebih kuat. Secara keseluruhan, scatter plot menunjukkan hubungan positif antara IPM dan Pengeluaran Per Kapita di tahun 2023, yang dapat menjadi dasar untuk analisis lebih lanjut, termasuk perhitungan koefisien korelasi. Perhatikan outlier dan variabel lain yang mungkin mempengaruhi hubungan ini.

Nilai korelasi 0,9247782 menunjukkan bahwa saat pengeluaran per kapita meningkat, Indeks Pembangunan Manusia (IPM) juga cenderung meningkat. Ini mengindikasikan bahwa kebijakan yang meningkatkan pengeluaran per kapita dapat berdampak positif pada pembangunan manusia. Hubungan yang kuat ini menandakan bahwa investasi dalam pendidikan, kesehatan, dan infrastruktur dapat berkontribusi signifikan terhadap peningkatan kualitas hidup di daerah tersebut.