Laporan ini menganalisis hubungan antara Indeks Pembangunan Manusia (IPM), Tingkat Pengangguran Terbuka (TPT), dan PDRB per kapita terhadap tingkat kemiskinan pada unit analisis provinsi (n = 34). Analisis mencakup EDA, korelasi, ANOVA satu arah dan regresi linear berganda. Semua kode ada di lampiran sehingga dapat direproduksi.
Data Indeks Pembangunan Manusia (IPM)
Data Tingkat Pengangguran Terbuka (TPT)
Data Produk Domestik Regional Bruto Perkapita (PDRB)
| Lets Import Dataset |
pacman::p_load(readr,
dplyr,
ggplot2,
tidyr,
stats,
car)
getwd()
## [1] "C:/Users/Marcella/OneDrive/Tugas Kampus/Pengantar Sains Data"
#Menampilkan Data
library(readr)
Data <- read_delim("C:/Users/Marcella/OneDrive/Tugas Kampus/Pengantar Sains Data/Data BPS_IPM_Tingkt Kemiskinan_TPT_PDRB Perkapita(Ribu).csv",
delim = ";", escape_double = FALSE, trim_ws = TRUE)
## Rows: 34 Columns: 5
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr (1): Provinsi
## dbl (4): IPM, Kemiskinan (%), TPT (%), PDRB_Perkapita (Ribu)
##
## ℹ 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.
View(Data)
knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE, fig.width = 8, fig.height = 5)
library(pacman)
## Warning: package 'pacman' was built under R version 4.5.2
p_load(readr, dplyr, ggplot2, tidyr, stats, car, broom, GGally, ggcorrplot, performance)
pink_main <- "#e91e63"
pink_soft <- "#f8bbd0"
theme_set(theme_minimal(base_size = 13))
colnames(Data)
## [1] "Provinsi" "IPM" "Kemiskinan (%)"
## [4] "TPT (%)" "PDRB_Perkapita (Ribu)"
summary(Data)
## Provinsi IPM Kemiskinan (%) TPT (%)
## Length:34 Min. :63.01 Min. : 4.250 Min. :2.270
## Class :character 1st Qu.:72.40 1st Qu.: 6.240 1st Qu.:3.487
## Mode :character Median :73.91 Median : 8.425 Median :4.320
## Mean :73.77 Mean :10.089 Mean :4.614
## 3rd Qu.:75.02 3rd Qu.:12.252 3rd Qu.:5.763
## Max. :83.55 Max. :26.030 Max. :7.520
## PDRB_Perkapita (Ribu)
## Min. : 23078
## 1st Qu.: 48233
## Median : 64110
## Mean : 81942
## 3rd Qu.: 77359
## Max. :322619
library(ggplot2)
ggplot(Data,
aes(x = IPM, y = `Kemiskinan (%)`)) +
geom_point(color = "#ffb6c1", size = 3) +
geom_smooth(method = "lm", se = FALSE, color = "#ff69b4") +
labs(
title = "Hubungan IPM dan Tingkat Kemiskinan di Indonesia",
subtitle = "Sumber: Data BPS",
x = "Indeks Pembangunan Manusia (IPM)",
y = "Tingkat Kemiskinan (%)"
) +
theme_minimal() +
theme(
plot.title = element_text(face = "bold", color = "#cc3366", size = 14),
plot.subtitle = element_text(color = "gray40"),
axis.title = element_text(color = "#cc3366"),
panel.grid.minor = element_blank()
)
library(ggplot2)
ggplot(Data,
aes(x = `TPT (%)`, y = `Kemiskinan (%)`)) +
geom_point(color = "#ffb6c1", size = 3) +
geom_smooth(method = "lm", se = FALSE, color = "#ff69b4") +
labs(
title = "Hubungan TPT dan Tingkat Kemiskinan di Indonesia",
subtitle = "Sumber: Data BPS",
x = "Tingkat Pengangguran Terbuka (TPT)",
y = "Tingkat Kemiskinan (%)"
) +
theme_minimal() +
theme(
plot.title = element_text(face = "bold", color = "#cc3366", size = 14),
plot.subtitle = element_text(color = "gray40"),
axis.title = element_text(color = "#cc3366"),
panel.grid.minor = element_blank()
)
library(ggplot2)
ggplot(Data,
aes(x = `PDRB_Perkapita (Ribu)`, y = `Kemiskinan (%)`)) +
geom_point(color = "#ffb6c1", size = 3) +
geom_smooth(method = "lm", se = FALSE, color = "#ff69b4") +
labs(
title = "Hubungan PDRB Perkapita dan Tingkat Kemiskinan di Indonesia",
subtitle = "Sumber: Data BPS",
x = "PDRB Perkapita (Ribu)",
y = "Tingkat Kemiskinan (%)"
) +
theme_minimal() +
theme(
plot.title = element_text(face = "bold", color = "#cc3366", size = 14),
plot.subtitle = element_text(color = "gray40"),
axis.title = element_text(color = "#cc3366"),
panel.grid.minor = element_blank()
)
IPM vs Kemiskinan Dapat dilihat bahwa grafik tersebut nunjukkan bahwa daerah dengan IPM tinggi biasanya mempunyai tingkat kemiskinan lebih rendah. Semakin bagus pendidikan, kesehatan, dan kualitas hidup masyarakatnya, semakin kecil angka kemiskinannya.
TPT vs Kemiskinan Hubungan pengangguran sama kemiskinan ada, tapi tidak sekuat IPM. Terdapat daerah yang penganggurannya tinggi tapi kemiskinannya rendah, jadi pengaruhnya tidak terlalu besar dan datanya lebih menyebar.
PDRB Per Kapita vs Kemiskinan Semakin tinggi PDRB per kapita (artinya ekonomi daerahnya kuat), biasanya tingkat kemiskinan makin rendah. Polanya cukup jelas, yaitu daerah yang ekonominya maju cenderung lebih sedikit penduduk miskinnya.
df <- Data
colnames(df)
## [1] "Provinsi" "IPM" "Kemiskinan (%)"
## [4] "TPT (%)" "PDRB_Perkapita (Ribu)"
ggplot(df, aes(y = df[["IPM"]])) +
geom_boxplot(fill = "#ffb6c1", color = "black") +
labs(title = "Boxplot IPM", y = "IPM", x = "") +
theme_minimal()
ggplot(df, aes(y = df[["Kemiskinan (%)"]])) +
geom_boxplot(fill = "#ffb6c1", color = "black") +
labs(title = "Boxplot Kemiskinan (%)", y = "Kemiskinan (%)", x = "") +
theme_minimal()
ggplot(df, aes(y = df[["TPT (%)"]])) +
geom_boxplot(fill = "#ffb6c1", color = "black") +
labs(title = "Boxplot Tingkat Pengangguran Terbuka", y = "TPT (%)", x = "") +
theme_minimal()
### Box Plot PDRB Perkapita
ggplot(df, aes(y = df[["PDRB_Perkapita (Ribu)"]])) +
geom_boxplot(fill = "#ffb6c1", color = "black") +
labs(title = "Boxplot PDRB Perkapita (Ribu)", y = "PDRB_Perkapita (Ribu)", x = "") +
theme_minimal()
Secara umum, hasil boxplot yang sudah dibuat menunjukkan bahwa IPM dan tingkat pengangguran antar wilayah relatif merata dengan perbedaan yang tidak terlalu besar. Namun, pada variabel kemiskinan terlihat adanya beberapa daerah yang tingkat kemiskinannya jauh lebih tinggi dari daerah lainnya. Ketimpangan paling besar terlihat pada PDRB per kapita, di mana hanya sedikit wilayah yang memiliki nilai ekonomi sangat tinggi dibanding mayoritas wilayah lain yang masih rendah. Hal ini menggambarkan bahwa kesenjangan ekonomi masih menjadi isu utama yang perlu diperhatikan, meskipun kondisi pembangunan manusia dan pengangguran sudah relatif lebih seimbang.
library(ggplot2)
data <- Data
num_cols <- c("IPM", "Kemiskinan (%)", "TPT (%)", "PDRB_Perkapita (Ribu)")
for (col in num_cols) {
ggplot(data, aes(x = .data[[col]])) +
geom_histogram(fill = "#ffb6c1", color = "white", bins = 10) +
labs(title = paste("Distribusi", col), x = col, y = "Frekuensi") +
theme_minimal() -> p
print(p)
}
#### Penjelasan Mengenai Histogram 1. Histogram IPM menunjukkan bahwa
sebagian besar provinsi berada pada nilai IPM menengah, terutama di
kisaran 70–75. Artinya, mayoritas daerah memiliki kualitas pembangunan
manusia yang cukup baik. Hanya sedikit provinsi yang berada di kategori
sangat rendah atau sangat tinggi, jadi penyebarannya cenderung
terkonsentrasi di tengah.
Histogram kemiskinan memperlihatkan bahwa banyak provinsi berada pada tingkat kemiskinan sekitar 5–15%. Ini menunjukkan bahwa sebagian besar daerah memiliki tingkat kemiskinan menengah. Ada beberapa provinsi dengan kemiskinan sangat rendah maupun sangat tinggi, tetapi jumlahnya tidak banyak sehingga tidak mendominasi distribusi.
Histogram TPT menunjukkan bahwa sebagian besar wilayah memiliki tingkat pengangguran pada kisaran 3–5%, sehingga kondisinya relatif merata tanpa perbedaan yang mencolok.
4.Pada histogram PDRB Perkapita terlihat ketimpangan yang cukup besar, karena sebagian besar wilayah berada pada tingkat ekonomi rendah dan hanya sedikit daerah yang memiliki PDRB Perkapita sangat tinggi. Ini menunjukkan bahwa ketidakmerataan ekonomi antar wilayah masih cukup jelas.
num_data <- Data %>%
select(IPM, `Kemiskinan (%)`, `TPT (%)`, `PDRB_Perkapita (Ribu)`)
cor_matrix <- cor(num_data, method = "pearson")
cor_matrix
## IPM Kemiskinan (%) TPT (%)
## IPM 1.0000000 -0.6935866 0.4257435
## Kemiskinan (%) -0.6935866 1.0000000 -0.3495091
## TPT (%) 0.4257435 -0.3495091 1.0000000
## PDRB_Perkapita (Ribu) 0.4559939 -0.3372341 0.2465804
## PDRB_Perkapita (Ribu)
## IPM 0.4559939
## Kemiskinan (%) -0.3372341
## TPT (%) 0.2465804
## PDRB_Perkapita (Ribu) 1.0000000
cor_matrix <- cor(data[, c("IPM", "Kemiskinan (%)", "TPT (%)", "PDRB_Perkapita (Ribu)")])
library(kableExtra)
knitr::kable(cor_matrix, digits = 3) %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover")) %>%
row_spec(0, bold = TRUE, color = "white", background = "#e91e63") %>%
row_spec(1:nrow(cor_matrix), background = "#fde4ec")
| IPM | Kemiskinan (%) | TPT (%) | PDRB_Perkapita (Ribu) | |
|---|---|---|---|---|
| IPM | 1.000 | -0.694 | 0.426 | 0.456 |
| Kemiskinan (%) | -0.694 | 1.000 | -0.350 | -0.337 |
| TPT (%) | 0.426 | -0.350 | 1.000 | 0.247 |
| PDRB_Perkapita (Ribu) | 0.456 | -0.337 | 0.247 | 1.000 |
data <- Data
# Hitung korelasi Pearson
cor_matrix <- cor(data[, c("IPM", "Kemiskinan (%)", "TPT (%)", "PDRB_Perkapita (Ribu)")],
method = "pearson")
print(cor_matrix)
## IPM Kemiskinan (%) TPT (%)
## IPM 1.0000000 -0.6935866 0.4257435
## Kemiskinan (%) -0.6935866 1.0000000 -0.3495091
## TPT (%) 0.4257435 -0.3495091 1.0000000
## PDRB_Perkapita (Ribu) 0.4559939 -0.3372341 0.2465804
## PDRB_Perkapita (Ribu)
## IPM 0.4559939
## Kemiskinan (%) -0.3372341
## TPT (%) 0.2465804
## PDRB_Perkapita (Ribu) 1.0000000
# Heatmap korelasi
library(reshape2)
library(ggplot2)
melted_cor <- melt(cor_matrix)
ggplot(melted_cor, aes(Var1, Var2, fill = value)) +
geom_tile(color = "white") +
scale_fill_gradient2(low = "#ffe6ee", high = "#ff69b4", mid = "white",
midpoint = 0, limit = c(-1,1), name="Korelasi") +
theme_minimal() +
labs(title = "Heatmap Korelasi antar Variabel") +
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1))
Berdasarkan visualisasi dan tabel korelasi yang sudah dibuat, dapat dilihat bahwa IPM memiliki hubungan negatif yang cukup kuat dengan tingkat kemiskinan, artinya semakin tinggi IPM suatu daerah maka tingkat kemiskinannya cenderung semakin rendah. IPM juga memiliki hubungan positif dengan PDRB per kapita, sehingga daerah dengan ekonomi yang lebih baik cenderung memiliki kualitas pembangunan manusia yang lebih tinggi. Korelasi antara TPT dengan variabel lain terlihat lebih lemah, namun menunjukkan kecenderungan bahwa pengangguran yang lebih tinggi berhubungan dengan IPM yang sedikit lebih tinggi dan kemiskinan yang sedikit lebih rendah, meskipun hubungan tersebut tidak terlalu kuat. Secara keseluruhan, korelasi ini menunjukkan adanya keterkaitan antara pembangunan manusia, ekonomi, dan kondisi sosial, meskipun kekuatannya bervariasi antar variabel.
library(dplyr)
library(ggplot2)
library(car)
library(knitr)
# Kelompokkan provinsi berdasarkan wilayah
Data <- Data %>%
mutate(Wilayah = case_when(
Provinsi %in% c("Aceh", "Sumatera Utara", "Sumatera Barat",
"Riau", "Jambi", "Sumatera Selatan", "Bengkulu",
"Lampung", "Kepulauan Bangka Belitung",
"Kepulauan Riau") ~ "Sumatera",
Provinsi %in% c("DKI Jakarta", "Jawa Barat", "Jawa Tengah",
"DI Yogyakarta", "Jawa Timur", "Banten") ~ "Jawa",
TRUE ~ "Luar Jawa"
))
# Rata-rata IPM per Wilayah (untuk pendukung analisis ANOVA)
rata_IPM <- Data %>%
group_by(Wilayah) %>%
summarise(Rata_IPM = mean(IPM, na.rm = TRUE))
kable(rata_IPM, caption = "Rata-rata IPM per Wilayah")
| Wilayah | Rata_IPM |
|---|---|
| Jawa | 77.11500 |
| Luar Jawa | 72.12333 |
| Sumatera | 74.72800 |
anova_wilayah <- aov(IPM ~ Wilayah, data = Data)
summary(anova_wilayah)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wilayah 2 125.1 62.56 5.668 0.00798 **
## Residuals 31 342.2 11.04
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(anova_wilayah)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = IPM ~ Wilayah, data = Data)
##
## $Wilayah
## diff lwr upr p adj
## Luar Jawa-Jawa -4.991667 -8.8462616 -1.137072 0.0089229
## Sumatera-Jawa -2.387000 -6.6094972 1.835497 0.3576691
## Sumatera-Luar Jawa 2.604667 -0.6203188 5.829652 0.1321012
ggplot(Data, aes(x = Wilayah, y = IPM, fill = Wilayah)) +
geom_boxplot(color = "black") +
scale_fill_manual(values = c("Sumatera" = "#FF66B2",
"Jawa" = "#FF99CC",
"Luar Jawa" = "#FFB7DD")) +
labs(title = "Perbandingan IPM Berdasarkan Wilayah",
x = "Wilayah", y = "IPM") +
theme_minimal()
Berdasarkan hasil analisis ANOVA satu arah, diperoleh nilai p-value sebesar 0.00798 yang lebih kecil dari tingkat signifikansi 0.05. Hal ini menunjukkan bahwa terdapat perbedaan yang signifikan dalam rata-rata Indeks Pembangunan Manusia (IPM) berdasarkan wilayah di Indonesia, yaitu antara wilayah Jawa, Sumatera, dan Luar Jawa.
Untuk mengetahui wilayah mana yang berbeda secara signifikan, dilakukan uji lanjutan menggunakan Tukey Post-Hoc Test. Hasilnya menunjukkan bahwa:
Wilayah Jawa dan Luar Jawa memiliki perbedaan IPM yang signifikan Jawa memiliki rata-rata IPM yang lebih tinggi dibandingkan Luar Jawa. Perbedaan ini signifikan secara statistik (p-value = 0.0089).
Tidak terdapat perbedaan signifikan antara Sumatera dan Jawa Rata-rata IPM di Sumatera tidak berbeda secara signifikan dengan di Jawa (p-value = 0.3577).
Tidak terdapat perbedaan signifikan antara Sumatera dan Luar Jawa Rata-rata IPM wilayah Sumatera juga tidak berbeda nyata dengan Luar Jawa (p-value = 0.1321).
Secara keseluruhan, hasil ini menunjukkan bahwa ketimpangan pembangunan manusia paling nyata terjadi antara Jawa dan wilayah Luar Jawa, sementara Sumatera berada pada posisi menengah dan tidak menunjukkan perbedaan yang berarti terhadap dua kelompok wilayah lainnya.
Jawa masih menjadi wilayah dengan capaian pembangunan manusia tertinggi, sementara wilayah di luar Jawa tertinggal secara signifikan. Sumatera berada di posisi tengah tanpa perbedaan signifikan terhadap dua wilayah lainnya.
model_linear <- lm(`Kemiskinan (%)` ~ IPM + `TPT (%)` + `PDRB_Perkapita (Ribu)`, data = Data)
summary(model_linear)
##
## Call:
## lm(formula = `Kemiskinan (%)` ~ IPM + `TPT (%)` + `PDRB_Perkapita (Ribu)`,
## data = Data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.3191 -2.4502 -0.1106 2.2494 7.2830
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.798e+01 1.495e+01 5.218 1.26e-05 ***
## IPM -9.035e-01 2.177e-01 -4.151 0.000252 ***
## `TPT (%)` -2.367e-01 5.300e-01 -0.447 0.658375
## `PDRB_Perkapita (Ribu)` -1.857e-06 1.235e-05 -0.150 0.881522
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.901 on 30 degrees of freedom
## Multiple R-squared: 0.485, Adjusted R-squared: 0.4335
## F-statistic: 9.419 on 3 and 30 DF, p-value: 0.0001529
# Diagnostik multikolinearitas
library(car)
vif(model_linear)
## IPM `TPT (%)` `PDRB_Perkapita (Ribu)`
## 1.454428 1.226587 1.267893
# Plot residual
par(mfrow=c(2,2))
plot(model_linear)
## Uji Normalitas, Mengecek dengan Q-Q Plot atau melakukan Uji
Shapiro-Wilk
shapiro_reg_result <- shapiro.test(residuals(model_linear))
cat("a. Normalitas Residual (Shapiro-Wilk): P-value =", format.pval(shapiro_reg_result$p.value, digits = 4), "\n")
## a. Normalitas Residual (Shapiro-Wilk): P-value = 0.3711
Asumsi Normalitas ketika P-Value lebih dari 0,05 maka signifikan. Jadi, Hasil (Shapiro-Wilk): P-value = 0.3711 berarti residual data tidak berdistribusi normal (tidak sesuai asumsi regresi linear).
library(lmtest)
bp_result <- bptest(model_linear)
cat("b. Homoskedastisitas (Breusch-Pagan): P-value =", format.pval(bp_result$p.value, digits = 4), "\n")
## b. Homoskedastisitas (Breusch-Pagan): P-value = 0.812
Asumsi Homoskedastisitas ketika P-Value kurang dari 0,05 maka signifikan. Karena Hasil Homoskedastisitas (Breusch-Pagan): P-value = 0.812 berarti data tidak homogen (tidak sesuai asumsi regresi linear).
#Melihat hubungan variabel tersebut dengan variabel lain (tidak terdapat operasi hitung/perkalian,penjumlahan,pengurangan, dll)
library(car)
vif(model_linear)
## IPM `TPT (%)` `PDRB_Perkapita (Ribu)`
## 1.454428 1.226587 1.267893
Nilai VIF dianggap signifikan jika kurang dari 5, karena Tidak ada variabel yang mendapat nilai diatas 5, maka data tidak ada multikolinearitas (hubungan dengan variabel lain), jadi data sesuai dengan asumsi regresi linear.
#Melihat perubahan kecil/waktu pada variabel itu sendiri
lmtest::dwtest(model_linear, alternative = 'two.sided')
##
## Durbin-Watson test
##
## data: model_linear
## DW = 1.9008, p-value = 0.6483
## alternative hypothesis: true autocorrelation is not 0
Nilai P-Value 0,64 hal ini berarti lebih dari 0.05, maka data tidak ada autokorelasi(sesuai asumsi regresi linear).
Berdasarkan hasil pengolahan data IPM, Tingkat Kemiskinan, TPT, dan PDRB Perkapita di Indonesia pada tahun 2023, diperoleh beberapa temuan utama:
Secara keseluruhan, provinsi yang berada di wilayah Jawa cenderung memiliki IPM yang lebih tinggi, tingkat kemiskinan lebih rendah, serta PDRB per kapita yang relatif lebih baik dibanding wilayah di luar Jawa. Analisis korelasi menunjukkan bahwa IPM memiliki hubungan negatif yang kuat dengan tingkat kemiskinan, artinya semakin tinggi IPM suatu daerah, semakin rendah tingkat kemiskinannya. Selain itu, IPM juga berkorelasi positif dengan PDRB per kapita, yang berarti pertumbuhan ekonomi yang lebih baik cenderung meningkatkan kualitas pembangunan manusia.
Sementara itu, hubungan antara IPM dan Tingkat Pengangguran Terbuka (TPT) tidak terlalu kuat, sehingga pengangguran tidak selalu menjadi penentu langsung kualitas pembangunan manusia di setiap provinsi.
Melalui analisis ANOVA satu arah, ditemukan bahwa terdapat perbedaan signifikan IPM antar wilayah, terutama antara wilayah Jawa dan Luar Jawa. Hal ini menunjukkan adanya ketimpangan pembangunan manusia, di mana Jawa masih menjadi pusat perkembangan, sedangkan wilayah di luar Jawa masih tertinggal. Sumatera berada pada posisi tengah dan tidak menunjukkan perbedaan signifikan baik dengan Jawa maupun Luar Jawa.
Secara umum, hasil ini memperlihatkan bahwa pembangunan di Indonesia masih belum merata, terutama dilihat dari aspek pembangunan manusia dan kondisi sosial-ekonomi antar wilayah.
Dari hasil tersebut, terdapat beberapa implikasi yang dapat menjadi bahan pertimbangan:
Pemerataan pembangunan perlu lebih difokuskan ke wilayah luar Jawa, terutama dalam peningkatan akses pendidikan, layanan kesehatan, dan kesempatan ekonomi.
Kebijakan penanggulangan kemiskinan berbasis peningkatan kualitas SDM menjadi strategi yang efektif, karena peningkatan IPM terbukti berdampak pada penurunan kemiskinan.
Program peningkatan kesempatan kerja tetap penting, namun tidak cukup hanya menurunkan angka pengangguran, melainkan harus meningkatkan kualitas pekerjaan agar berdampak pada kesejahteraan dan pembangunan manusia.
Peningkatan produktivitas ekonomi dan investasi daerah harus diarahkan untuk mendongkrak PDRB per kapita wilayah yang masih tertinggal, agar kesenjangan antar wilayah mengecil.
Terima kasih telah membaca laporan ini. Semoga hasil analisis ini dapat memberikan gambaran yang bermanfaat dalam memahami hubungan antara IPM, kemiskinan, TPT, dan PDRB per kapita di Indonesia.