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.
Sebelum dilakukan analisis yang pertama perlu dilakukan adalah mengimport packages yang akan digunakan dalam penelitian ini, diantaranya :
# Import Library
library(tidyverse)
library(dplyr)
library(plm)
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~
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)
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
Ekplorasi data dilakukan agar kita menjadi lebih paham dengan gambaran awal dari data yang akan digunakan.
# 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.
# 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),]
Dalam melakukan analisis metode data panel dinamis di R ini diperlukan bantuan dari sebuah packages yaitu plm.
## Ubah data menjadi data frame panel data
panel_poverty <- pdata.frame(x = poverty, index = c("Wilayah", "Tahun"))
panel_poverty
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)
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%
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)
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.
#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.
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.
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.