Pendahuluan

Kemiskinan merupakan masalah yang sangat kompleks, tingkat kemiskinan dapat dipengaruhi oleh tingkat pendidikan, ketersediaan lapangan kerja dan faktor lainnya. Selain itu hal lain yang perlu diperhatikan dalam pemodelan kemiskinan ini adalah adanya faktor penting yang tidak tersedia, salah satunya yaitu asset, yang akan berkaitan dengan faktor lain dari kemiskinan. Oleh karena itu, tidak di masukkanya ke dalam model akan mengakibatkan kondisi endogenitas. Terjadinya variabel yang mempengaruhi kemiskinan yang tidak dapat dimasukkan dalam penelitian ini disebabkan oleh beberapa hal, seperti belum diketahuinya ukuran untuk variabel tersebut dan keterbatasan data yang dimiliki. Variabel-variabel tersebut dikenal sebagai omitted variable. Adanya omitted variable ini membuat model menjadi underspecified, yang menyebabkan taksiran bias dan tidak konsisten (Wooldridge,2002). Biasanya omitted variable diasumsikan tetap dari waktu ke waktu, tetapi dalam kenyataannya omitted variable berubah-ubah dari waktu ke waktu. Oleh karena itu, pendekatan dengan waktu yang tetap kurang sesuai, maka diperlukan pendekatan lain sesuai dengan perkembangan omitted variable yang tidak konstan.

Penelitian ini adalah menerapkan model dengan lag dependen variabel dengan pendekatan Generalized Method of Moments (GMM) untuk mengatasi taksiran bias dan tidak konsisten. Sedangkan tujuan dari penelitian ini adalah untuk memperoleh taksiran yang konsisten dan efisien sehingga dapat mengidentifikasi faktor pengaruh kemiskinan di Jawa Barat.

Benefit :

Penelitian memiliki manfaat bagi Badan Perencanaan Pembangunan Daerah dapat digunakan dalam pertimbangan pengambilan kebijakan dalam perumusan perencanaan pembangunan untuk menurunkan Tingkat Kemiskinan di Provinsi Jawa Barat.

Data Preparation

Sebelum dilakukan analisis yang pertama perlu dilakukan adalah mengimport packages yang akan digunakan dalam penelitian ini, diantaranya :

1. Import Library

# Import Library
library(tidyverse)
library(dplyr)
library(plm)

2. Read Data

poverty <- read.csv("data-kemiskinan-algo.csv")

glimpse(poverty)
## Rows: 135
## Columns: 8
## $ Wilayah                             <chr> "Bogor", "Bogor", "Bogor", "Bogor"~
## $ Tahun                               <int> 2017, 2018, 2019, 2020, 2021, 2017~
## $ Kemiskinan                          <dbl> 8.57, 7.14, 6.66, 7.69, 8.13, 8.04~
## $ Rls                                 <dbl> 7.84, 7.88, 8.29, 8.30, 8.31, 6.79~
## $ Persentase.Penduduk.dengan.Keluhan  <dbl> 35.40, 34.28, 32.94, 32.64, 67.50,~
## $ tpt                                 <dbl> 9.55, 9.83, 9.11, 14.29, 12.22, 7.~
## $ Jumlah..Puskesmas.Per.1000.Penduduk <dbl> 0.101, 0.101, 0.101, 0.101, 0.101,~
## $ Jumlah..Smp.Per.1000.Penduduk       <dbl> 0.64700, 0.66200, 0.69000, 0.71300~

3. Pemilihan Variabel yang akan digunakan

Hanya akan digunakan variabel wilayah, tahun, kemiskinan, rata-rata lama sekolah, tingkat pengangguran terbuka, dan Jumlah SMP Per 1000 Penduduk

poverty <- poverty %>% 
  select(Wilayah, Tahun, y = Kemiskinan, x1 = Rls, x2 = tpt, x3 = Jumlah..Smp.Per.1000.Penduduk)

4. Cek variansi data

Digunakan untuk melihat apakah terdapat perbedaan yang jauh antara variabel yang akan digunakan.

# Cek Variansi Data
var(poverty$y)
## [1] 8.205232
var(poverty$x1)
## [1] 2.118614
var(poverty$x2)
## [1] 4.989311
var(poverty$x3) 
## [1] 0.02032929
# Setelah disesuaikan
var(poverty$x3*10) 
## [1] 2.032929

Insight :

Disini terdapat perbedaan yang sangat jauh antara variabel x3 (Jumlah SMP per 1000 penduduk) dengan variabel lainnya, maka akan dilakukan tranformasi agar tidak terjadi masalah singularitas. Dan setelah dilakukan tranformasi variansi nya tidak terlalu jauh dengan variabel lainnya.

poverty$x3 = poverty$x3*10

Eksplorasi Data

Ekplorasi data dilakukan agar kita menjadi lebih paham dengan gambaran awal dari data yang akan digunakan.

1. Cek Missing Value

# Cek Missing Value
poverty %>% 
  is.na() %>% 
  colSums()
## Wilayah   Tahun       y      x1      x2      x3 
##       0       0       0       0       0       0

Insight :

Tidak terdapat missing value, sehingga dapat dilanjutkan ke proses analisis.

2. Ringkasan Data

# Melakukan 5 number summary
poverty %>% 
  summary()
##    Wilayah              Tahun            y                x1        
##  Length:135         Min.   :2017   Min.   : 2.070   Min.   : 5.970  
##  Class :character   1st Qu.:2018   1st Qu.: 6.655   1st Qu.: 7.325  
##  Mode  :character   Median :2019   Median : 8.410   Median : 7.980  
##                     Mean   :2019   Mean   : 8.395   Mean   : 8.442  
##                     3rd Qu.:2020   3rd Qu.:10.510   3rd Qu.: 9.525  
##                     Max.   :2021   Max.   :14.800   Max.   :11.460  
##        x2               x3        
##  Min.   : 3.250   Min.   :0.2325  
##  1st Qu.: 7.120   1st Qu.:1.0300  
##  Median : 8.740   Median :1.7000  
##  Mean   : 8.611   Mean   :1.9593  
##  3rd Qu.: 9.880   3rd Qu.:2.7250  
##  Max.   :14.290   Max.   :7.2400

Insight :

  • Terdapat wilayah yang memiliki tingkat kemiskinan sangat kecil yaitu sebesar 2.07 %. Ini menarik melihat rata-rata kemiskinan sebesar 8.395%. (Kota Depok)

  • Terdapat wilayah yang memiliki tingkat pengangguran yang sangat kecil yaitu sebesar 3.25%. Ini menarik melihat rata-rata tingkat pengangguran sebesar 8.611%. (Pangandaran)

  • Terdapat wilayah yang memiliki Jumlah SMP per 10000 penduduk yang tinggi yaitu 7.24.Ini menarik melihat rata-rata Jumlah SMP per 10000 penduduk sebesar 1.9593. (Bogor)

Futher EDA :

#Wilayah yang memiliki tingkat kemiskinan terkecil
poverty[poverty$y == min(poverty$y),]
#Wilayah yang memiliki tingkat pengangguran terkecil
poverty[poverty$x2 == min(poverty$x2),]
#Wilayah yang memiliki Jumlah SMP per 10000 penduduk Tertinggi
poverty[poverty$x3 == max(poverty$x3),]

Analisis kemiskinan dengan data panel dinamis

Dalam melakukan analisis metode data panel dinamis di R ini diperlukan bantuan dari sebuah packages yaitu plm.

1. Ubah kedalam data frame panel data

## Ubah data menjadi data frame panel data

panel_poverty <- pdata.frame(x = poverty, index = c("Wilayah", "Tahun"))

panel_poverty

2. Estimasi parameter menggunakan fungsi pgmm

poverty_gmm <- pgmm(y ~ lag(y) + x1 + x2 + x3 | lag(y, 2:5),
               data = panel_poverty, effect = "individual" , model = "onestep",
               transformation = "d")

summary(poverty_gmm)
## Oneway (individual) effect One-step model Difference GMM 
## 
## Call:
## pgmm(formula = y ~ lag(y) + x1 + x2 + x3 | lag(y, 2:5), data = panel_poverty, 
##     effect = "individual", model = "onestep", transformation = "d")
## 
## Balanced Panel: n = 27, T = 5, N = 135
## 
## Number of Observations Used: 81
## Residuals:
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## -1.273431 -0.347535 -0.021379 -0.006408  0.332461  1.136156 
## 
## Coefficients:
##        Estimate Std. Error z-value  Pr(>|z|)    
## lag(y) 0.372906   0.044554  8.3698 < 2.2e-16 ***
## x1     2.454973   0.345412  7.1074 1.183e-12 ***
## x2     0.237143   0.032292  7.3437 2.077e-13 ***
## x3     0.791203   0.337663  2.3432   0.01912 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Sargan test: chisq(5) = 20.05702 (p-value = 0.0012193)
## Autocorrelation test (1): normal = -1.03079 (p-value = 0.30264)
## Autocorrelation test (2): normal = 1.153454 (p-value = 0.24872)
## Wald test for coefficients: chisq(4) = 115.9179 (p-value = < 2.22e-16)

3. Koreksi p-value berdasarkan fenomena/hipotesis

Hipotesis :

  • H_11 : β_1 > 0, artinya Variabel lag presentasi kemiskinan meningkatkan presentasi kemiskinan di Jawa Barat.

  • H_21 : β_2 < 0, artinya Variabel rata-rata lama sekolah menurunkan presentasi kemiskinan di Jawa Barat.

  • H_31 : β_3 > 0, artinya Variabel tingkat pengangguran terbuka meningkatkan presentasi kemiskinan di Jawa Barat.

  • H_41 : β_4 < 0, artinya Variabel Jumlah SMP per 10.000 penduduk menurunkan presentasi kemiskinan di Jawa Barat.

# Koreksi p-value
p_value_lag_y <- 2.2e-16/2
p_value_x1 <- 1 - (1.183e-12/2)
p_value_x2 <- 2.077e-13/2
p_value_x3 <- 1 - (0.01912/2)

# Cek Signifikansi P-value
p_value_koreksi <- c(p_value_lag_y, p_value_x1, p_value_x2, p_value_x3)
p_value <- p_value_koreksi < 0.05
cekp_value <- ifelse(p_value, "Signifikan", "Non-Signifikan")
Tabel_p_value <- data.frame(c("lag_y", "x1", "x2", "x3"),p_value_koreksi, 0.05, cekp_value)
colnames(Tabel_p_value) <- c("Variabel","p-value", "alpha", "Keterangan")
Tabel_p_value

Insight :

Berdasarkan hasil analisis yang dilakukan pada summary model poverty_gmm, nilai estimasi koefisien dari lag_y bernilai positif sebesar 0.372906 artinya presentase kemiskinan dan lag presentase kemiskinan memiliki hubungan yang positif telah sesuai dengan fenomena/hipotesis, dengan nilai estimasi dari lag_y sebesar 0.372906. Estimasi koefisien dari x1 bernilai positif artinya presentase kemiskinan dan rata-rata lama sekolah memiliki hubungan yang positif tidak sesuai dengan fenomena/hipotesis, namun setelah dilakukan koreksi pada p-value didapat bahwa pengaruh dari rata-rata lama sekolah terhadap presentasi kemiskinan tidak signifikan maka hal ini dapat diabaikan. Estimasi koefisien x2 bernilai positif artinya presentase kemiskinan dan tingkat pengangguran terbuka memiliki hubungan yang positif telah sesuai dengan fenomena, dengan nilai estimasi koefisien sebesar 0.237143. Estimasi koefisien x3 bernilai positif artinya presentasi kemiskinan dan jumlah SMP per 10.000 penduduk memiliki hubungan yang positif hal ini tidak sesuai dengan fenomena yang terjadi, namun setelah dilakukan koreksi pada p-value didapat bahwa pengaruh dari jumlah SMP per 10.000 terhadap presentasi kemiskinan tidak signifikan maka hal ini dapat diabaikan.

# Nilai R-square
residual <- c(-1.16006797, -0.02137865, -0.34593323,-0.6362461,  0.3247878,  0.4742497,
              -0.1768605, -0.3534009, -0.2158050, -1.0040768, -0.2259310,  0.4352099,
              -0.6121098,  0.9840513, -0.3841643, -0.2043651,  0.3616838,  0.4221854,
              -0.09732668,  0.69546311,  0.33246099,0.2738639, 0.5380121, 0.2495401,
              -0.1621627,  0.8842344, -0.5930395, -0.7938351,  0.2939635,  0.1250909,
              -0.2987799, -0.1128815, -0.6272875, 0.2003413, 0.5048602, 0.6001483,
              0.01745821, -0.10103457, -0.37108757, 0.37638498,  0.08663657, -0.08301850,
              -0.2901093, -0.3982614, -0.2764586, -0.2044805,  0.7872066, -0.3388638, 
              -0.3147279, -1.2734309, -0.5541064,-0.04662448,  0.28474862, -0.05247128,
              -0.5333995,  0.9901647, -0.7865418, -0.6209146,  0.8408493, -0.9274396,
              -0.3475346,  0.7726063,  0.2821877, -0.1583383,  1.1361556,  0.3386920,
              0.01201012, 0.26088954, 0.27321283, 0.1761079, 0.5362568, 0.1433601,
              -0.6842220,  0.4228089,  0.1857929, -0.7537744,  0.2791950,  0.1426049,
              -0.3618366,  0.7870326,  0.1527963)
var_resid = var(residual)
var_y = var(poverty$y)

R_Squared = 1 - (var_resid/var_y)
R_Squared
## [1] 0.966873

Insight :

Berdasarkan model hasil analisis yang dilakukan pada summary model poverty_gmm, didapatkan R-squared sebesar 0.966873 artinya kebaikan/daya dari prediksi model tersebut sebesar 96.6873%

Cek Permasalahan Data

Dalam analisis regresi terdapat beberapa asumsi klasik yang harus dipenuhi yaitu non-autokorelasi, homoskedastisitas, normalitas, dan multikolinearitas. Untuk estimasi model data panel menggunakan Generalized Method of Moment (GMM) robust terhadap heteroskedastisitas dan autokorelasi. Selain itu dengan jumlah data sampel sebanyak 135, sehingga untuk pengujian Normalitas tidak perlu dilakukan. Oleh karena itu pada analisis ini hanya akan diuji asumsi multikolinearitas dan deteksi outlier.

## Data Clean

lag_y <- poverty %>% 
  select(Wilayah, Tahun, y) %>% 
  filter(Tahun != 2021) %>% 
  select(lag_y = y)

poverty_lag <- poverty %>% 
  select(Wilayah, Tahun, y, x1, x2, x3) %>% 
  filter(Tahun != 2017) %>% 
  cbind(lag_y)

head(poverty_lag)

1. Pengecekan Multikolinearitas

CekVIF <- function(data) {
  corr = as.matrix(cor(data))
  VIF = diag(solve(corr))
  
  return(VIF)
}

# Persamaan Kemiskinan
var_cek <- poverty_lag[,4:7]

CekVIF(var_cek)
##       x1       x2       x3    lag_y 
## 2.445448 1.163435 1.314931 2.314272

Insight :

Dari hasil pengujian nilai VIF didapat bahwa nilai VIF semua variabel bernilai <10 artinya tidak terdapat permasalahan Multikolinearitas.

2. Deteksi Outlier

#calculate the studentized residuals
names(poverty_lag)
## [1] "Wilayah" "Tahun"   "y"       "x1"      "x2"      "x3"      "lag_y"
# Persamaan Kemiskinan
y <- as.matrix(poverty_lag[,3]) #Membentuk vektor y
n <- nrow(y)
X <- as.matrix(poverty_lag[,c(7, 4, 5, 6)]) #Membentuk matriks x
#dim(X)
z <- cbind(poverty_lag[,4], poverty_lag[,5], poverty_lag[,6]) #Membentuk matrix Z
#dim(z)

Xh <- z%*%(solve(t(z)%*%z))%*%t(z)
p <- ncol(X)

##Nilai Residual
I <- diag(1,n,n)
dim(I)
## [1] 108 108
B_hat <- matrix(c(0.372906, 2.4549732, 0.2371428, 0.7912027),4,1)
H <- X%*%solve(t(X)%*%X)%*%t(X) #Hat Matriks
e_iv <- y-X%*%B_hat
dim(t(B_hat))
## [1] 1 4
e_ols <- (I-H)%*%y
s2_ols <- as.vector((t(e_ols)%*%e_ols)/(n-p-1))
s2_iv <- as.vector((t(e_iv)%*%e_iv)/n)

##Studentized residual
t_s <- e_iv*sqrt(n-p-1)/(matrix(t(e_iv)%*%e_iv,n,1)*(1-as.matrix(diag(H),n,1))-(e_iv*e_iv))
tcrit <- qt(1-0.05/2/n,n-p-1) #Titik kritis nilai t
outY <- t_s>tcrit
cekOut <- ifelse(outY, "Outlier", "Non-Outlier")
Tabel_Outlier <- data.frame(t_s, tcrit, cekOut)
colnames(Tabel_Outlier) <- c("Studentized Residual", "t_tabel", "Keterangan")
Tabel_Outlier

Insight :

Dari tabel nilai Outlier dapat dilihat bahwa tidak terdapat outlier pada data.

Interpretasi

Berdasarkan hasil analisis yang dilakukan pada summary model poverty_gmm, variabel lag persentase kemiskinan dan tingkat pengangguran terbuka memberikan pengearuh yang signifikan terhadap persentase kemiskinan, sedangkan rata-rata lama sekolah dan jumlah SMP per 10.000 penduduk tidak memiliki pengaruh yang signifikan terhadap persentase kemiskinan. Nilai estimasi koefisien dari lag_y sebesar 0.372906 menunjukan apabila nilai persentase tahun sebelumnya (t-1) di suatu wilayah 1 persen lebih besar dari wilayah lainnya, maka persentase kemiskinan diwilayah tersebut akan naik sebesar 0.372906 persen lebih tinggi dari wilayah lain dengan mengasumsikan variabel lain konstan. Nilai estimasi koefisien x2 sebesar 0.237143 menunjukan apabila tingkat pengangguran terbuka meningkat satu persen, maka persentase kemiskinan akan meningkat sebesar 0.237143 persen dengan mengasumsikan variabel lain konstan.

Kesimpulan

Berdasarkan hasil analisis yang didapat dengan pemodelan menggunakan model data panel dinamis dengan pendekatan generalized method of moment didapatkan hasil R-squared sebesar 0.966873 artinya kebaikan/daya dari prediksi model tersebut sebesar 96.6873%, dimana variabel lag presentasi kemiskinan dan tingkat pengangguran terbuka memberikan pengaruh yang signifikan terhadap presentase kemiskinan di Jawa Barat. variabel lag presentase kemiskinan dan tingkat pengangguran terbuka memiliki hubungan yang positif artinya setiap peningkatan lag presentase kemiskinan akan meningkatkan presentase kemiskinan, dan setiap penigkatan tingkat pengangguran terbuka akan meningkatkan presentase kemiskinan, sedangkan variabel lainnya tidak signifikan. Variabel lag presentase kemiskinan memiliki nilai estimasi koefisien sebesar 0.372906 dan variabel tingkat pengangguran terbuka memiliki nilai estimasi koefisien sebesar 0.237143.