Analisis Ekonomi Jawa Tengah 2020-2024

Penulis

Wafi

Diterbitkan

20 Maret 2026

1 Pendahuluan

Laporan ini menyajikan analisis indikator ekonomi Kabupaten/Kota di Provinsi Jawa Tengah periode 2020–2024. Indikator yang dianalisis meliputi:

  • Kemiskinan : Persentase penduduk miskin (%)
  • IPM : Indeks Pembangunan Manusia
  • TPT : Tingkat Pengangguran Terbuka (%)
  • PDRB : Laju Pertumbuhan Ekonomi (%)

2 Data

2.1 Sumber Data

Data bersumber dari Badan Pusat Statistik (BPS) Provinsi Jawa Tengah, mencakup 35 Kabupaten/Kota periode 2020–2024.

2.2 Struktur Data

Kode
df_final |>
  head(10) |>
  kable(caption = "10 Baris Pertama Data Panel",
        col.names = c("Kabupaten/Kota", "Tahun", 
                      "Kemiskinan (%)", "IPM", "TPT (%)", "PDRB (%)"),
        align = c("l", "c", "c", "c", "c", "c")) |>
  kableExtra::kable_styling(bootstrap_options = c("striped", "hover", "bordered"),
                            full_width = TRUE,
                            font_size = 13)
10 Baris Pertama Data Panel
Kabupaten/Kota Tahun Kemiskinan (%) IPM TPT (%) PDRB (%)
3301 KABUPATEN CILACAP 2020 11.46 69.95 9.10 -10.28
3301 KABUPATEN CILACAP 2021 11.67 70.42 9.97 2.15
3301 KABUPATEN CILACAP 2022 11.02 70.99 9.62 5.15
3301 KABUPATEN CILACAP 2023 10.99 71.83 8.74 5.32
3301 KABUPATEN CILACAP 2024 10.68 72.38 7.83 2.70
3302 KABUPATEN BANYUMAS 2020 13.26 71.98 6.00 -1.65
3302 KABUPATEN BANYUMAS 2021 13.66 72.44 6.05 4.00
3302 KABUPATEN BANYUMAS 2022 12.84 73.17 6.05 5.86
3302 KABUPATEN BANYUMAS 2023 12.53 73.86 6.35 5.38
3302 KABUPATEN BANYUMAS 2024 11.95 74.52 6.18 5.35

2.3 Statistik Deskriptif

Kode
df_final |>
  select(kemiskinan_pct, ipm, tpt, pdrb) |>
  summary() |>
  kable(caption = "Statistik Deskriptif Indikator Ekonomi")
Statistik Deskriptif Indikator Ekonomi
kemiskinan_pct ipm tpt pdrb
Min. : 4.03 Min. :66.11 Min. :1.760 Min. :-10.280
1st Qu.: 7.86 1st Qu.:70.22 1st Qu.:4.020 1st Qu.: 2.960
Median :10.57 Median :72.53 Median :5.030 Median : 4.910
Mean :10.70 Mean :73.56 Mean :5.401 Mean : 3.381
3rd Qu.:12.86 3rd Qu.:75.77 3rd Qu.:6.570 3rd Qu.: 5.355
Max. :17.83 Max. :85.72 Max. :9.970 Max. : 6.330

3 Analisis Deskriptif

3.1 Tren Per Tahun

Kode
df_tren <- df_final |>
  group_by(tahun) |>
  summarise(
    Kemiskinan = mean(kemiskinan_pct, na.rm = TRUE),
    IPM        = mean(ipm,            na.rm = TRUE),
    TPT        = mean(tpt,            na.rm = TRUE),
    PDRB       = mean(pdrb,           na.rm = TRUE)
  ) |>
  pivot_longer(-tahun, names_to = "Indikator", values_to = "Nilai")

ggplot(df_tren, aes(x = tahun, y = Nilai, color = Indikator)) +
  geom_line(linewidth = 1.2) +
  geom_point(size = 3) +
  facet_wrap(~Indikator, scales = "free_y") +
  scale_x_continuous(breaks = 2020:2024) +
  labs(title    = "Tren Indikator Ekonomi Jawa Tengah (2020-2024)",
       subtitle = "Rata-rata seluruh Kabupaten/Kota",
       x = "Tahun", y = "Nilai") +
  theme_classic() +
  theme(legend.position = "none")

3.2 Top 10 Kabupaten Termiskin

Kode
df_final |>
  group_by(kabupaten_kota) |>
  summarise(avg_kemiskinan = mean(kemiskinan_pct, na.rm = TRUE)) |>
  arrange(desc(avg_kemiskinan)) |>
  head(10) |>
  ggplot(aes(x = reorder(kabupaten_kota, avg_kemiskinan),
             y = avg_kemiskinan, fill = avg_kemiskinan)) +
  geom_col(show.legend = FALSE) +
  geom_text(aes(label = round(avg_kemiskinan, 1)), hjust = -0.2) +
  scale_fill_gradient(low = "#f7c59f", high = "#e84545") +
  coord_flip() +
  labs(title = "Top 10 Kabupaten/Kota Tingkat Kemiskinan Tertinggi",
       subtitle = "Rata-rata 2020-2024 (%)", x = NULL, y = "Kemiskinan (%)") +
  theme_classic()

4 Analisis Korelasi

4.1 Matriks Korelasi

Kode
df_cor <- df_final |>
  select(kemiskinan_pct, ipm, tpt, pdrb) |>
  drop_na()

mat_cor <- cor(df_cor, method = "pearson")

corrplot(mat_cor,
         method      = "color",
         type        = "upper",
         addCoef.col = "black",
         tl.col      = "black",
         tl.srt      = 45,
         col         = colorRampPalette(c("#d73027", "white", "#1a6b8a"))(200),
         title       = "Matriks Korelasi",
         mar         = c(0, 0, 2, 0))

4.2 Scatter Plot Matrix

Kode
ggpairs(df_cor,
        columnLabels = c("Kemiskinan (%)", "IPM", "TPT (%)", "PDRB (%)"),
        upper = list(continuous = wrap("cor", size = 4)),
        lower = list(continuous = wrap("smooth", method = "lm",
                                       color = "#1a6b8a", alpha = 0.4)),
        diag  = list(continuous = wrap("densityDiag", fill = "#a8edea"))) +
  theme_classic()

5 Analisis Regresi Data Panel

5.1 Persiapan Data Panel

Kode
df_panel <- df_final |> drop_na() |> arrange(kabupaten_kota, tahun)
pdata    <- pdata.frame(df_panel, index = c("kabupaten_kota", "tahun"))

cat("Jumlah observasi :", nrow(pdata))
Jumlah observasi : 175
Kode
cat("\nJumlah individu  :", length(unique(pdata$kabupaten_kota)))

Jumlah individu  : 35
Kode
cat("\nJumlah periode   :", length(unique(pdata$tahun)))

Jumlah periode   : 5

5.2 Estimasi Model

Kode
model_ols <- plm(kemiskinan_pct ~ ipm + tpt + pdrb,
                 data = pdata, model = "pooling")
model_fem <- plm(kemiskinan_pct ~ ipm + tpt + pdrb,
                 data = pdata, model = "within", effect = "twoways")
model_rem <- plm(kemiskinan_pct ~ ipm + tpt + pdrb,
                 data = pdata, model = "random")

5.3 Uji Pemilihan Model

Kode
uji_chow    <- pFtest(model_fem, model_ols)
uji_bp      <- plmtest(model_ols, type = "bp")
uji_hausman <- phtest(model_fem, model_rem)

tibble(
  Uji         = c("Chow (OLS vs FEM)",
                  "Breusch-Pagan (OLS vs REM)",
                  "Hausman (FEM vs REM)"),
  `P-Value`   = c(round(uji_chow$p.value,    4),
                  round(uji_bp$p.value,       4),
                  round(uji_hausman$p.value,  4)),
  Kesimpulan  = c(
    ifelse(uji_chow$p.value    < 0.05, "FEM > OLS",    "OLS lebih baik"),
    ifelse(uji_bp$p.value      < 0.05, "REM > OLS",    "OLS lebih baik"),
    ifelse(uji_hausman$p.value < 0.05, "Gunakan FEM",  "Gunakan REM"))
) |> kable(caption = "Ringkasan Uji Pemilihan Model")
Ringkasan Uji Pemilihan Model
Uji P-Value Kesimpulan
Chow (OLS vs FEM) 0.0000 FEM > OLS
Breusch-Pagan (OLS vs REM) 0.0000 REM > OLS
Hausman (FEM vs REM) 0.0023 Gunakan FEM

5.4 Hasil Model Terbaik

Kode
model_terbaik <- if (uji_hausman$p.value < 0.05) model_fem else model_rem
nama_model    <- if (uji_hausman$p.value < 0.05) "Fixed Effect" else "Random Effect"

cat("**Model terpilih:**", nama_model, "\n\n")

Model terpilih: Fixed Effect

Kode
stargazer(model_terbaik,
          type             = "html",
          title            = paste("Hasil", nama_model, "Model"),
          dep.var.labels   = "Kemiskinan (%)",
          covariate.labels = c("IPM", "TPT (%)", "PDRB (%)"))
Hasil Fixed Effect Model
Dependent variable:
Kemiskinan (%)
IPM -0.093
(0.143)
TPT (%) -0.069**
(0.031)
PDRB (%) 0.041
(0.027)
Observations 175
R2 0.049
Adjusted R2 -0.244
F Statistic 2.283* (df = 3; 133)
Note: p<0.1; p<0.05; p<0.01

6 Kesimpulan

Berdasarkan analisis yang telah dilakukan:

  1. Tren Kemiskinan menunjukkan penurunan secara konsisten di Jawa Tengah periode 2020–2024.

  2. IPM memiliki korelasi negatif kuat dengan kemiskinan — semakin tinggi IPM, semakin rendah tingkat kemiskinan.

  3. Model terpilih adalah Fixed Effect berdasarkan uji Hausman, yang menunjukkan bahwa IPM, TPT, dan PDRB berpengaruh signifikan terhadap kemiskinan di Jawa Tengah.


Laporan dibuat menggunakan R dan Quarto