Regresi Kuantil merupakan suatu pendekatan dalam analisis regresi yang dikenalkan oleh Koenker dan Bassett (1978). Pendekatan ini menduga berbagai fungsi kuantil dari suatu distribusi Y sebagai fungsi dari X. Regresi Kuantil sangat berguna jika distribusi data tidak homogen (heterogenous) dan tidak berbentuk standard seperti tidak simetris, terdapat kemencengan, atau truncated distribution. Seperti halnya dengan metode OLS, Regresi Kuantil juga meminimumkan jumlah kuadrat residual untuk mencari nilai dugaan bagi β.
Dalam tulisan ini, ingin dilihat bagaimana belanja kesehatan OOP rumah tangga di Provinsi Jawa Timur dipengaruhi dari beberapa determinan seperti pengeluaran per kapita per bulan, pendidikan tertinggi dari Kepala Rumah Tangga (KRT), Kepemilikan Jaminan Kesehatan, Jenis Kelamin KRT dan Pekerjaan KRT yang diperoleh dari Susenas Maret 2023.
Variabel Pekerjaan KRT terdiri atas: 0. Tidak bekerja 1. Berusaha sendiri 2. Pengusaha 3. Karyawan 4. Pekerja bebas, Pekerja keluarga
Variabel Pendidikan Tertinggi KRT terdiri atas: 1. Tdk/blm pernah sekolah+Tidak Tamat SD 2. SD Sederajat 3. SMP Sederajat 4. SM Sederajat 5. Perguruan Tinggi
Variabel Kepemilikan Jamkes terdiri atas: 1. Seluruh ART memiliki JKN 2. Seluruh ART memiliki jamkes selain JKN 3. Sebagian ART memiliki JKN 4. Tidak memiliki jaminan kesehatan apapun
pacman::p_load(readxl, base, lmtest, quantreg, car, stats, nortest, ggpubr)
Setting Working Directory
setwd("D:\\Materi\\")
Dataset yang digunakan adalah Susenas Maret 2023.
dataku <- read_excel("Ruta_OOP 2023 - 35.xls")
dataku$LnRutaOOP <- log(dataku$Rata_set_OOP_Kesehatan)
dataku$LnKapita <- log(dataku$KAPITA)
dataku$JK_KRT <- ifelse(dataku$JK_KRT==1, 1, 0)
dataku <- subset(dataku, select=-c(KABU,KAPITA, MISKIN,Rata_set_OOP_Kesehatan))
head(dataku)
## # A tibble: 6 × 6
## TAMAT_KRT JK_KRT PEKERJAAN_KRT JAMKES LnRutaOOP LnKapita
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2 0 2 4 12.0 14.4
## 2 5 1 0 1 12.8 14.1
## 3 5 1 3 1 12.5 14.2
## 4 4 1 3 3 13.2 13.8
## 5 2 1 3 4 10.2 13.4
## 6 5 1 1 3 12.3 13.3
#Data Table
#DT::datatable(dataku)
summary(dataku)
## TAMAT_KRT JK_KRT PEKERJAAN_KRT JAMKES
## Min. :1.000 Min. :0.0000 Min. :0.000 Min. :1.000
## 1st Qu.:2.000 1st Qu.:1.0000 1st Qu.:1.000 1st Qu.:1.000
## Median :3.000 Median :1.0000 Median :2.000 Median :1.000
## Mean :2.734 Mean :0.8319 Mean :2.125 Mean :1.953
## 3rd Qu.:4.000 3rd Qu.:1.0000 3rd Qu.:3.000 3rd Qu.:3.000
## Max. :5.000 Max. :1.0000 Max. :4.000 Max. :4.000
## LnRutaOOP LnKapita
## Min. : 6.502 Min. :12.20
## 1st Qu.:10.779 1st Qu.:13.47
## Median :11.538 Median :13.85
## Mean :11.601 Mean :13.95
## 3rd Qu.:12.357 3rd Qu.:14.32
## Max. :18.331 Max. :17.74
Variabel LnRutaOOP dan LnKapita tersebar dengan median yang tidak sama dengan rata-rata, menunjukkan distribusi yang tidak simetris.
Lebih lanjut diberikan visualisasi melalui histogram seperti dibawah ini:
par(mfrow=c(3,3),oma=c(1,1,1,1))
hist(dataku$TAMAT_KRT,col = "lightblue",xlab="TAMAT_KRT", ylab="Frequency", main = "Tingkat Pendidikan KRT")
hist(dataku$JK_KRT,col = "lightblue",xlab="JK_KRT", ylab="Frequency", main = "Jenis Kelamin KRT")
hist(dataku$JAMKES,col = "lightblue",xlab="JAMKES", ylab="Frequency", main = "Kepemilikan Jamkes")
hist(dataku$LnKapita,col = "lightblue",xlab="LnKapita", ylab="Frequency", main = "Ln(Kapita)")
hist(dataku$PEKERJAAN_KRT,col = "lightblue",xlab="PEKERJAAN_KRT", ylab="Frequency", main = "Status Pekerjaan KRT")
hist(dataku$LnRutaOOP,col = "lightblue",xlab="LnRutaOOP", ylab="Frequency", main = "Ln(Ruta OOP)")
Korelasi Pearson
datatable=data.frame(dataku$LnRutaOOP, dataku$LnKapita)
cor(datatable)
## dataku.LnRutaOOP dataku.LnKapita
## dataku.LnRutaOOP 1.0000000 0.5049773
## dataku.LnKapita 0.5049773 1.0000000
pairs(datatable, col="blue", main="Scatterplots")
Berdasarkan korelasi Pearson, LnKapita erat berhubungan dengan LnRutaOOP dengan arah yang sama.
Korelasi Rank-Spearman
korelasi_spearman <- cor(data.frame(dataku$TAMAT_KRT,dataku$JK_KRT,dataku$JAMKES,dataku$LnRutaOOP),method = "spearman")
cor(korelasi_spearman)
## dataku.TAMAT_KRT dataku.JK_KRT dataku.JAMKES dataku.LnRutaOOP
## dataku.TAMAT_KRT 1.00000000 -0.01062186 -0.5792738 -0.1123224
## dataku.JK_KRT -0.01062186 1.00000000 -0.2613085 -0.5195133
## dataku.JAMKES -0.57927378 -0.26130845 1.0000000 -0.4472974
## dataku.LnRutaOOP -0.11232238 -0.51951335 -0.4472974 1.0000000
Dari korelasi Rank-Spearman, Jenis Kelamin KRT dan Kepemilikan Jaminan Kesehatan cukup erat berhubungan dengan LnRutaOOP namun arahnya berbanding terbalik.
Metode OLS adalah salah satu metode yang terdapat dalam analisis regresi berganda. Metode ini digunakan dengan tujuan untuk meminimalisir jumlah kuadrat residual (Sum of Squares Error) dengan mengestimasi suatu garis regresi. Metode OLS termasuk jenis metode ekonometrik dengan 2 variabel yaitu variabel independen dan variabel dependen.
Hasil akhir yang dimiliki oleh metode OLS adalah fungsi regresi populasi yang akan digunakan untuk estimasi data. Untuk menghasilkan estimasi menggunakan metode OLS, diperlukan empat asumsi dasar yang bersifat BLUE (Best, Linear, Unbiased, dan Estimator).
Metode OLS juga memiliki kriteria operasi yaitu line of best fit dengan jumlah kuadrat deviasi antara titik observasi dengan garis regresi adalah minimum. Hasil estimasi dalam metode OLS memiliki sifat yang BLUE dan cenderung lebih efisien, konsisten.
Selain itu, hasil estimasi pada metode OLS juga cenderung memiliki koefisien regresi dengan distribusi yang normal. Intersep nilai dependen dari estimasi metode OLS juga cenderung memiliki distribusi yang normal jika nilai independen-nya nol.
Dalam metode OLS terdapat beberapa uji asumsi seperti Normalitas, Homoskedastisitas, Non Multikolinearitas.
Berikut dilakukan pemodelan OLS untuk memeriksa apakah ada pelanggaran pada asumsi-asumsi di dalamnya.
reg <- lm(LnRutaOOP~ JAMKES+LnKapita+TAMAT_KRT+PEKERJAAN_KRT+JK_KRT, data=dataku)
summary(reg)
##
## Call:
## lm(formula = LnRutaOOP ~ JAMKES + LnKapita + TAMAT_KRT + PEKERJAAN_KRT +
## JK_KRT, data = dataku)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.8913 -0.6635 0.0043 0.6343 4.4814
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.861379 0.150812 -18.973 < 2e-16 ***
## JAMKES 0.020391 0.005188 3.931 8.49e-05 ***
## LnKapita 1.054845 0.010756 98.068 < 2e-16 ***
## TAMAT_KRT -0.062874 0.005528 -11.373 < 2e-16 ***
## PEKERJAAN_KRT -0.034450 0.005536 -6.223 4.94e-10 ***
## JK_KRT -0.060630 0.018359 -3.302 0.000959 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.144 on 30425 degrees of freedom
## Multiple R-squared: 0.2611, Adjusted R-squared: 0.2609
## F-statistic: 2150 on 5 and 30425 DF, p-value: < 2.2e-16
Dari model OLS di atas, tampak seluruh variabel bebas signifikan terhadap variabel respon LnRutaOOP. Semua variabel bebas memiliki nilai p-value < α = 0.05.
Pemeriksaan Asumsi Normalitas
Pemeriksaan asumsi normalitas dilakukan dengan menggunakan Uji Anderson-Darling.
ad.test(reg$residuals)
##
## Anderson-Darling normality test
##
## data: reg$residuals
## A = 100.74, p-value < 2.2e-16
Hasil dari pengujian diatas memberikan kesimpulan bahwa terjadi pelanggaran asumsi normalitas. Nilai p-value < α = 0.05 (tolak \(H_{0}\)).
ggqqplot(dataku$LnKapita, main = "Ln(Ruta OOP)")
Berdasarkan hasil plot diatas tampak bahwa variabel Pengeluaran Kesehatan OOP rumah tangga tidak berada pada garis diagonal. Ini menunjukkan bahwa data tersebut tidak mengikuti distribusi normal.
Pemeriksaan Asumsi Non-Multikolinearitas
Multikolinearitas adalah suatu kondisi adanya hubungan yang linear diantara variabel-variabel bebas dalam model regresi. Multikolinearitas dapat dideteksi menggunakan Variance Inflation Factors (VIF). Nilai VIF dapat dihitung dengan rumus: \(VIF_{j}=\frac{1}{1-R_{j}^{2}}\) dengan \(R_{j}\) merupakan koefisien determinasi ke-j, j=1,2,…,k.
vif(reg)
## JAMKES LnKapita TAMAT_KRT PEKERJAAN_KRT JK_KRT
## 1.035642 1.181214 1.179285 1.070945 1.096625
# Tolerance
#1/vif(reg)
Nilai VIF dari seluruh variabel bebas < 10 sehingga model sudah terbebas dari multikolinearitas.
Pemeriksaan Asumsi Non-Heteroskedastisitas (Homoskedastisitas)
Heteroskedastisitas terjadi jika varians dari residual suatu pengamatan ke pengamatan lain terjadi ketidaksamaan (tidak konstan). Bila dalam suatu pengamatan terdapat kasus heteroskedastisitas sedangkan asumsi lain dipenuhi, maka parameter regresi yang diduga dengan metode OLS tidak lagi memiliki sifat efisien (varians minimum) (Draper and Smith, 1998).
Hipotesis
\(H_{0}\): \(Var[ε]\) = \(σ^{2}I\) (varians residual bersifat homogen)
\(H_{1}\): \(Var[ε]\) ≠ \(σ^{2}I\) (varians residual tidak homogen)
Pemeriksaan homoskedastisitas dilakukan dengan uji Breusch-Pagan.
bptest(reg)
##
## studentized Breusch-Pagan test
##
## data: reg
## BP = 418.29, df = 5, p-value < 2.2e-16
Hasil dari pengujian diatas memberikan kesimpulan bahwa terjadi pelanggaran asumsi homoskedastisitas. Ini ditunjukkan dari nilai p-value < α = 0.05 (tolak \(H_{0}\)).
Hasil pengujian menunjukkan asumsi homoskedastisitas terlanggar. Dengan kondisi ini, apabila analisis regresi dilakukan dengan menggunakan metode OLS, maka akan mengakibatkan varians dari penduga parameter besar sehingga penduga parameternya menjadi tidak efisien. Untuk mengatasi hal tersebut dilakukan analisis dengan metode regresi kuantil.
Regresi kuantil dilakukan pada Quantile 10% (τ=0.10), Quantile 50% (τ=0.50) dan Quantile 90% (τ=0.90)
quantreg10 <- rq(LnRutaOOP~ JAMKES+LnKapita+TAMAT_KRT+PEKERJAAN_KRT+JK_KRT, data=dataku, tau=0.10)
summary(quantreg10)
##
## Call: rq(formula = LnRutaOOP ~ JAMKES + LnKapita + TAMAT_KRT + PEKERJAAN_KRT +
## JK_KRT, tau = 0.1, data = dataku)
##
## tau: [1] 0.1
##
## Coefficients:
## Value Std. Error t value Pr(>|t|)
## (Intercept) -2.99148 0.30982 -9.65540 0.00000
## JAMKES 0.00757 0.01050 0.72049 0.47123
## LnKapita 0.95595 0.02201 43.42280 0.00000
## TAMAT_KRT -0.08451 0.01156 -7.30909 0.00000
## PEKERJAAN_KRT 0.01344 0.01158 1.16034 0.24592
## JK_KRT 0.05784 0.03754 1.54069 0.12340
Persamaan regresi untuk kuantil 10% adalah
Y10% = -2.9915 + 0.0076(JAMKES) + 0.9559(LnKapita) - 0.0845(TAMAT_KRT) + 0.0134(PEKERJAAN_KRT) + 0.0578(JK_KRT)
quantreg50 <- rq(LnRutaOOP~ JAMKES+LnKapita+TAMAT_KRT+PEKERJAAN_KRT+JK_KRT, data=dataku, tau=0.50)
summary(quantreg50)
##
## Call: rq(formula = LnRutaOOP ~ JAMKES + LnKapita + TAMAT_KRT + PEKERJAAN_KRT +
## JK_KRT, tau = 0.5, data = dataku)
##
## tau: [1] 0.5
##
## Coefficients:
## Value Std. Error t value Pr(>|t|)
## (Intercept) -2.34588 0.16178 -14.50052 0.00000
## JAMKES 0.01157 0.00508 2.27640 0.02283
## LnKapita 1.01713 0.01160 87.67423 0.00000
## TAMAT_KRT -0.05485 0.00555 -9.88706 0.00000
## PEKERJAAN_KRT -0.02032 0.00552 -3.68147 0.00023
## JK_KRT -0.08656 0.02064 -4.19418 0.00003
Persamaan regresi untuk kuantil 50% adalah
Y50% = -2.3459 + 0.0116(JAMKES) + 1.0171(LnKapita) - 0.0548(TAMAT_KRT) - 0.0203(PEKERJAAN_KRT) - 0.0866(JK_KRT)
quantreg90 <- rq(LnRutaOOP~ JAMKES+LnKapita+TAMAT_KRT+PEKERJAAN_KRT+JK_KRT, data=dataku, tau=0.90)
summary(quantreg90)
##
## Call: rq(formula = LnRutaOOP ~ JAMKES + LnKapita + TAMAT_KRT + PEKERJAAN_KRT +
## JK_KRT, tau = 0.9, data = dataku)
##
## tau: [1] 0.9
##
## Coefficients:
## Value Std. Error t value Pr(>|t|)
## (Intercept) -3.78452 0.34463 -10.98153 0.00000
## JAMKES 0.06645 0.01142 5.81789 0.00000
## LnKapita 1.21900 0.02481 49.12491 0.00000
## TAMAT_KRT -0.02682 0.01193 -2.24844 0.02456
## PEKERJAAN_KRT -0.10734 0.01172 -9.15791 0.00000
## JK_KRT -0.07909 0.03751 -2.10842 0.03500
Persamaan regresi untuk kuantil 90% adalah
Y90% = -3.7845 + 0.0664(JAMKES) + 1.2190(LnKapita) - 0.0268(TAMAT_KRT) - 0.1073(PEKERJAAN_KRT) - 0.0791(JK_KRT)
Contoh interpretasi untuk variabel LnKapita adalah sebagai berikut:
rumah tangga yang memiliki pengeluaran per kapita per bulan pada kuantil ke-1 akan menaikkan 0.9559 pengeluaran kesehatan OOP rumah tangga mereka, sedangkan rumah tangga pada kuantil ke-5 lebih tinggi menaikkan pengeluaran kesehatan OOP rumah tangga mereka (sebesar 1.2190). Sederhananya, pengeluaran rumah tangga yang memiliki OOP akan meningkat seiring dengan meningkatnya pengeluaran per kapita per bulan.
95% CI untuk Variabel LnKapita
Estimasi β LnKapita pada OLS = 1.0548
lower10 <- 0.95595 - 1.96*0.02201
upper10 <- 0.95595 + 1.96*0.02201
lower50 <- 1.01713 - 1.96*0.01160
upper50 <- 1.01713 + 1.96*0.01160
lower90 <- 1.21900 - 1.96*0.02481
upper90 <- 1.21900 + 1.96*0.02481
BatasBawah <- c(lower10, lower50, lower90)
BatasAtas <- c(upper10, upper50, upper90)
CI <- data.frame(BatasBawah, BatasAtas)
CI
## BatasBawah BatasAtas
## 1 0.9128104 0.9990896
## 2 0.9943940 1.0398660
## 3 1.1703724 1.2676276
Terlihat bahwa estimasi β LnKapita dari output regresi OLS berada di luar CI untuk kuantil ke-10, ke-50, dan ke-90. Oleh karena itu dari kuantil-kuantil yang ada, estimasi β variabel LnKapita berbeda secara signifikan dari model OLS.
Quantile Regression Plots
quantregall<-rq(LnRutaOOP~ JAMKES+LnKapita+TAMAT_KRT+PEKERJAAN_KRT+JK_KRT, tau=seq(0.10, 0.90, by=0.05), data=dataku)
quantregplot<-summary(quantregall)
plot(quantregplot)
Dapat dilihat secara visual bahwa kesimpulan yang dibuat dari interval kepercayaan untuk Variabel LnKapita mencerminkan plot kuantil.
60th Quantile for LnKapita
Estimasi β LnKapita pada OLS = 1.0548
quantreg60 <- rq(LnRutaOOP~ JAMKES+LnKapita+TAMAT_KRT+PEKERJAAN_KRT+JK_KRT, data=dataku, tau=0.60)
summary(quantreg60)
##
## Call: rq(formula = LnRutaOOP ~ JAMKES + LnKapita + TAMAT_KRT + PEKERJAAN_KRT +
## JK_KRT, tau = 0.6, data = dataku)
##
## tau: [1] 0.6
##
## Coefficients:
## Value Std. Error t value Pr(>|t|)
## (Intercept) -2.44089 0.15853 -15.39702 0.00000
## JAMKES 0.01165 0.00511 2.28153 0.02252
## LnKapita 1.04426 0.01132 92.20902 0.00000
## TAMAT_KRT -0.05726 0.00559 -10.24102 0.00000
## PEKERJAAN_KRT -0.03167 0.00559 -5.66702 0.00000
## JK_KRT -0.11982 0.02075 -5.77497 0.00000
lower60 <- 1.04426 - 1.96*0.01132
upper60 <- 1.04426 + 1.96*0.01132
BatasBawah <- c(lower60)
BatasAtas <- c(upper60)
CI <- data.frame(BatasBawah, BatasAtas)
CI
## BatasBawah BatasAtas
## 1 1.022073 1.066447
Dapat dilihat bahwa koefisien β pada OLS untuk LnKapita sebesar 1.0548 berada di dalam Interval Kepercayaan kuantil ke-60, yang berarti tidak ada perbedaan signifikan dalam β antara τ=0,60 dan OLS.
Testing for difference in coefficients across different quantiles
anova(quantreg10, quantreg50, quantreg90)
## Quantile Regression Analysis of Deviance Table
##
## Model: LnRutaOOP ~ JAMKES + LnKapita + TAMAT_KRT + PEKERJAAN_KRT + JK_KRT
## Joint Test of Equality of Slopes: tau in { 0.1 0.5 0.9 }
##
## Df Resid Df F value Pr(>F)
## 1 10 91283 24.669 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Lebih lanjut penguatan penggunaan regresi kuantil adalah dengan menguji perbedaan signifikan antara koefisien dari kuantil yang berbeda. Tabel Anova di atas adalah uji perbedaan signifikan antara kemiringan untuk kuantil ke-10, ke-50, dan ke-90. Dari tabel tersebut, terlihat p<0,0001, yang berarti menolak hipotesis nol bahwa kemiringan sama dan disimpulkan bahwa setidaknya ada yang satu berbeda.
Metode Regresi Kuantil merupakan cara estimasi dengan menggunakan pendekatan fungsi kuantil dari distribusi Y sebagai fungsi dari variabel bebas X. Regresi Kuantil sangat berguna untuk data yang tidak simetris atau tidak homogen (heteroskedaktisitas). Nilai dugaan parameter dengan regresi kuantil memberikan hasil yang berbeda dengan analisis regresi yang menggunakan metode OLS.
Direktorat Statistik Kesejahteraan Rakyat, BPS, saptahas@bps.go.id